机器学习
任务中的
f1-score
究竟是
什么?
在一些国内国际的机器学习竞赛活动中,通常使用f1-score(f1分数)作为最终评测机器学习模型质量的指标。实际上f1-score是一个统计学概念,它是用来衡量二分类模型精确度的一种指标,它的最大值为1,最小值为0,通常也被应用在机器学习中模型的质量评估中。f1-score同时兼顾了分类模型的精确率和召回率,它可以看做是模型精确率和召回率的一个调和平均值。那么所谓“精确率”和“召回率”有什么区别?为什么通俗意义上的“准确率”不适合作为模型评估指标?f1-score在模型评估中的优势是什么呢?本文将通过具体案例进行直观讲解。
一、准确率
通俗地讲,准确率是用来衡量一个系统准确程度的值,在生活中我们也常常习惯使用这个词来评估事物。例如“你投篮的准确率是多少?”“你预测比分的准确率高不高?”等等。准确率被认为是系统做出正确判断的次数除以总的测试次数。举个例子,在疫情早期时感染者很少,健康者很多,假如有一台医学仪器A可以快速检测人员感染情况,而用这台仪器检测100个受试者,结果显示有2位是阳性,并且后续确认的确是阳性,显示有98位是阴性,并且后续也确认这98位的确是阴性,那么这台仪器的准确率就是100%。而考虑到在疫情早期健康人员占大多数,假如有一个不良厂家造了一台假仪器B,内部是一个空盒子,对所有人都报告阴性,这时再检测上述100位受试者,假仪器的准确率竟然高达98%,这样的准确率显然没有说服力。
通过上面的例子可以看出,只有当数据中的类别分布均衡时,准确率才是一个有参考价值的指标,当类别数量差距悬殊,始终依赖准确率作为参考指标是具有系统风险的。而在实际业务中,我们无法保证样本数据分布均衡,因此就需要更加合理的评估指标。
二、混淆矩阵
在统计学中通常使用混淆矩阵来直观展示样本和预测之间的关系。例如在上例中的分类问题中,我们记阳性为P(position,正类),阴性为N(negative,负类),则混淆矩阵如下:
答案/ 预测 |
P |
N |
P |
TP |
FP |
N |
FN |
TN |
其中:
-
TP:样本为正类且预测为正类
-
TN:样本为负类且预测为负类
-
FP:样本为负类但预测为正类
-
FN:样本为正类但预测为负类
-
TP+FP:样本为正类且预测为正类+样本为负类但预测为正类=预测为正类的样本总数
-
TP+FN:样本为正类且预测为正类+样本为正类但预测为负类=实际为正类的样本总数
三、精确率和召回率
精确率(precision, P值)是指预测结果中正类数量占全部结果的比率,也就是目标所预测的正类样本中真正的正类样本所占的比率,即P=TP/(TP+FP)。
召回率(recall, R值)指的是正类样本被找出来的比率,也就是样本中的正类样本被目标识别出来的比率,即R=TP/(TP+FN)。
现在回头来看医学仪器检测受试人员的例子中。当使用仪器A检测时,P=100%,R=100%而当使用仪器B检测时,P=0,R=0,因此仪器B的假冒伪劣特性就暴露无遗。
四、f1-score
回想之前的案例,假如商家又做了新型号的劣质检测仪C,这次总是报告阳性,那么此时R=100%,p=2%,这两个指标差距巨大。一般而言精确率和召回率比较难以平衡,给评估模型好坏造成了困难。
为了避免在现实中商家只拿100%的召回率做宣传,却对2%的精确率避而不谈,在实际任务的评估中我们需要一个综合性指标。例如精确率和召回率的调和平均值f1-score:f1=2*P*R/(P+R)。观察公式可知,只有当P和R同时较高时,才能得到较高的f1-score,使用f1-score对之前案例中的仪器进行评估可以发现,仪器A的f1=1,仪器B的f1=0,仪器C的f1=0.0392,因此优质仪器A和假冒伪劣仪器B、C被很好地区分了出来。
一般来说,对于二分类问题我们通常只计算正类样本的f1-score,即将正类的f1-score当成整体f1-score,而不会去分别计算正类和负类。那么多分类任务的f1-score又是怎么计算的呢?在多分类问题中,如果要计算模型的f1-score,有两种计算方式,分别为micro-f1和macro-f1,较为常用的为第二种。
macro-f1的计算方法很简单,实际上只要转换思路,在二分类(A、B)任务中我们设A为正类、B为负类计算f1-score,那么在多分类(A、B、C、D……)任务中,只需要分别设置每一个类别为正类,其他类别为负类,分别计算出每个类别的f1-score,再对所有f1-score求平均,即可得到多分类的f1-score,这便是macro-f1的计算方法。
此外由macro-f1还衍生出了weighted-f1,它是一个将f1-score乘以该类的比例之后相加的结果,也可以看做是macro-F1的变体。weighted-f1和macro-f1的区别在于:macro-f1对每一类都赋予了相同的权重,而weighted-f1则根据每一类别所占的比例分别赋予不同的权重。
总的来说,f1-score就是从主观(精确率)和客观(召回率)两个角度去综合评估模型质量,只有精确率和召回率都大的时候f1-score才会大。而在寻找模型最优超参数设置的网格搜索中,只使用一个评估指标比使用多个指标方便得多,因此f1-score成为评估模型质量的一个通用指标。
文章作者:潘嘉伟
排版设计:王蔚棋
手绘插画:岳 媛
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33580.html