首页 > 代码库 > 分类器效果分析

分类器效果分析

假设有两个分类器A,B。A在1000个样本的集合上有75%的准确率;B在200个样本的集合上有85%的准确率。我们要怎样评价这两个分类器的效果?

这就是这里要讨论的分类器效果分析。

 

抛硬币的例子

硬币正面的概率为50%,那么做N次随机试验,也就是N次的伯努利试验。根据概率的知识,我们知道,正面硬币个数X满足B(0.5N,0.5*0.5*N)的伯努利分布。

再根据大数定理,假设N足够大,那么X满足N(0.5N,0,5*0,5*N)的正态分布。

准确率acc=X /N,我们可以得出acc的分布:

acc~N(0.5,0.5*0.5/N)

 

同样的,A分类器的真实准确率是p,那么对于每个测试样本,有p的概率被预测正确。也就是,N个测试样本的预测也同上面的抛硬币一样,是概率为p的N次伯努利实验。

于是有

acc~N(p,p(1-p)/N)

以上,我们以伯努利模型,得到了关于识别率的概率公式。

 

置信区间

置信区间是根据观察值,对于总体分布参数的一个估计。这里我们关于真实p,也就是分布中的均值做一个估计。

根据之前正态分布的均值和方差,我们得到如下的置信区间:


以上,我们可以得到真实准确率的一个估计区间,以及这个区间的可信度。

*个人理解的置信区间,基于假设分布,根据观察值在假设分布的某个区间的概率,可以反推假设分布中其他参数的概率。

继续推导出置信区间的公式:


小结论:同样的置信区间,置信度随着N的增加而增加。

 

比较方法

有了置信度,置信区间,还是不好比较。假设

A:75%+-1%

B:85%+-10%

同在置信度95%下

还是看不出有什么优劣。继续推导比较方法。

 

误差差值建模

两个分类器之间的区别,我们可以用d=e1-e2来衡量。

其中e表示分类误差,e1表示在数据集1上,e2为数据集2上。

我们可以认为e1,e2分别为独立的正态分布。

于是,他们之间的差值:

d=e1-e2

为两个独立正态分布之和,于是,d也满足正态分布,有:


我们就可以估计训练误差之差值的一个置信区间。

比如,我们可以估计两个分类器的d形如:

d=10%+-12.8%,在置信度95%之下

这里d包含0,也就是两个分类器差异不显著。

或者:

d=10%+-1%,在置信度95%之下

那么,两个分类器差异显著,e1>e2。

 

交叉验证性能比较

在同一个数据集上进行K-fold交叉验证时,每个分类器进行了K次。根据概率论知识,其准确率的均值之差d=mean1-mean2为K个正态分布的均值,满足自由度为k-1的t分布。我们用t分布来估计其差异。

我们有:


我们就能得到关于两个分类器K-fold交叉验证的差异估计。

 

小结

*在t分布中,我们的前提是同一个数据集上,而且d是同一阶段两个准确率之差。因为在不同训练集上训练的结果没有可比性。而K-fold中不同阶段为不同的训练样本集。故计算d时要两两对应。

*以上的所有估计,也都是基于相同的训练样本集合,才有意义。

*一般的实验中,我们测试的集合都能够相等,那么单一实验的估计就可以直接比较大小,没有太大意义。这时候,我们进行K-fold验证,可以得到更好的比较估计。不过具体操作中,基本直接使用均值相减的比较,方便快捷。个人觉得,除非是很严谨的实验设置,一般的K-fold取均值就可以得到较好的比较结果。