byadmin

首先表达一下自己对多元线性回归的理解:

方程:

y为正确的结果。p0为常数项,e为误差,p1,p2,p3等是我们要通过sklearn训练数据集得出来的回归系数,x1,x2,x3等是我们训练集里的特征向量。

这次我用到的数据集是kaggle的入学几率预测数据集:

去kaggle搜索admission就是了

https://www.kaggle.com/datasets

长这个样子:

 

其中Chance of Admit 是最终要自己预测的label

思路非常之简单,上代码~


一:数据探索
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


csv_data = pd.read_csv(\'./data/Admission_Predict.csv\')
#  读取csv文件内容
print(csv_data.info())
#  了解数据表的基本情况:行数、列数、每列的数据类型、数据完整度。可以看到每列都有500行,可以说是没有缺失值的。
print(csv_data.describe())
#  了解总数、平均值、标准差等一些统计数据
print(csv_data.head())
#  了解数据的模样~
csv_data.drop(\'Serial No.\',axis=1,inplace=True)
#  去掉没什么用的ID一列

#数据归一化,简单地除以它们的最大值...
csv_data[\'GRE Score\'] = csv_data[\'GRE Score\']/340
csv_data[\'TOEFL Score\'] = csv_data[\'TOEFL Score\']/120
csv_data[\'University Rating\'] = csv_data[\'University Rating\']/5
csv_data[\'SOP\'] = csv_data[\'SOP\']/5
csv_data[\'LOR \'] = csv_data[\'LOR \']/5
csv_data[\'CGPA\'] = csv_data[\'CGPA\']/10

#数据探索

 

运行结果:

 

二:简单进行可视化

import seaborn as sns


print(csv_data.columns)
sns.regplot(\'GRE Score\',\'Chance of Admit \',data=csv_data)

 

 

查看所有特征的联系:
sns.pairplot(csv_data,diag_kind=\'kde\',plot_kws={\'alpha\':0.2})

 

 

从图可以看到,的确有那么一点回归的样子~

三:模型构建
from sklearn import linear_model


features = [\'GRE Score\', \'TOEFL Score\', \'University Rating\', \'SOP\', \'LOR \', \'CGPA\', \'Research\',]
# 特征选择
X = csv_data[features].iloc[:420,:-1]
Y = csv_data.iloc[:420,-1]
#选择训练集
X_test = csv_data[features].iloc[420:,:-1]
Y_test = csv_data.iloc[420:,-1]
#选择测试集

regr = linear_model.LinearRegression()
#构造线性回归模型
regr.fit(X,Y)
#模型训练
print(regr.predict(X_test))  # 预测
print(list(Y_test))  #答案
print(regr.score(X_test,Y_test))  #准确度

 结果:

嘿,达到88%的准确度了呢,有用,开心/

The End~



分类:

技术点:

相关文章: