分类算法评估--假设检验

在比较分类算法a和b时,直接依赖测试集准确率可能不准确,因为微小差异可能源于随机性。文章介绍了统计学上的假设检验方法,如Student's test、McNemar's test和Friedman test,来确定算法间的显著差异。Student's test通过多次k-cross validation计算错误率差值,McNemar's test关注分类错误转换,而Friedman test用于比较多个算法在不同数据集上的表现。这些方法有助于更科学地评估算法性能。
摘要由CSDN通过智能技术生成

我们有时需要比较两个分类算法a和b的优劣。直接看测试集合上的准确率当然是一个直观的想法,但是有时候,这些微小的差异可能是由于测试集合的随机性造成的,并不一定说明算法优劣。因此,需要用到统计学上的假设检验。

下面是常用的几种方法

1. student's test  [Dietterich, 1998]

首先对两个算法a和b,计算n次k-cross validation

对于单次 k-交叉验证,

d^i= err (a,i)- err(b,i) 表示在第i fold上两个算法的错误率的差

d = avg_k(  d^i )  对k fold取平均

s^2= 1/(K-1) *sum( (d^i-d)^2 ) 对k-fold取方差


设第j次交叉验证(j=1~n),获取的均值和方差分别为dj, sj^2

有  t= dj / (avg_n(sj^2) )^(1/2) ~ t2服从自由度为5的students分布,

按照假设检验理论,我们选定significant level= /alpha(一般选0.05或者0.1),查表获得自由度=5的student's分布的对应假设区间,当t落在对应区间上时,说明null hypthesis被接受,两个算法没有明显差异

这个检验的需要跑多次,一般来说至少是5次2-cross。


2. McNemar's test  [Dietterich, 1998]

err01= # 算法a中错误算法b中正确

err10= # 算法b中错误算法a中正确

(|err01-err10|-1 )^2/(err01+err10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值