Loading

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*} \]

posted @ 2025-07-16 22:40  米加  阅读(17)  评论(0)    收藏  举报