今天来学习简单的线性回归。线性回归假定自变量与因变量存在着线性关系,我们希望找到一个线性函数表示x和y之间的关系。
第一步:数据预处理
根据昨天所学的知识对数值型变量、分类变量、缺失值等进行预处理。
导入所需要的库函数:
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 = 1/4, random_state = 0)
第二步 通过训练集拟合线性模型
这里同样用到了sklearn库的LinearRegression对训练集进行拟合
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
这样我们就通过训练集建立、并训练好了线性模型regressor。
第三步 根据模型做出预测
使用regressor的predict方法可以对测试集做出预测。
Y_pred = regressor.predict(X_test)
当然regressor的方法也不只有predict,还有其他的方法:
这里输出两个线性模型最常用的值,分别是我们常说的斜率和截距:
第四步 可视化
训练集的可视化
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()
这就是第二天的全部内容,比较简单,完成了机器学习的最简单的模型线性回归。