西瓜书《机器学习》阅读笔记2——Chapter2_查准率、查全率与F1

绘制P-R曲线

这里举两个例子来说明怎么绘制P-R曲线。
假设有测试实例{x1,x2,x3,x4,x5,x6},其中真实标记为正例的是x1,x2,x5,真实标记为反例的是x3,x4,x6

现在根据学习算法A得到了模型,按其预测的为正例的可能性大小对测试样例进行排序,结果如下:x5,x2,x1,x3,x4,x6

  • x5预测为正例,其余预测为反例,则P=1,R=13,其对应的混淆矩阵如下:
  预测为P 预测为N
真实为P 1 2
真实为N 0 3


  • x5,x2预测为正例,其余预测为反例,则P=1,R=23
  • x5,x2,x1预测为正例,其余预测为反例,则P=1,R=1

  • x5,x2,x1,x3预测为正例,其余预测为反例,则P=34,R=1

  • x5,x2,x1,x3,x4预测为正例,其余预测为反例,则P=35,R=1

  • x5,x2,x1,x3,x4,x6预测为正例,则P=12,R=1

综上,可以画出算法A的P-R曲线:

西瓜书《机器学习》阅读笔记2——Chapter2_查准率、查全率与F1

曲线下的面积很大,可以看出学习算法A的性能是非常好的。


F1

F1的计算公式如下:

F1=PRP+R(1)

F1其实是P和R的调和平均:
1F1=12(1P+1R).

更一般的形式是Fβ
1Fβ=11+β2(1P+β2R).(2)

其中β度量了查全率和查准率的相对重要性。

F1更注重较小值:比如P=0.1,R=0.9,那么F1是会大呢,还是小呢?根据公式(2)得到F1=2PRP+R=0.18,所以F1更偏向小值。也可以这样理解,因为F1=21P+1R,那么分母中的两个相加项,更大的那个对F1的取值更重要,也就是PR中更小的那个对F1的取值更重要。

β>1时,查全率对Fβ的影响更大;在β<1时,查准率对Fβ的影响更大。因为Fβ=(1+β2)11P+β2R,当β>1时,β2R项会更大,所以R更重要;反之亦然。

当手上有多个二分类混淆矩阵时,想考察综合查准率和查全率,有两种方式:

  • macro(宏):计算每个混淆矩阵的P和R,然后取平均作为宏P和宏R
  • micro(微):每个混淆矩阵对应的元素相加,得到一个新混淆矩阵,基于这个新的混淆矩阵计算出微P和微R

根据公式(1)由宏P和宏R得到宏F1,由微P和微R得到微F1。