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

一个数据集、单个算法

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

m个样本的测试集上,泛化错误率为ϵ\epsilon的学习器被测得测试错误率为ϵ^\hat{\epsilon}的概率是:
P(ϵ^;ϵ)=(mc^×m)ϵe^×m(1ϵ)me^×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}
服从二项分布,可使用“二项检验”进行检验。

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

多次重复留出法或者交叉验证法进行训练/测试,会得到多个测试错误率,此时可使用“t检验”。假定获得了k个测试错误率,ϵ1^ϵ2^ϵ3^ϵ^k\hat{\epsilon1}、\hat{\epsilon2}、\hat{\epsilon3}…\hat{\epsilon}k,则平均测试错误率为Xˉ\bar{X}S2S^{2}
Xˉ=1ki=1kε^i,S2=1k1i=1k(ε^iXˉ)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ˉε)S/nt(n1) \frac{(\bar{X}-\varepsilon)}{S / \sqrt{n}} \sim t(\mathrm{n}-1)
t分布示意图及常用双边临界值表如下所示:
机器学习中的算法性能假设检验--最通俗易懂

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

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

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

Friedman检验

假设有数据集D1、D2、D3、D4,算法A、B、C进行比较。
使用留出法或者交叉验证得到每个算法在每个数据集上的测试结果,然后在每个数据集上根据测试性能由好到坏排序,并赋予序值1,2,…,若算法测试性能相同,则平分序值。
机器学习中的算法性能假设检验--最通俗易懂
使用Friedman检验来判断浙西额算法是否性能相同,若相同,则它们的平均序值应当相同。
若在N个数据集,比较k个算法,令ri{r_i}表示第i个算法的平均序值,则ri{r_i}的均值和方差分别为(k+1)/2,(k+1)(k1)/12(k+1) / 2, \quad(k+1) \quad(k-1) / 12,则有:
τχ2=k1k12Nk21i=1k(rik+12)2=12Nk(k+1)(i=1kri2k(k+1)24) \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}
在k和N比较大时,服从*度为k-1的χ2\chi^{2}分布。
τF=(N1)τχ2N(k1)τχ2 \tau_{F}=\frac{(N-1) \tau_{\chi^{2}}}{N(k-1)-\tau_{\chi^{2}}}
服从*度为k-1和(k-1)(N-1)的F分布。下面是F检验常用的临界值:
机器学习中的算法性能假设检验--最通俗易懂

Nemenyi检验

若原假设被拒绝,则需要进行后续健谈,来得到具体的算法之间的差异。常用的是Nemenyi检验。Nemenyi检验计算出平均序值差别的临界值域,下表是常用的qa值,若两个算法的平均序值差超出了临界值域CD,则相应的置信度1α1-\alpha拒绝“两个算法性能本相同”的假设。
CD=qαk(k+1)6N C D=q_{\alpha} \sqrt{\frac{k(k+1)}{6 N}}
qa中常用的联临界值:
机器学习中的算法性能假设检验--最通俗易懂

链接

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