线性回归旨在找到一条直线,以最好地表示输入特征(我们称之为 x)与连续输出值(y)之间的关系。这条线的方程通常写为:
y=mx+b
这里,m 代表直线的斜率(x 每增加一个单位,y 的变化量),b 是 y 轴截距(当 x 为零时,y 的值)。但是,算法实际如何确定 m 和 b 的具体值,从而为我们的数据找到“最佳”直线呢?这就是“学习”的部分。
可以把它想象成调音器乐。你调整调音旋钮(参数 m 和 b),直到声音(与数据的拟合度)恰到好处。
目标:最小化误差
“最佳”直线并非主观判断;在机器学习中,“最佳”通常指使其预测值与实际数据点之间的总误差最小的直线。想象一下,你的数据点已经绘制在图上。对于任何给定的直线 y=mx+b,你可以计算:
- 预测值: 对于每个实际数据点 (xi,yi),将 xi 值代入直线方程,得到一个预测值,我们称之为 y^i=mxi+b。
- 误差(残差): 计算实际值 yi 与预测值 y^i 之间的差值。这个差值,yi−y^i,就是该特定点的误差或残差。它本质上是数据点与图上直线之间的垂直距离。
线性回归算法的目标是找到 m 和 b 的值,使得所有数据点的总误差尽可能小。
这张图显示了样本数据点、直线的初始猜测以及经过学习过程后更好地拟合数据的直线。目标是找到像绿线那样的直线。
学习方式:迭代调整
计算机不擅长像人类有时那样“直接看到”最佳直线。相反,线性回归等算法使用迭代过程:
- 初始化: 从参数 m 和 b 的一些初始猜测开始。这些可以是随机值,或者简单地设为零(m=0,b=0)。这为我们提供了一条初始直线。
- 误差计算: 使用所有数据点计算当前直线的总误差。我们需要一种精确的方法来测量这个总误差,这正是成本函数的作用所在(我们将在下一节详细介绍)。目前,只需知道它会给出一个单一的数字,表示当前直线拟合的“好坏”程度。
- 参数更新: 根据计算出的误差,算法智能地调整 m 和 b 的值。重要的是要朝减小总误差的方向调整它们。可以把它想象成轻微地推动斜率和截距,使直线拟合得更好。
- 重复: 带着新的 m 和 b 值返回步骤2。计算新的、希望更小的误差。再次更新参数。多次重复此过程。
每次迭代,直线应逐渐接近最佳拟合,总误差也应减小。这个过程持续到误差足够小,或者 m 和 b 的变化变得可以忽略不计,这意味着算法已经收敛到它能找到的最佳值。
在步骤3中,常用于确定如何调整 m 和 b 的具体数学技术称为梯度下降,我们将在本章稍后介绍。目前,重要的是这种测量误差并调整参数以最小化该误差的迭代过程。这就是线性回归从你提供的数据中“学习”最佳直线的方式。