在评估机器学习模型性能时,仅依赖主观感觉难以提供足够客观的信息。为了更全面地评估模型在解决特定问题上的表现,我们需要依赖一系列量化指标Accuracy、Precision、Recall、F1。
问题定义
假如有100例疾病筛检,其中已知70位为正常人,30位为患者。疾病筛查的目的是为了找出所有的病患,现在筛检结果显示50人罹患疾病,但这50人中仅有16位为真的罹患疾病,其他34位属于正常人被误判的情况。
因此,从上述可知下列表格情况。
被诊出罹患疾病 | 未被诊出罹患疾病 | ||
病人 | 16人(True Positive,TP) | 14人(False Negative,FN) | 30人 |
正常人 | 34人(False Positive,FP) | 36人(True Negative,TN) | 70人 |
50人 | 50人 |
True Positive,TP
第一个True表示分类正确,第二个Positive表示在这次筛检将其归类为罹患疾病,即病人被诊断出罹患疾病的状况,共16人。
False Positive,FP
第一个False表示分类错误,第二个Positive表示在这次筛检将其归类为罹患疾病,即正常人被诊断出罹患疾病的状况,共34人。
False Negative,FN
第一个False表示分类错误,第二个Negative表示筛检将其归类为没有疾病的人,即筛检将病人诊断为未罹患疾病的状况,共30人。
True Negative,TN
True表示分类正确,第二个Negative表示筛检将其归类为没有疾病的人,即正常人被诊断出没有罹患疾病的状况,共36人。
接下来的指标计算,基于TP TN FP FN四种状况的排列组合。
Accuracy,准确率
定义:给定测试资料集,分类器将正确分类样本的样本数与总样本数的之比,即模型预测正确数量所占整体的比例。
其公式为:
依据情境计算:
这是最常见的评价指标,但对于资料集比例不平衡的状况下,如肺炎 癌症筛查等,Accuracy指标不具备参考价值。
以罕见病检测来说,有100个样本,99位是Negative(未患病),只有一个Positive(患病)。假设有一模型对样本预测输出全为Negative,因此准确率高达99/100=0.99,但该模型几乎报废无法使用,因为无法诊断出有疾病。
Precision,精确率
定义:被预测为Positive的结果中,有多少是真的Positive。
其公式为:
依据情境计算,被模型预测为病人中有多少是真的病人:
Recall,召回率
定义:原本是Positive的资料有多少被预测出来。
其公式为:
依据情境计算,真的病人中真的被模型预测出来的比例:
一般而言,这两个指标很难兼顾。如果模型太贪婪,试图预测更多的 Ground Truth 为 Positive 的例子,可能会导致误判,虽然 Recall 较高,但 Precision 会下降。反之,如果模型过于谨慎,Precision 或许会很高,但 Recall 相对较低。
在面对这种两难情境时,引申出了另一指标
F1-score
它综合考虑了 Precision 和 Recall,通过调和平均来取得平衡。
其公式为:
依据情境计算,