简单线性回归
前言
可能第一部分的内容看了还不知道在干啥,别急,毕竟你才学习了一个小时(其中包括半个小时搭建环境)。GO ON!
先来看一下一个概念:
简单线性回归
在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。简单说来,就是根据自变量值(X)来预测因变量值(Y)的方法。我们假设X和Y之间存在着某种线性关系,如果我们找到了该关系,那么就可以根据X来预测Y值,也就是寻找“最佳拟合线”来最小化预测误差。
这一部分说白了就是我们数学中学的线性函数:y = ax + b,用一堆已知的数据描绘出这条拟合线,机器就学会了利用这个模型进行预测了。
本例使用的案例是利用学生的学习时间来预测其分数(突然想到了褒贬不一的10000小时理论,如果能有大量的数据,完全可以用机器学习来验证该理论的真实性和实用性)
本例使用的数据文件这里点右键保存
Step 1:数据预处理
即[1%]中的内容
- 导入相关库
- 导入数据集
- 检查缺失函数
- 划分数据集
- 特征缩放
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('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 = 0.25, random_state = 0)
Step 2:通过训练集训练简单线性回归模型
这里我们从sklearn.linear_model
中导入LinearRegression类,创建一个实例regressor,使用fit函数对数据进行训练。
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
Step3: 预测结果
训练结束之后,来测试一下训练成果,使用predict函数,把结果存在Y_pred向量中。
Y_pred = regressor.predict(X_test)
Step4: 可视化
人类都是视觉动物,让我们把训练集结果和测试集结果用matplotlib.pyplot
库生成散点图,查看我们的模型预测效果。
#可视化训练集
plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='blue')
plt.show()
#可视化测试集
plt.scatter(X_test , Y_test, color = 'red')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
plt.show()