机器学习导论2 模型评估与选择 [待修订]

分类:Machine Learning, 发布于:2019-03-06 16:00:00, 更新于:2019-04-19 00:12:14。 评论

经验误差与过拟合

错误率&误差:

  • 错误率:错分样本的占比$E = a/m$

  • 误差:样本真实输出与预测输出之间的差异

    • 训练(经验)误差:训练集上
    • 测试误差:测试集上
    • 泛华误差:除训练集外的所有样本
  • 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点当做所有样本的一般性质,导致泛华性能下降。

    • 优化目标加正则项
    • early stop
  • 欠拟合:对训练样本的一般性质尚未学好

    • 决策树:拓展分支
    • 神经网络:增加训练轮数

评估方法

  1. 留出法:
    • 直接将数据集划分为两个互斥集合
    • 划分尽可能保持数据分布的一致性
    • 一般若干次随机划分、重复试验取平均值
    • 训练/测试样本比例通常为$2:1 \sim 4:1$
  2. 交叉验证法:
    • 将数据集分层采样划分为$k$个大小相似的互斥子集,每次用$k-1$个子集的并集作为训练集,余下的子集作为测试集,最终返回$k$个测试结果的均值。$k$常用的取值为10。
    • 10次10折交叉验证
  3. 自助法
    • 以自助采样法为基础,对数据集$DS$有放回采样$m$次得到训练集$D'$$D \setminus D'$用做测试集。

性能度量

性能度量是衡量模型泛化能力的评价标准,反映了任务需求;使用不同的性能度量往往会导致不同的评判结果。

回归任务最常用的性能度量是“均方误差”: $$E(f; D) = \dfrac{1}{m}\sum\limits_{i=1}^m(f(x_i) - y_i)^2$$

信息检索等场景中需要正确衡量正例被预测出来的比率或者预测出来的正例中正确的比率,此时查准率和查全率比错误率和精度更适合。

统计真实标记和预测结果的结合可以得到“混淆矩阵”(TF:预测结果,PN:真实情况)。

$$查准率 P = \dfrac{TP}{TP+FP},查全率 R = \dfrac{TP}{FP}$$

根据学习期的预测结果按正例可能性大小对洋里进行排序,并逐个把样本作为正例进行预测blabla得到$P-R$曲线,

$F-R$曲线平衡点更常用的是$F1$度量: $$F_1 = \dfrac{2 \times P \times R}{P + R}$$

$$F_\beta = ?$$

代价敏感错误率

不同类型的错误造成的后果可能不同,为了权衡不同类型的错误所造成的不同损失,可为错误赋予“非均等代价”。

性能评估

关于性能比较:

  • 测试性能并不等于泛化性能
  • 测试性能随着测试集的变化而变化
  • 很多机器学习算法本身有一定的随机性

直接选取相应评估方法在相应度量下比大小的方法不可取。

二项检验

泛化错误率为$\epsilon$,测试错误率为$\hat \epsilon$

假设$\epsilon \leqslant \hat \epsilon$,若测试错误率小于 $$\hat \epsilon = \max \epsilon s.t. \sum\limits_{i=\epsilon_0 \times m + 1}^m \binom{m}{i} \epsilon^i (1-\epsilon)^{m-i} < \alpha$$$\alpha$的显著度下,假设不能被拒绝。即可认为置信度为$1-\alpha$

其他方法:t检验、交叉分布t检验。

偏差与方差

通过实验可以估计学习算法的泛化性能,而“偏差-方差分解”可以用来帮助解释泛化性能。

对测试样本$x$,令$y_D$$x$在数据集中的标记,$y$$x$的真实标记,$f(x; D)$为训练集$D$上学得模型$f$$x$上的预测输出。

期望输出与真实标记的差别称为偏差。假设噪声期望为0,可得 $$E(f;D) = bias^2(x) + var(x) + \varepsilon^2$$ 也即泛化误差可分解为偏差、方差和噪声之和。

评论