知识框架
本章围绕两个问题:模型是否能学到规律,以及如何可靠地评估模型。重点包括 VC 维、偏差-方差分解、欠拟合与过拟合、训练/验证/测试划分、交叉验证、自助采样、分类与回归性能指标。
监督学习的计算理论
有效假设与 VC 维
- 假设空间 $\mathcal{H}$ 在 $m$ 个样本上能产生的不同标记划分数称为增长函数 $\Pi_{\mathcal{H}}(m)$。
- 若 $\mathcal{H}$ 能对 $m$ 个样本实现全部 $2^m$ 种二分,则称 $\mathcal{H}$ 能散列这组样本。
- VC 维是 $\mathcal{H}$ 能散列的最大样本数。VC 维越大,模型容量越强,通常需要更多训练数据。
- 中断点是使 $\Pi_{\mathcal{H}}(m)<2^m$ 首次出现的样本规模。
偏差、方差与过拟合
平方损失下常用分解为
\[
\mathbb{E}_D\!\left[(y-\hat f_D(\mathbf{x}))^2\right]
= \operatorname{Bias}^2(\mathbf{x})+\operatorname{Var}(\mathbf{x})+\epsilon^2.
\]
- 偏差高:模型表达能力不足,容易欠拟合。
- 方差高:模型对训练数据扰动敏感,容易过拟合。
- 模型复杂度增大时,训练误差通常下降;测试误差常先降后升。
- kNN 中 $k$ 小表示模型复杂、低偏差高方差;$k$ 大表示模型更平滑、高偏差低方差。
欠拟合与过拟合
- 欠拟合
- 训练误差和测试误差都高,模型没有抓住数据结构。
- 过拟合
- 训练误差低而测试误差高,模型把噪声或偶然模式也学进去了。
- 缓解过拟合
- 增加数据、降低模型复杂度、正则化、剪枝、早停、交叉验证、数据增强、集成学习。
模型验证与测试
- 训练集用于拟合参数;验证集用于选模型和调超参数;测试集只用于最终评估。
- 留出法简单直接,但一次划分可能带来偶然性;类别不平衡时应采用分层采样。
- $k$ 折交叉验证:把数据分成 $k$ 份,每次用 $k-1$ 份训练、1份验证,取平均指标。
- 留一法是 $k=m$ 的交叉验证,数据利用充分但计算量大。
- 自助采样从 $m$ 个样本中有放回抽取 $m$ 次,未被抽中的样本可作包外估计。
分类性能指标
二分类混淆矩阵记为 TP、FP、TN、FN:
\[
\operatorname{Accuracy}=\frac{TP+TN}{TP+FP+TN+FN},
\]
\[
\operatorname{Precision}=\frac{TP}{TP+FP},\qquad
\operatorname{Recall}=\frac{TP}{TP+FN},
\]
\[
F_1=\frac{2PR}{P+R}.
\]
ROC 曲线横轴为假正例率
\[
FPR=\frac{FP}{FP+TN},
\]
纵轴为真正例率
\[
TPR=\frac{TP}{TP+FN}.
\]
PR 曲线更关注正类识别,在类别极不平衡时通常比 Accuracy 更有参考价值。
回归性能指标
\[
MSE=\frac{1}{m}\sum_{i=1}^m(y_i-\hat y_i)^2,\qquad
RMSE=\sqrt{MSE},
\]
\[
MAE=\frac{1}{m}\sum_{i=1}^m |y_i-\hat y_i|,
\]
\[
R^2=1-\frac{\sum_i(y_i-\hat y_i)^2}{\sum_i(y_i-\bar y)^2}.
\]
$MSE$ 对大误差更敏感,$MAE$ 更稳健,$R^2$ 越接近 $1$ 通常表示拟合越好。
类别不平衡
极端不平衡数据中,Accuracy 可能虚高。常见处理包括:
- 重采样:少数类过采样、多数类欠采样、SMOTE 等。
- 代价敏感学习:给少数类或错分少数类更大权重。
- 调整分类阈值,配合 Precision、Recall、$F_1$、AUC-PR 评估。
- 异常检测思路:把稀有类别视作异常样本。
常见问法
- 画出模型复杂度与训练误差、测试误差的关系,并标出欠拟合与过拟合区域。
- 给混淆矩阵,计算 Accuracy、Precision、Recall、$F_1$。
- 给 $k$ 折交叉验证结果,计算平均指标并选择模型。
- 解释交叉验证的作用:降低偶然划分影响,用于模型选择和超参数调节。
- 给类别极不平衡场景,说明问题、评价指标和三种处理方法。