模型性能评估之 Friedman 检验与 Nemenyi 后续检验

前言

当我们提出一种算法,需要知道我们的算法和现在已有的算法相比,性能是否更优的时候,就需要用到模型性能评估的方法。本篇博客介绍一种模型性能评估的方法:Friedman 检验与 Nemenyi 后续检验

该方法的特点是:可以进行多个算法的比较。下面看看具体的使用:

具体使用

1. 计算序值

假定我们用 D 1 D_1D1D 2 D_2D2D 3 D_3D3D 4 D_4D4 四个数据集对算法 A AAB BBC CC 进行比较。首先需要得到每个算法在每个数据集上的测试结果,可以是准确率,也可以是均方误差,然后在每个数据上根据测试性能的好坏进行排序,并赋予序值 1,2,…。如果算法的测试性能相同,则评分排名。比如,在 D 1 D_1D1D 3 D_3D3 上,A AA 最好、B BB 次之,C CC 最差,而在 D 2 D_2D2A AA 最好、B BBC CC 性能相同,…,则可以列出如下表所示的序值表,对每一列的序值进行求平均,得到平均序值。
1

2. Friedman 检验

然后,使用 Friedman 检验来判断这些算法是否性能相同。如果相同,则他们的平均序值应该相等。

假定我们在 N NN 个数据集上比较 k kk 个算法,令 r i r_iri 表示第 i ii 个算法的平均序值。为简化讨论,暂时不考虑平分序值的情况,则 r i r_iri 服从正态分布,其均值和方差分别为 ( k + 1 ) / 2 (k+1)/2(k+1)/2( k 2 − 1 ) / 12 (k^2-1)/12(k21)/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 ) \tau_{\chi^2} = \frac{k-1}{k}\cdot\frac{12N}{k^2-1}\sum_{i=1}^k{(r_i - \frac{k+1}{2}})^2 = \frac{12N}{k(k+1)}(\sum_{i=1}^k r_i^2 - \frac{k(k+1)^2}{4})τχ2=kk1k2112Ni=1k(ri2k+1)2=k(k+1)12N(i=1kri24k(k+1)2)
k kkN NN 都较大时,服从自由度为 k − 1 k-1k1χ 2 \chi^2χ2 分布。

然后,上述的这样的 “原始 Friedman 检验” 过于保守,现在通常使用变量
τ 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
其中,τ F \tau_FτF 服从自由度为 k − 1 k-1k1( k − 1 ) ( N − 1 ) (k-1)(N-1)(k1)(N1)F FF 分布。常用的临界值可以见下表。
22
另外也可以通过 R 语言计算得到 F 检验的临界值:

> qf(1- alpha, k-1, (k-1)(N-1))

若 “所有算法的性能相同” 这个假设被拒绝,则说明算法的性能显著不同。

3. Nemenyi 后续检验

这个时候就需要使用 “后续检验”(post-hoc test)来进一步区分算法。常用的算法是 Nemenyi 后续检验。
Nemenyi 检验计算出平均序值差别的临界值域
C D = q α k ( k + 1 ) 6 N CD = q_\alpha \sqrt{\frac{k(k+1)}{6N}}CD=qα6Nk(k+1)
下表给出了 α = 0.05 \alpha = 0.05α=0.050.1 0.10.1 时常用的 q α q_\alphaqα 值。

若两个算法的平均序值之差超出了临界值域 C D CDCD ,则以相应的置信度拒绝 “两个算法性能相同” 这一假设。

3
若表中没有自己想要的数值,可以用 R 语言计算:

qtukey(1- alpha, k, Inf)/sqrt(2)
# 比如:
qtukey(1-0.01,13,Inf)/sqrt(2)

4. Friedman 检验图

上述检验比较可以直观地用 Friedman 检验图显示。如下图所示,横轴是平均序值,纵轴是每个算法、对于每一个算法,用一个圆点显示其平均序值,以圆点为中心的横线段表示临界值域的大小。

观察图,若两个算法的横线段有交叠,说明两个算法没有显著的差别。
22
下图是之前自己做的一个 Friedman 检验图,可以看出 CNN-FCL, XGB 是显著优于 DTC, LOG, ELM, ABC, QDA 等算法的。
3


版权声明:本文为weixin_38746310原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。