由于现在有两个指标:查准率和召回率,如果有一个算法的查准率是0.5,召回率是0.4;另一个算法的查准率是0.02,召回率是1.0。那么两个算法到底哪个好呢?
为了解决这个问题,我们引入了F1Score的概念:
F 1 S c o r e = 2 P R P + R {F}_{1}Score=2\frac{PR}{P+R} F1Score=2P+RPR
其中P是查准率(Precision),R是召回率(Recall)。
这样就可以用一个数值直接判断哪个算法性能更好。极端情况下,如果查准率或召回率有一个为0,那么F1Score将会为0。而理想情况下,查准率和召回率都为1,在算出来的F1Score为1。一般而言,一个好的模型既要有较高的查准率P,同时也要有较高的召回率R,只有这样F1Score的值才能更大。
在scikit-learn里,计算F1Score的函数是sklearn.metrics.f1_score()。