跳到正文
KU

一元线性回归

用一条直线概括两个量之间的关系,再用它做预测。

前置什么是监督学习数学 · 一次函数数学 · 平均数物理 · 匀速直线运动约 6 分钟

一条直线能说明什么

气温越高,冰淇淋卖得越多;身高越高,臂展通常越长。两个量一起变的时候,我们常常想用一条直线把这种关系“概括”出来。有了这条直线,给出一个新的气温,就能估计那天大概能卖多少冰淇淋。

这就是线性回归:从数据里找一条直线,用它来做预测。图里的蓝点是收集到的数据,粗线是我们的模型。

-1.0-0.50.00.51.0-1.0-0.50.00.51.0
训练数据模型曲线
残差

y = 0.00·x + 0.00

0.00
0.00
均方误差 0.172

试着拖动两个滑块,让直线尽量贴近所有的点:

斜率 k决定直线有多陡。k 是正数,直线往右上走;k 是负数,往右下走。
截距 b决定直线整体往上还是往下挪,也就是 x = 0 时 y 的值。
红色虚线每个点到直线的竖直距离,叫做残差,就是模型在这个点上猜错了多少。
线性回归要找的,是让所有残差“加起来最小”的那条直线。“加起来最小”该怎么算,是下一个知识点“损失函数”要讲的事。

模型、参数和残差

一元线性回归的模型只有两个参数,斜率 kk 和截距 bb:

f(x)=kx+bf(x) = k x + b

对第 ii 个数据点 (xi,yi)(x_i, y_i),模型的预测是 f(xi)f(x_i),残差是预测值减真实值:

ei=f(xi)−yi=kxi+b−yie_i = f(x_i) - y_i = k x_i + b - y_i
-1.0-0.50.00.51.0-1.0-0.50.00.51.0
训练数据模型曲线
残差

y = 0.00·x + 0.00

0.00
0.00
均方误差 0.172

“学习”就是根据数据选出 kk 和 bb。如果用残差平方的平均值来衡量好坏,最优的 kk 和 bb 有现成的公式(xˉ\bar{x}、yˉ\bar{y} 是平均数):

k∗=∑i(xi−xˉ)(yi−yˉ)∑i(xi−xˉ)2,b∗=yˉ−k∗xˉk^* = \frac{\sum_i (x_i - \bar{x})(y_i - \bar{y})}{\sum_i (x_i - \bar{x})^2}, \qquad b^* = \bar{y} - k^* \bar{x}

最优直线一定经过点 (xˉ,yˉ)(\bar{x}, \bar{y})。这个公式怎么来的,在“最小二乘与均方误差”里推导。神经网络没有这样的现成公式,只能一步步去找,这就是“梯度下降”。