这是github上的一个项目,地址在这儿,作者@# Avik-Jain。
Day 2, 简单线性回归
使用一个特征值预测结果
这是一种基于独立的变量X预测相关变量Y的方法。这种方法假设两个变量线性相关。因此,我们的目标是找到一种函数,能够根据X尽可能精确地预测Y值。
如何找到最佳拟合直线
在这个回归模型中,我们试图通过找到“最佳拟合直线”来最小化误差——找到的回顾直线误差是最小的。我们尽量使样本值Yi与预测值Yp之间的长度最小。
这个任务中,我们将会根据学生学习的时长预测其分数。
Step 1:预处理数据
我们会按照上一节的步骤来处理数据。
- 导入库
- 导入数据集
- 检查缺失数据
- 分割数据
- 特征值规范化以准备使用简单线性回归模型
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('../datasets/studentscores.csv')
X = dataset.iloc[:,:1].values
Y = dataset.iloc[:,1].values
from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X,Y,test_size=1/4,random_state=0)
Step 2:使用训练数据训练简单线性回归模型
我们将使用sklearn.linear_model的LiearRegression类训练数据。然后产生LinearRegression类的regressor对象。现在我们将使用fit()方法将数据载入到回归对象中。
代码语言:javascript复制from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
Step 3:预测结果
现在我们将用测试数据集预测结果,输出将保存到向量Y_pred
中。为了预测结果,我们使用LinearRegression
类的预测方法。
Y_pred = regressor.predict(X_test)
Step 4:可视化
最后的步骤是可视化我们的结果。我们会用matplotlib.pyplot
库打印散点图,可视化训练集与测试集结果,对比我们预测的模型与实际值接近程度。
可视化训练集
代码语言:javascript复制plt.scatter(X_train, Y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color='blue')
图片.png
可视化测试集
代码语言:javascript复制plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, regressor.predict(X_test),color='blue')
图片.png