机器学习入门01——线性回归简介 残差平方 代码例程

一、线性回归定义

线性回归,就是能够用一个直线较为精确地描述数据之间的关系。这样当出现新的数据的时候,就能够预测出一个简单的值。线性回归中最常见的就是房价的问题。一直存在很多房屋面积和房价的数据。

如下图所示:
房面积和房价关系
在这种情况下,就可以利用线性回归构造出一条直线来近似地描述放假与房屋面积之间的关系,从而就可以根据房屋面积推测出房价。

回归:根据训练样本𝒟,学习一个从输入𝐱到输出𝑦的映射𝑓
• 对新的测试数据𝐱 ,用学习到的映射𝑓对其进行预测:𝑦2 = 𝑓(𝐱)

二、常见的线性回归举例:

在这里插入图片描述

三、线性回归的数学模型

• 最简单的回归模型:线性回归
• 假设输出𝑦与输入𝐱之间的关系为线性关系,即
在这里插入图片描述

四、线性回归案例-广告与销量

• 根据在线广告投入费用预测每月电子商务销售量
在这里插入图片描述
利用matplotlib的pyplot模块描绘出散点图
并用Scikit-Learn做模型预测

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

y_train = np.array([368, 340, 376, 954,331, 556])  #输入数据集
X_train = np.array([1.7, 1.5, 1.3, 5, 1.3, 2.2])  #输出数据集
plt.scatter(X_train, y_train, label= 'Train Samples')  #描绘数据

X_train = X_train.reshape(-1, 1)  #改变输入数据维度
lr = LinearRegression()  #学习预测
lr.fit(X_train, y_train)  #训练数据

a=range(6)    #利用预测出的斜率和截距绘制直线
b=[lr.intercept_+lr.coef_[0]*i for i in a]

plt.plot(a,b, 'r')

print(lr.intercept_)#打印出截距
print(lr.coef_)  #打印出斜率

plt.show()

程序运行效果:
在这里插入图片描述

123.94211903204723
[167.79594506]

• 预测当𝑥 = 2.8时的销量:𝑦 = 123.94 + 167.80 ∗ 2.8 = 593.78

五、预测残差

如何判断预测的好坏?
预测残差(Residual):真实值和预测值之间的差异
在这里插入图片描述
• 绿色直线在训练集上的预测残差:-41.20, -35.64, 33.92, -8.92, -11.08, 62.91
• 蓝色直线在训练集上的预测残差:14, 10, 70, 204, 25, 142

由于残差有正负之分,不好判断,所以引入残差平方
• 忽略预测残差的符号:残差的平方
在这里插入图片描述

• 最佳直线:残差平方和(Residual Sum of Squares, RSS )最小

在这里插入图片描述

所以绿色的预测直线更佳!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章