简单线性回归
根据单个的自变量X预测因变量Y。通常假设X和Y之间是线性关系,试图计算出一条直线Y=b0+b1X1来尽可能准确地拟合所有的点,使得预测的Y值(Yp)与实际的Y值(Yi)最接近,即min(sum(Yi-Yp)^2)
案例:用学习时间预测分数
数据下载
一、数据预处理
- 导入库
- 导入数据
- 查找缺失值(本数据集无缺失值)
- 分割数据集
- 数据标准化(本数据集只有一个特征,无需标准化)
import numpy as np
import pandas as pd
df = pd.read_csv('D:\\data\\day2-studentscores.csv')
X = df.iloc[:,:1].values
Y = df.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)
二、在训练集上训练简单线性回归模型
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
三、结果预测
将模型运用到测试集上,得到预测结果
Y_pred = regressor.predict(X_test)
四、可视化
通过散点图查看实际值和预测值的偏差
import matplotlib.pyplot as plt
%matplotlib inline
1. 训练集可视化
plt.scatter(X_train, Y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
2. 测试集可视化
plt.scatter(X_test, Y_test, color = 'red')
plt.plot(X_test, Y_pred, color = 'blue')