机器学习笔记二:模型评估与选择(二)

Author Avatar
Brian Lee 7月 11, 2018
  • 在其它设备中阅读本文章

周志华《机器学习》个人笔记(比较检验、偏差与方差)


比较检验

统计假设检验为我们进行学习器性能比较提供了重要依据。基于假设结果我们可以推断出,若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。

以错误率为性能度量,用$\epsilon$ 表示。

假设检验

可根据测试错误率$\hat{\epsilon}$ 估出推泛化错误率$\epsilon$的分布

包含m个样本的测试集上,泛化错误率为$\epsilon$ 的学习器被测得错误率为$\hat{\epsilon}$ 的概率:

$P(\hat{\epsilon};\epsilon)=C_{m}^{\hat{\epsilon}\times m}\epsilon^{\hat{\epsilon}\times m}(1-\epsilon)^{m-\hat{\epsilon}\times m}$

$P(\hat{\epsilon};\epsilon)$ 在$\epsilon=\hat{\epsilon}$ 时最大

考虑假设”$\epsilon \le \epsilon_0$” ,则在$1-\alpha$ 的概率内所能观测到的最大错误率如下式计算($\alpha$ 常用取值为0.05、0.1):

$\overline{\epsilon}=max \epsilon$

$s.t. \sum\limits_{i=\epsilon_0\times m+1}^{m}C_{m}^{i}\epsilon^i(1-\epsilon^{m-i}) < \alpha$

此时若测试错误率$\hat{\epsilon}$ 小于临界值$\overline{\epsilon}$ ,则以$1-\alpha$ 的置信度认为,学习器的泛化错误率不大于$\epsilon_0$

t检验

通过多次留出法或者交叉验证法进行多次训练、测试,得到k个测试错误率$\hat{\epsilon_1},\hat{\epsilon_2},…,\hat{\epsilon_k}$ ,则平均测试错误率$\mu$ 和方差$\sigma^2$ 为:

$\mu=\frac{1}{k}\sum\limits_{i=1}^{k}\hat{\epsilon_i}$

$\sigma^2=\frac{1}{k-1}\sum\limits_{i=1}^{k}(\hat{\epsilon_i}-\mu)^2$

考虑到这k个测试错误率可看做泛化错误率$\epsilon_0​$ 的独立采样,则变量$\tau_t=\frac{\sqrt{k}(\mu-\epsilon_0)}{\sigma}​$ 服从自由度为$k-1​$ 的t分布

t分布

若平均错误率$\mu$ 与$\epsilon_0$ 之差$|\mu-\epsilon_0|$ 位于临界值(最大错误率)范围$[t_{-\alpha/2},t_{\alpha/2}]$ 内,则不能拒绝假设”$\mu=\epsilon_0$”,即可认为泛化错误率为$\epsilon_0$ ,置信度为$1-\alpha$ 。

交叉验证t检验

对两个学习器A和B,若我们使用k折交叉验证法得到的测试错误率分别为$\epsilon_1^A,\epsilon_2^A,…,\epsilon_k^A$ 和$\epsilon_1^B,\epsilon_2^B,…,\epsilon_k^B$ ,可用k折交叉验证“成对t检验”来进行比较验证。

基本思想:若两个学习器性能相同,则它们使用相同的训练集\测试集得到的测试错误率应该相同,即$\epsilon_i^A=\epsilon_i^B$

对每对结果求差$\Delta_i=\epsilon_i^A-\epsilon_i^B$ ,计算出差值的均值$\mu$ 和方差$\sigma^2$ ,在显著度$\alpha$ 下,若变量$\tau_t=|\frac{\sqrt{k}\mu}{\sigma}|$ 小于临界值$t_{a/2,k-1}$ ,则认为两个学习器的性能没有显著差别;否则由显著差别,且平均错误率小的学习性能较优。

McNemar检验

Friedman检验与Nemenyi后续检验


偏差与方差

偏差-方差分解试图对学习算法的期望泛化错误率进行拆解。

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

预测期望

$\overline{f}(x)=\mathbb{E}_D[f(x;D)]$

方差

使用样本数相同的不同训练集产生的方差为:

$var(x)=\mathbb{E}_D[(f(x;D)-\overline{f}(x))^2]$

度量了同样大小的训练集的变动导致的学习性能的变化,即刻画了数据扰动所造成的影响

噪声

$\epsilon^2=\mathbb{E}[(y_D-y)^2]$

表达了当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度

偏差

期望输出与真实标记的差别

$bias^2(x)=(\overline{f}(x)-y)^2$

度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力

泛化误差

$E(f;D)=bias^2(x)+var(x)+\epsilon^2$

泛化误差可分解为偏差、方差和噪声之和

说明泛化性能是由学习算法的能力、数组的充分性以及学习任务本身的难度所共同决定的,给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

本博客采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
本文链接:http://brianleelxt.top/2018/07/11/MLlearn_2_2/