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

一、线性回归定义

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

如下图所示:
机器学习入门01——线性回归简介 残差平方 代码例程_第1张图片
在这种情况下,就可以利用线性回归构造出一条直线来近似地描述放假与房屋面积之间的关系,从而就可以根据房屋面积推测出房价。

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

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

机器学习入门01——线性回归简介 残差平方 代码例程_第2张图片

三、线性回归的数学模型

• 最简单的回归模型:线性回归
• 假设输出?与输入?之间的关系为线性关系,即
机器学习入门01——线性回归简介 残差平方 代码例程_第3张图片

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

• 根据在线广告投入费用预测每月电子商务销售量
机器学习入门01——线性回归简介 残差平方 代码例程_第4张图片
利用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()

程序运行效果:
机器学习入门01——线性回归简介 残差平方 代码例程_第5张图片

123.94211903204723
[167.79594506]

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

五、预测残差

如何判断预测的好坏?
预测残差(Residual):真实值和预测值之间的差异
机器学习入门01——线性回归简介 残差平方 代码例程_第6张图片
• 绿色直线在训练集上的预测残差:-41.20, -35.64, 33.92, -8.92, -11.08, 62.91
• 蓝色直线在训练集上的预测残差:14, 10, 70, 204, 25, 142

由于残差有正负之分,不好判断,所以引入残差平方
• 忽略预测残差的符号:残差的平方
机器学习入门01——线性回归简介 残差平方 代码例程_第7张图片

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

机器学习入门01——线性回归简介 残差平方 代码例程_第8张图片

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

你可能感兴趣的:(机器学习&计算机视觉,机器学习入门,线性回归,残差平方,最佳预测,代码例程)