趋近智
机器学习中最常见的任务之一是预测。给定一组输入特征,我们希望预测一个输出值。这其中最简单的形式是线性回归,我们尝试找出一条最能拟合数据的直线。初看之下,这可能像是统计学问题,但其公式表述和解法纯粹是线性代数。
直线方程为 y=mx+b。其中:
在机器学习中,我们常用不同的记号。我们可以将方程写作 y=w1x1+w0,其中 w1 是特征 x1 的权重(斜率),w0 是偏置项(截距)。我们的目的是找到权重 (w1 和 w0) 的合适值,使直线尽可能地拟合我们的数据。
设想一下,我们有一个小数据集,用于根据房屋面积(平方英尺)预测房价。
| 面积 (平方英尺) | 价格 (千美元) |
|---|---|
| 1500 | 300 |
| 2000 | 410 |
| 1200 | 270 |
| 1800 | 350 |
如果我们的直线要完美地经过每个点,我们就需要满足一个方程组:
300=w1(1500)+w0 410=w1(2000)+w0 270=w1(1200)+w0 350=w1(1800)+w0
这个难点显而易见。一条直线极不可能穿过所有这四个点。数据含有噪声。与其寻找一个完美解,我们寻找能使总误差最小的直线。
找出最能代表蓝色数据点所示关系的红线是线性回归的目的。
这就是线性代数提供巧妙而有力地表示此情形的方法。正如我们在第四章所见,一个线性方程组可以写成矩阵形式 Ax=b。我们来组合这些组成部分。
向量 b(在此情形中为 y)包含我们的目标值,即房价。
y=300410270350向量 x 包含我们正在寻找的未知参数:截距 w0 和斜率 w1。
x=[w0w1]矩阵 A 是一个很有趣的部分。它常被称为“设计矩阵”。每一行对应一个数据点,每一列对应一个特征。我们的方程形式是 w1⋅(尺寸)+w0⋅1。因此,特征的第一列将是房屋尺寸,第二列将表示截距 w0 的常数项。为使数学运算成立,我们将第二列填充为 1。
A=15002000120018001111等等,我们为什么要添加一列 1 呢?我们来检查一下执行矩阵-向量乘法 Ax 时会发生什么:
Ax=15002000120018001111[w1w0]=1500⋅w1+1⋅w02000⋅w1+1⋅w01200⋅w1+1⋅w01800⋅w1+1⋅w0\text{请注意:我们在此重新排列了 A 和 x 中的列,以匹配 (尺寸) * w1 + 1 * w0 的形式,这是一种常见做法。}
这种乘法完美地重构了我们原始的方程组。我们整个情形现在可以表述为寻找使 Ax 尽可能接近 y 的向量 x。
完整的情形表达为:
Ax≈y这种表示法不止是记号上的简便。它有几个明显的好处:
我们现在已将线性回归表达为一个线性代数问题。我们正在寻找最能解方程 Ax=y 的向量 x。由于完美解很少存在,下一步(我们在此不进行求解)涉及使用矩阵运算,如转置和逆,以找到使预测值 (Ax) 与实际值 (y) 之间误差最小的向量 x。这种方法正式称为求解“正规方程”,是直接应用你在前几章学到的工具。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造