多分类问题中查全率和查准率的理解
查全率查准率是从信息检索来的,那么我们就得先看看原来的是怎么定义的:
查全率——它是指检出的相关文献量与检索系统中相关文献总量的比率,是衡量信息检索系统检出相关文献能力的尺度。
查准率——它是指检出的相关文献量与检出文献总量的比率,是衡量信息检索系统检出文献准确度的尺度。
使用泛指性较强的检索语言(如上位类、上位主题词)能提高查全率,但查准率下降。
使用专指性较强的检索语言(如下位类、下位主题词)能提高查准率,但查全率下降。
下面用多分类问题举个例子,首先我们计算多分类问题的混淆矩阵,然后计算各个指标,结果如下:
confus =
69 2 4 6 1 14 4
3 70 6 2 7 6 6
4 6 66 2 5 6 11
2 2 18 51 9 12 6
4 8 1 2 80 3 2
7 6 3 7 2 67 8
11 6 7 5 7 6 58
accuracy =0.6586
numcorrect =461
precision =0.6900 0.7000 0.6286 0.6800 0.7207 0.5877 0.6105
recall =0.6900 0.7000 0.6600 0.5100 0.8000 0.6700 0.5800
F =0.6900 0.7000 0.6439 0.5829 0.7583 0.6262 0.5949
这是一个7-分类问题,每一类样本100。混淆矩阵看见了么? confus矩阵中每一行和等于该类的样本和=100;但是每一列就不是100了,每一列其实的意义,就是信息检索的返回的所有结果。
假设我们用类别3的标签进行搜索,那么会返回confus中第3列的所有数据,没问题吧?因为分到第3类的确实是这些数据,一共有105个,因为有其他的类也分到这个类中了呗。
所以第三类的查准率=检索出的相关文档数目(66)/检索返回的所有的文档数目(105)=0.6288=precision(3)。结果是没问题的吧。
查全率那就是检索出的文档数目(66)/数据库中的第三类的所有文档数目(检索出的第三类+没有检索出的第三类=confus第三行的和=100)=0.66=recall(3)。也没问题吧。
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡