机器学习中的算法性能假设检验--最通俗易懂

一个数据集、单个算法

一次留出法----二项检验

  m个样本的测试集上,泛化错误率为 ϵ \epsilon ϵ的学习器被测得测试错误率为 ϵ ^ \hat{\epsilon} ϵ^的概率是:
P ( ϵ ^ ; ϵ ) = ( m c ^ × m ) ϵ e ^ × m ( 1 − ϵ ) m − e ^ × m P(\hat{\epsilon} ; \epsilon)=\left(\begin{array}{c} {m} \\ {\hat{c} \times m} \end{array}\right) \epsilon^{\hat{e} \times m}(1-\epsilon)^{m-\hat{e} \times m} P(ϵ^;ϵ)=(mc^×m)ϵe^×m(1ϵ)me^×m
  服从二项分布,可使用“二项检验”进行检验。

多次重复留出法或交叉验证法----t检验

  多次重复留出法或者交叉验证法进行训练/测试,会得到多个测试错误率,此时可使用“t检验”。假定获得了k个测试错误率, ϵ 1 ^ 、 ϵ 2 ^ 、 ϵ 3 ^ … ϵ ^ k \hat{\epsilon1}、\hat{\epsilon2}、\hat{\epsilon3}…\hat{\epsilon}k ϵ1^ϵ2^ϵ3^ϵ^k,则平均测试错误率为 X ˉ \bar{X} Xˉ S 2 S^{2} S2
X ˉ = 1 k ∑ i = 1 k ε ^ i , S 2 = 1 k − 1 ∑ i = 1 k ( ε ^ i − X ˉ ) 2 \bar{X}=\frac{1}{k} \sum_{i=1}^{k} \hat{\varepsilon}_{i} \quad, \quad S^{2}=\frac{1}{k-1} \sum_{i=1}^{k}\left(\hat{\varepsilon}_{i}-\bar{X}\right)^{2} Xˉ=k1i=1kε^i,S2=k11i=1k(ε^iXˉ)2
  根据中心极限定理可知,
( X ˉ − ε ) S / n ∼ t ( n − 1 ) \frac{(\bar{X}-\varepsilon)}{S / \sqrt{n}} \sim t(\mathrm{n}-1) S/n (Xˉε)t(n1)
  t分布示意图及常用双边临界值表如下所示:
在这里插入图片描述

一个数据集、两个算法----交叉验证t检验

  对于一个数据集,两个算法A和B,使用k折交叉验证法得到的测试错误率分别为 ε ^ i A 、 ε ^ i B ( i = 1 , 2 , , , k ) \hat{\varepsilon}_{iA} 、 \hat{\varepsilon}_{iB}(i=1,2,,,k) ε^iAε^iB(i=1,2,,,k)。可采用k折交叉验证“成对t检验”来进行检验。
  基本思想是若两个算法的性能相同,则他们使用相同的训练集/测试集得到的测试错误率应相同,即 ε ^ i A = ε ^ i B \hat{\varepsilon}_{iA} = \hat{\varepsilon}_{iB} ε^iA=ε^iB
对每一组测试错误率求差值, Δ i = ε ^ A − ε ^ B \Delta_{i}=\hat{\varepsilon}_{A}-\hat{\varepsilon}_{B} Δi=ε^Aε^B,若两个算法性能相同,则差值均值为零。可根据 Δ 1 、 Δ 2 、 . . . Δ k 、 \Delta_{1、}\Delta_{2、}... \Delta_{k、} Δ1Δ2...Δk进行t检验,计算出差值的均值 ∣ Δ ⃗ ∣ |\vec{\Delta}| Δ 和方差 S 2 S^2 S2,则:
∣ ( Δ ˉ − ( ε A − ε B ) ⟩ ∣ S / k ∼ t ( k − 1 ) \frac{\left|\left(\bar{\Delta}-\left(\varepsilon_{A}-\varepsilon_{B}\right)\right\rangle\right|}{S / \sqrt{\mathrm{k}}} \sim t(\mathrm{k}-1) S/k (Δˉ(εAεB)t(k1)
  若假设 H 0 : ε A = ε B , H 1 : ε A ≠ ε B H_{0}: \varepsilon_{A}=\varepsilon_{B}, H_{1}: \varepsilon_{A} \neq \varepsilon_{B} H0:εA=εB,H1:εA=εB,则,满足 ∣ Δ ˉ ∣ S / k ≤ t ∂ / 2 \frac{|\bar{\Delta}|}{S / \sqrt{\mathrm{k}}} \leq \mathrm{t}_{\partial / 2} S/k Δˉt/2
  由于样本有限,在使用交叉验证等方法的时候,会导致不同轮次的训练集有一定程度的重叠,是的测试错误率不独立,导致过高估计假设成立的概率,为缓解这一问题,可采用“5次2折交叉验证”。

一组数据集、多个算法----Friedman检验与Nemenyi检验

Friedman检验

  假设有数据集D1、D2、D3、D4,算法A、B、C进行比较。
  使用留出法或者交叉验证得到每个算法在每个数据集上的测试结果,然后在每个数据集上根据测试性能由好到坏排序,并赋予序值1,2,…,若算法测试性能相同,则平分序值。
在这里插入图片描述
  使用Friedman检验来判断这些算法是否性能相同,若相同,则它们的平均序值应当相同。
  若在N个数据集,比较k个算法,令 r i {r_i} ri表示第i个算法的平均序值,则 r i {r_i} ri的均值和方差分别为 ( k + 1 ) / 2 , ( k + 1 ) ( k − 1 ) / 12 (k+1) / 2, \quad(k+1) \quad(k-1) / 12 (k+1)/2,(k+1)(k1)/12,则有:
τ χ 2 = k − 1 k ⋅ 12 N k 2 − 1 ∑ i = 1 k ( r i − k + 1 2 ) 2 = 12 N k ( k + 1 ) ( ∑ i = 1 k r i 2 − k ( k + 1 ) 2 4 ) \begin{aligned} \tau_{\chi^{2}} &=\frac{k-1}{k} \cdot \frac{12 N}{k^{2}-1} \sum_{i=1}^{k}\left(r_{i}-\frac{k+1}{2}\right)^{2} \\ &=\frac{12 N}{k(k+1)}\left(\sum_{i=1}^{k} r_{i}^{2}-\frac{k(k+1)^{2}}{4}\right) \end{aligned} τχ2=kk1k2112Ni=1k(ri2k+1)2=k(k+1)12N(i=1kri24k(k+1)2)
  在k和N比较大时,服从自由度为k-1的 χ 2 \chi^{2} χ2分布。
τ F = ( N − 1 ) τ χ 2 N ( k − 1 ) − τ χ 2 \tau_{F}=\frac{(N-1) \tau_{\chi^{2}}}{N(k-1)-\tau_{\chi^{2}}} τF=N(k1)τχ2(N1)τχ2
  服从自由度为k-1和(k-1)(N-1)的F分布。下面是F检验常用的临界值:
F检验常用临界值

Nemenyi检验

  若原假设被拒绝,则需要进行后续检验,来得到具体的算法之间的差异。常用的是Nemenyi检验。Nemenyi检验计算出平均序值差别的临界值域,下表是常用的qa值,若两个算法的平均序值差超出了临界值域CD,则相应的置信度 1 − α 1-\alpha 1α拒绝“两个算法性能本相同”的假设。
C D = q α k ( k + 1 ) 6 N C D=q_{\alpha} \sqrt{\frac{k(k+1)}{6 N}} CD=qα6Nk(k+1)
  qa中常用的联临界值:
在这里插入图片描述

链接

https://blog.csdn.net/qqMiSa/article/details/98660515

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值