对于构建好的机器学习模型,需要对模型的效果进行评估,对于机器学习中的3大类问题,分类,回归,聚类而言,各自有不同的评估指标,本文主要介绍分类模型常用的评估指标。
以二分类问题为例,考虑真实分类和模型预测的组合,会出现以下4种结果
上述矩阵称之为混淆矩阵,是一个N X N的方阵,其中N表示类别数。对于二分类而言,就是2 X 2的矩阵,其中
-
TP 对应 true positive, 真阳性,真实分类为正,模型预测也为正
-
TN 对应 true negative, 真阴性,真实分类为反,模型预测也为反
-
FP 对应 false positive, 假阳性,真实分类为反,模型预测为正
-
FN 对应 false negative, 假阴性,真实分类为正,模型预测为反
基于以上4种结果,得出了以下几个评估指标
1.准确率
顾名思义,就是模型预测准确的概率,预测准确包含了真阳性和真阴性两种情况,对应的公式如下
2. 精确率
精确率,又叫做查准率,指的是模型预测为正的样本中实际情况也为正的概率,公式如下
3. 召回率
召回率,又叫做查全率,指的是实际为正的样本中模型预测为正的概率,公式如下
对于不同的应用场景,精确率和召回率这两个指标各有侧重。精确率和召回率是此消彼长的关系,二者之间的关系可以通过下图所示的P-R曲线来描述
从图中可以看到,精确率越大,召回率越小;精确率越小,召回率越大。在PR-R曲线中,存在一个平衡点的概念,即Break-Even Point, 简称BEP,在该点处,查准率=召回率。
对于一个分类模型而言,不同的阈值可以得到不同的精确率和召回率,依次可以绘制P-R曲线,当我们比对多个模型时,通过曲线下的面积来衡量,面积大的模型效果更好。BEP就是用来方便的比较P-R曲线下面积的,平衡点越大,曲线下面积越大,所以直接比较不同模型的BEP就可以了。
同时还有一个指标,F1 score, 综合考虑了精确率和召回率这两个指标,对应的公式如下
F1 score是精确率和召回率的调和平均,其值越大,模型的效果越好。
4、ROC曲线
最后一个常用的评价指标是ROC曲线,ROC的全称如下Receiver Operating Characteristic
翻译成受试者工作特征曲线,为了理解ROC曲线,首先要搞清楚以下两个概念
True Positive Rate, 简称TPR,称之为真阳性率, 描述的是实际为正的样本中,模型预测为正的概率,就是召回率了,这个指标也叫做灵敏度;False Positive Rate, 简称FPR, 称之为假阳性率,描述的是实际为负的样本中,模型预测为正的概率。假阳性率又等价于1 - 特异性。
对于真阳性率和假阳性率而言,这两个指标都是基于实际样本中正和负两部分的数目单独分开定义的,所以无论实际样本正负分布的比例有多么不均衡,都不会影响这两个指标的计算。
ROC曲线就是以这两个指标为轴进行绘制的,其中横轴为假阳性率,纵轴为真阳性率,图示如下
和P-R曲线类似,ROC曲线可以展示同一个模型,不同阈值条件下的效果,相比单一阈值条件下计算的准确率,精确率,召回率,其衡量模型泛化能力的效果更强。
ROC曲线下的面积,即Area Under Curve, 简称AUC。对于一个模型而言,其AUC越大,效果越好。AUC取值范围为0到1, 0.5表示随机选择,所以0.5-1之间的模型是有实际意义的分类模型,其中0.5-0.7, 效果较低,0.7-0.85,效果一般,0.85-0.95,效果很好,0.95-1,效果非常好。
参考公众号:生信修炼手册