分类模型的性能评估指标总结
Posted chaimy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分类模型的性能评估指标总结相关的知识,希望对你有一定的参考价值。
机器学习中所用模型的好坏需要通过一些量化的指标来评估。对于分类模型,是通过:1)精度(Accuracy);2)准确率(Precision);3)召回率(Recall);4)F1分数;5)ROC曲线(Receiver operating characteristic curve,受试者工作特征曲线);6)AUC(Area Under Curve)曲线来实现的。
二分类模型
对于二分类问题,通常将两个类别称为正类和负类。正类中的样本为正例,负类中的样本为负例。假设我们有一组样本对应的y真实标签记为y_test = [1 1 0 1 1 1]
,相应的y预测标签记为y_pre = [1 0 0 1 0 1]
,预测结果可分为4种情况:
- 正例1被判定为正例1,其数目称为TP(True positive)
- 正例1被判定为负例0,其数目称为FN(False negative)
- 负例0被判定为正例1,其数目称为FP(False positive)
- 负例0被判定为负例0,其数目称为TN(True negative)
将预测结果写成混淆矩阵(confusion matrix)形式:
真实标签 | 预测标签 | |
正例(1) | 负例(0) | |
正例(1) | TP | FN |
负例(0) | FP | TN |
样本量$N=TP+FP+FN+TN$
精度$Accuracy=\\fracTP+TNTP+FP+FN+TN$,表示总样本中预测正确的样本数占比。
错误率$Error=1-Accuracy=\\fracFP+FNTP+FP+FN+TN$
查准率$Precision=\\fracTPTP+FP$,也称为准确率,表示预测值为正的样本中预测正确的样本数占比。
召回率$Recall=\\fracTPTP+FN$,也称为查全率,表示真实值为正的样本中预测正确的样本数占比,即正样本的准确率。
注:查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查全率往往偏低。
Precision-Recall 曲线是根据多个阈值计算得到的多组查准率(纵坐标)和查全率(横坐标)绘制而成,示意图如下:
从P-R图上可以直观地看到模型在样本总体上的查全率和查全率。当一个模型的P-R曲线被另一个模型的曲线完全包住,则可认为后者的性能优于前者(上图中A优于C);如果两个模型的P-R曲线发生了交叉,则难以一般性地判断两者孰优孰劣,只能在具体得查准率或查全率条件下比较(上图中A和B)。当然,如果非要比较上图中A和B模型的相对好坏,可通过计算平衡点(Break-Event Point,即查准率=查全率的点)的值来比较,则可认为模型A优于B。更常用的度量方式则为F1评分。
F1评分$F1$ $score=\\frac2*Precision*RecallPrecision+Recall$
ROC曲线是根据多个阈值计算得到的多组FPR(False positvie rate,假正例率) (作为横坐标)和 TPR (True positvie rate,真正例率)(作为纵坐标)绘制而成;其中,
- $TPR=\\fracTPTP+FN$,与召回率的公式一样
- $FPR=\\fracFPFP+TN$,表示真实值为负的样本中预测错误的样本数占比,等于1-特异度(Specificity)
可以看到,ROC曲线同时考虑了分类模型对正例和负例的分类能力,对样本类别是否均衡并不敏感,因此,常被用来评价模型的性能。其值越靠上说明模型越好。与P-R图类似,当一个模型的ROC曲线被另一个模型的曲线完全包住,则可认为后者的性能优于前者;如果两个模型的ROC曲线发生了交叉,则难以一般性地判断两者孰优孰劣。如果非要比较,比较合理的判据是比较ROC曲线下的面积,即AUC。
AUC表示ROC曲线下面的面积,值范围为0~1。其值越高,模型性能越好;AUC=1.0时模型最好,AUC=0.5表示随机分类。
模型评价指标总结
参考技术A 1、分类准确度定义:分类准确度(accuracy),指在分类模型中,模型的输出分类结果与真实结果一致的样本占总分类样本的比例。
优缺点:其容易理解,但致命缺点是对于极度偏斜的数据,使用分类准确度是不科学不全面的。如癌症产生的概率时0.1%,那如果不用任何机器学习的算法,只要系统将所有人都预测为健康,那么即可达到99.9%的准确率。这显然是不科学的。
2、精准率和召回率
精准率和召回率又可分别称为查准率和查全率,即平常所说的precision和recall。想要弄清楚这两个指标的计算方法,首先需要对混淆矩阵有个清晰的认识。
(1)混淆矩阵
混淆矩阵是一个2*2的矩阵形式的表格,其行为真实标签分布,列为预测标签分布。如下:
其中,第一行为真实值为P,第二行为真实值为N。第一列为预测值为P,第二列为预测值为N。设矩阵为M,则M11为真实值为p且预测值为P,M12为真实值为p但预测值为N,M21为真实是为N但预测值为P,M22为真实值为N且预测值为N。
(2)精准率(precision)
precision=TP/(TP+FP)。含义为所有预测为positive的样本中真正为positive的样本数所占比例。即预测为P,且预测对了的比例。通常含义上,精准率为我们关注的事件预测得有多准。
(3)召回率(recall)
recall=TP/(TP+FN)。含义为所有实际为positive的样本中预测对了的样本数所占比例。即真实值为P,且预测对了的比例。通常含以上,召回率为我们关注的事件真正预测成功的比例为多少。
3、综合评价指标
精准率和召回率是两个矛盾的指标,一个高时,另一个就偏低。因此,需要一个综合性的指标来对模型性能进行评估。
(1)F值
F值precision和recall的调和平均数,使用调和平均数时,假设两者一样重要,称为F1-score。
F1-score=(2recall*precision)/(recall+precision)
(2)P-R曲线(Precision-Recall Curve)
以precision为纵轴,以recall为横轴,取不同的分类阈值,在此基础上画出来的一条曲线就叫做PR曲线。PR曲线越接近右上角(precision=1,recall=1),代表模型越好。一般而言,比较P-R曲线下面积的大小,可在一定程度上表征模型在查准率和查全率上取得相对“双高”的比例,但该值不太容易计算。因此,其他相对容易计算的性能度量被提出。
(2)ROC曲线(Receiver Operating Characteristic Curve)
ROC曲线,全称“受试者工作特征”曲线,以“真正率”为y轴,以“假正率”为x轴,取不同的分类阈值,在此基础上画出来的一条曲线就叫做ROC曲线。ROC曲线越接近左上角(true positive rate=1,false positive rate=0),代表模型性能越好。同P-R曲线一样,一般通过ROC曲线下的面积(auc)来判断模型的好坏。AUC越大,代表模型性能越好,若AUC=0.5,即ROC曲线与45度角线重合,表示模型的区分能力与随机猜测没有差别。
4、回归模型的评价指标
1、均方误差MSE
2、均方根误差RMSE
3、平均绝对误差MAE
4、R Square
均方根误差和平均绝对误差依据数据本身的量纲,不同的模型不具有可比性,没有分类准确率这样统一在0-1之间取值的性质。因此,出现了R square统计量。
R square优点:
(1)对于分子来说,预测值和真实值之差的平方和,即使用我们的模型预测产生的错误。
(2)对于分母来说,是均值和真实值之差的平方和,即认为“预测值=样本均值”这个模型(Baseline Model)所产生的错误。
(3)我们使用Baseline模型产生的错误较多,我们使用自己的模型错误较少。因此用1减去较少的错误除以较多的错误,实际上是衡量了我们的模型拟合住数据的地方,即没有产生错误的相应指标。
R square结论:
(1)R square<=1
(2)R square越大越好,越大说明减少的分子小,错误率低。其最大值为1。
(3)当我们的模型等于基准模型时,R square = 0
(4)如果R square<0,说明我们学习到的模型还不如基准模型。此时,很可能我们的数据不存在任何线性关系。
以上是关于分类模型的性能评估指标总结的主要内容,如果未能解决你的问题,请参考以下文章
R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)