机器学习常见评价指标 Common Indicators for Machine Learning

常见的评价指标种类实际较为丰富,但因此也很容易遗忘和疏忽,抽空整理如下:

混淆矩阵 (Confusion Matrix)

事实为真 事实为假
猜测为阳性 TP FP
猜测为阴性 FN TN

混淆矩阵可以作为一个串联其他指标的关键角色,因此首先将其引入,本身四个指标的简称就很容易“混淆”了,不准确记住可不行,这里命名可以很简单的发现由两对元素组成{True,False},{Positive, Negative},其中PN是用来表示预测的结果,即阳性与阴性,而True与False则是用于表示预测相对于事实的对错,因此FN表示猜测为阴性,而猜测又猜错了,因此事实结果与预测相反,为真。 当然2x2只是混淆矩阵的一个特例,高维的情况不再赘述。

准确率(Accuracy)

根据混淆矩阵的表示,可以将我们最熟悉的准确率重新列出如下:

准确率可以算是我们的“启蒙”指标了,可以很直观的评价一个模型的预测结果优劣,但是对于一些特殊情况(例如标签分布即为不均匀等)则表现较差,具有较强的局限性。

精确率&召回率, Score

通过混淆矩阵,我们可以对精确率(precision)、召回率(recall) 进行定义:


根据公式,精确率直观表示预测为真且准确的样本占所有预测为真的样本的比例,而召回率表示预测为真且正确的样本占所有真的样本的比例,用来衡量搜索系统的“查全率”。相比之下,精确率反应的是搜索系统的“查准率”,利用二者之间相互制约的关系,可以更全面的对模型的预测进行评价。 在实际使用中需要根据场景需求对二者进行取舍。

而最常见的对召回率与精确率进行综合衡量的指标就是 score 了, 其表达式如下:

其中表示了对精确率的重视程度,当大于1时则表现为更加重视精确率,而当小于1时则更加重视召回率。特别的当等于1时,称为平衡F分数(balance F score),也就是十分常用的F1 score:

相比于准确率,使用F分数可以更全面的衡量模型表现。

ROC&AUC

想必经常看论文的一定对评价指标AUC并不陌生,AUC(Area under Curve),为曲线下面积,而这根曲线就是上文所提到的ROC(Receiver Operating Characteristic curve),中文译为受试者工作特征曲线。 想要解释该曲线的含义我们还是要借助混淆矩阵。除了精确率以及召回率外,我们引入以下两个指标:真阳性率(TPR),假阳性率(FPR)。


其中TPR 也称为敏感性,可以发现与上面的召回率表示同一个意思,而FPR则可以更形象地形容为误诊率。
而ROC曲线则是按照以FPR为X轴,TPR为Y轴,不断变换正负样例的判断阈值 t 以获取不同的数据点所画出的曲线。 对于真正例率TPR,分子是得分>t里面正样本的数目,分母是总的正样本数目。 而对于假正例率FPR,分子是得分>t里面负样本的数目,分母是总的负样本数目。由于分母是恒定的,因此TPR与FPR都会随着阈值 t 的减小而不断增大,若二者增长比例相当则表示模型的输出为随机判断,因此ROC曲线多在y=x曲线上方。而一个好的模型,则会更好的分辨二者,从而让TPR的增大速度快于FPR,从而使曲线更陡,因此ROC曲线下的面积也就越大。如下图所示:

ROC_curves

其中左图表示随阈值划分的结果,若TP与TN无混叠则表示模型可以将其完全分出来,从而对于AUC越大。
AUC可以看做随机从正负样本中选取一对正负样本,其中正样本的得分大于负样本的概率,而这种排序能力越强则可以代表模型的效果越好。
除此之外,AUC也属于对正负样例比例不敏感型,因此具有更强的鲁棒性。

你可能感兴趣的:(机器学习常见评价指标 Common Indicators for Machine Learning)