2 模型评估
本文根据西瓜书内容整理而成,并参考了以下资料:
- Datawhale南瓜书https://www.datawhale.cn/learn/content/2/64
2.1 经验误差与过拟合
-
经验误差: 在训练集上的误差
-
泛化误差: 实际上的在新样本上的误差
-
一味追求经验误差的最优化常常导致过拟合,表现为泛化误差很大,与之相对的是欠拟合。
2.2 评估方法
-
机器学习中“模型选择”:给出多种可能的参数配置与学习算法,找到其中泛化误差最小的模型,but泛化误差无法直接获得,那么如何进行评估呢
-
首先要获得测试样本,如何从数据集中产生训练集\(S\)与测试集\(T\)呢?
2.2.1 留出法
- 方法:直接将数据集划分为两部分,一个为训练集,一个为测试集
- 要求:保持数据分布的一致性,因此常用分层抽样
- 评价:
- 单次使用留出法结果不够稳定,故常用若干次随机划分,重复取平均值
- 多少作为样本多少来测试有一个trade off,总之常用2/3-4/5作为训练集
2.2.2 交叉验证法
- 方法:多次留出法,但是分成k部分k次精准留出,也叫k折交叉验证
- 评价:同样,划分为k个子集有多种方式,所以也会进行多次(p次)重复划分。例如:p次10折交叉验证
- 留一法(Leave one out)
- 方法:划分结果每个子集只有一个元素
- 评价:一般更准确,但是消耗太大
2.2.3 自助法
- 方法:对m大小的样本进行m次i.i.d.的随机抽取,抽取出来的新样本作为训练集,剩下没有被抽到的是测试集。
- Remark:
- 测试集大小评估$$\lim_{m\rightarrow \infty}(1-\frac{1}{m})^m = \frac{1}{e} \approx 0.368$$
- 数据集较小,不好划分时有用
- 但是改变了初始数据集的分布,可能会引入估计误差
2.2.4 调参与最终模型
- 参数的选择:参数常常实数范围取值,故实际应用中是一个范围+变化步长
2.3 性能度量
预测类任务:
- 均方误差:
- 离散$$E(f; D) = \frac{1}{m} \sum_{i=1}^{m} \left( f(\boldsymbol{x}_i) - y_i \right)^2 $$
- 连续$$E(f; \mathcal{D}) = \int_{\boldsymbol{x} \sim \mathcal{D}} \left( f(\boldsymbol{x}) - y \right)^2 p(\boldsymbol{x}) \mathrm{d}\boldsymbol{x}$$
分类任务:
2.3.1 错误率与精度
- 错误率:
\[E(f; D) = \frac{1}{m} \sum_{i=1}^{m} \mathbb{I} \left( f(\boldsymbol{x}_i) \neq y_i \right)
\]
- 精度:
\[\begin{align*}
\mathrm{acc}(f; D) &= \frac{1}{m} \sum_{i=1}^{m} \mathbb{I} \left( f(\boldsymbol{x}_i) = y_i \right) \\
&= 1 - E(f; D) .
\end{align*}
\]
2.3.2 查准率与查全率
更关心是不是hit
| 预测结果 | ||
|---|---|---|
| 真实情况 | 正例 | 反例 |
| 正例 | \(TP\) (真正例) | \(FN\) (假反例) |
| 反例 | \(FP\) (假正例) | \(TN\) (真反例) |
查准率 \(P\) 与查全率 \(R\) 分别定义为: $$P = \frac{TP}{TP + FP},$$ $$R = \frac{TP}{TP + FN}.$$
类似假设检验中的思想
2.3.3 ROC与AUC
- ROC “受试者工作特征”(Receiver Operating Characteristic)曲线,
- 根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了 “ROC 曲线”。
- ROC 曲线的纵轴是 “真正例率”(True Positive Rate, 简称 TPR),横轴是 “假正例率”(False Positive Rate, 简称 FPR)两者分别定义为: $$ \text{TPR} = \frac{TP}{TP + FN} $$ $$ \text{FPR} = \frac{FP}{TN + FP} $$
- AUC: ROC 曲线下的面积,
- 从定义可知,AUC 可通过对 ROC 曲线下各部分的面积求和而得. 假定 ROC 曲线是由坐标为 \(\{(x_1, y_1), (x_2, y_2), \dots, (x_m, y_m)\}\) 的点按序连接而形成(\(x_1 = 0, x_m = 1\))则 AUC 可估算为 $$ \text{AUC} = \frac{1}{2} \sum_{i=1}^{m-1} (x_{i+1} - x_i) \cdot (y_i + y_{i+1}) $$
- 形式化地看,AUC 考虑的是样本预测的排序质量,因此它与排序误差有紧密联系. 给定 \(m^+\) 个正例和 \(m^-\) 个反例,令 \(D^+\) 和 \(D^-\) 分别表示正、反例集合,则排序 “损失” (loss)定义为 $$ \ell_{\text{rank}} = \frac{1}{m^+ m^-} \sum_{\boldsymbol{x}^+ \in D^+} \sum_{\boldsymbol{x}^- \in D^-} \left( \mathbb{I}(f(\boldsymbol{x}^+) < f(\boldsymbol{x}^-)) + \frac{1}{2} \mathbb{I}(f(\boldsymbol{x}^+) = f(\boldsymbol{x}^-)) \right)$$
2.3.4 代价敏感错误率与代价曲线
| 真实类别\预测类别 | 第 0 类 | 第 1 类 |
|---|---|---|
| 第 0 类 | \(0\) | \(\text{cost}_{01}\) |
| 第 1 类 | \(\text{cost}_{10}\) | \(0\) |
- 考虑不同错误会造成不同的后果,在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化 “总体代价” (total cost)。
- 将表的第 0 类作为正类、第 1 类作为反类,令 \(D^+\) 与 \(D^-\) 分别代表样例集 \(D\) 的正例子集和反例子集,则 “代价敏感” (cost-sensitive) 错误率为:
\[\begin{align*} E(f; D; \text{cost}) &= \frac{1}{m} \left( \sum_{\boldsymbol{x}_i \in D^+} \mathbb{I}(f(\boldsymbol{x}_i) \neq y_i) \times \text{cost}_{01} \right. \\ &\quad\quad\quad\left. + \sum_{\boldsymbol{x}_i \in D^-} \mathbb{I}(f(\boldsymbol{x}_i) \neq y_i) \times \text{cost}_{10} \right) \end{align*}
\]

浙公网安备 33010602011771号