5.1 线性回归、设计矩阵与最小二乘:线性指的是参数,不是输入只能画直线
用任务时长和资源记录做预测时,一条拟合线只是起点。加入类别、交互和多个数值字段后,需要用设计矩阵说明每列的意义,还要检查不同列是否重复表达同一件事。否则模型可能认真算出几套互相替代的系数。
线性模型之所以适合作为第一类监督模型,不只是简单。它把特征表示、损失、优化和解释之间的关系暴露得足够清楚。
本课目标
- 用 design matrix 写出多元线性模型;
- 区分“对参数线性”和“对原始输入线性”;
- 理解 least squares 的投影视角、秩与数值求解;
- 分开预测、关联解释与因果结论。
1. 从一条线到设计矩阵
对
若截距包含在
一行可以包含:
1 intercept
team_size 原始数值
log(resources) 非线性变换
team_size² 多项式
team_size × mission_type interaction
region_north one-hot 指示模型仍对
2. Ordinary Least Squares 的目标
OLS 最小化响应轴方向的平方 residual:
这不是数据点到几何直线的垂直距离;若
平方损失放大大 residual,对异常值敏感。选择它可以来自 Gaussian conditional-noise 模型、优化便利或业务损失近似,不能因“线性回归默认”就忽略误差代价。
3. Normal equation 不等于显式求逆
一阶条件:
若
复杂度取决于
4. 投影视角
拟合值
若包含截距,训练 residual 的和为零(在未加权标准 OLS 的精确解下)。用下面的 Python 3 + NumPy 可运行例子验证正交性;保存为 ols_demo.py 后运行 python3 ols_demo.py。
import numpy as np
x = np.array([0.0, 1.0, 2.0])
y = np.array([1.0, 3.0, 4.0])
X = np.column_stack([np.ones_like(x), x])
beta, _, rank, _ = np.linalg.lstsq(X, y, rcond=None)
residual = y - X @ beta
np.testing.assert_allclose(X.T @ residual, 0.0, atol=1e-12)
print(np.round(beta, 6), rank)应输出 [1.166667 1.5 ] 2,分别是截距、斜率和矩阵秩;空格排版可因 NumPy 版本略有不同。断言检查残差正交,不能证明新数据上的准确性。lstsq 的秩与最小范数语义见 NumPy 文档。
5. Rank deficiency 与共线性
若列线性相关,
SVD/pseudoinverse 可选取最小范数解。标准 OLS 在训练矩阵上的拟合值
- 删除冗余编码;
- 合并/重新参数化;
- ridge 正则;
- 更多覆盖相关方向的数据;
- 只解释可识别的线性组合。
高相关不意味着某列“无用”,也不证明因果方向。
6. Weighted least squares
若样本具有已知不同精度或抽样权重,可最小化:
频率权重、逆方差权重和抽样权重含义不同,不能混用。权重也会改变目标总体;训练、metric 与标准误都要按其设计处理。
7. Ridge 是病态问题的稳定器
Ridge 给相关/弱识别方向加入约束,降低 variance,代价是 bias。通常不惩罚 intercept,且特征尺度决定同一个
正则化改变 estimand;ridge 系数不能直接套普通 OLS p-value。预测与推断的要求要分开。
8. 预测边界
模型按已有 feature map 向训练范围外外推:原始数值特征产生线性外推,多项式特征可能增长得更快。训练中资源在 10–100,输入 10,000 时仍会给出数值,却可能违反物理边界。
检查:
- 训练/部署范围;
- 不可能的负预测或比例 >1;
- interaction 与单位;
- 特征 transform 在极端值的行为;
- prediction interval 和分组误差。
变换 target、使用 GLM 或加约束可能更符合数据生成机制。
9. 系数不是因果作用
在给定其他设计矩阵列时,
Vol 12 第 6、8 章分别讨论回归诊断与因果识别。机器学习中的高 out-of-sample
常见误区
- 线性模型只能拟合直线:feature map 可包含多项式和交互。
- OLS 最小化点到直线的垂距:它最小化 y-residual。
- 实现 normal equation 就应求逆:QR/SVD 更稳定。
- 系数显著/很大就是原因重要:尺度、相关和因果结构都影响解释。
练习
- 用
x, x², category, x×category构建设计矩阵。 - 验证含截距 OLS 的
。 - 制造完全共线列,比较 QR/SVD、pseudoinverse 与 ridge。
- 检查模型在训练范围外的外推和业务边界。
小结
线性回归把 feature representation 与系数估计连接起来。最小二乘是一个明确损失下的投影问题;数值秩、尺度和目标解释决定其结果能否稳定使用。
下一课把响应换成 Bernoulli 分布:逻辑回归不拟合 0/1 本身,而是建模条件 log-odds。