Day2:简单线性回归

Day 2.jpg

简单线性回归

根据单个的自变量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')

你可能感兴趣的:(Day2:简单线性回归)