机器学习模型的常用评价指标
在看论文的过程中发现了有很多模型好坏的评价指标,有比较常见的指标,也有一些从未了解到的评价指标,是时候来整理一波了,以便后续学习查缺补漏。
常见概念:
- 真正(True Positive , TP):被模型预测为正的正样本。
- 假正(False Positive , FP):被模型预测为正的负样本。
- 假负(False Negative , FN):被模型预测为负的正样本。
- 真负(True Negative , TN):被模型预测为负的负样本。
- 真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。
- 假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。
- 假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。
- 真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数/2
1、混淆矩阵
混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。
2、准确率(Accuracy)
分类精确率:分类器正确分类的样本数与总样 本数之比,数值越高,性能越好
即正确预测的正反例数 /总数
总结:
适用于正例样本和反例样本平衡的条件下,虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。比如在样本集中,正样本有90个,负样本有10个,样本是严重的不均衡。对于这种情况,我们只需要将全部样本预测为正样本,就能得到90%的准确率,但是完全没有意义。对于新数据,完全体现不出准确率。因此,在样本不平衡的情况下,得到的高准确率没有任何意义,此时准确率就会失效。所以,我们需要寻找新的指标来评价模型的优劣。
3、精确率(Precision)
精确率容易和准确率被混为一谈。其实,精确率只是针对预测正确的正样本而不是所有预测正确的样本。表现为预测出是正的里面有多少真正是正的。可理解为查准率。即预测为正样本的样本中真正为正样本 所占的比例。
正确预测的正例数 /预测正例总数
总结:
适用于样本不平衡,且正例样本较多的情况,精确率和准确率看上去有些类似,但是是两个完全不同的概念。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。
4、召回率(Recall)
召回率表现出在实际正样本中,分类器能预测出多少。与真正率相等,可理解为查全率(这个经常和准确率搞混淆,实际上通俗来讲精确率表示找的对,召回率表示找的全)。
Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数(正样本中被成功预测为正样本的比例)
总结:
下面我们通过一个简单例子来看看精确率和召回率的关系。假设一共有10篇文章,里面4篇是你要找的。根据你的算法模型,你找到了5篇,但实际上在这5篇之中,只有3篇是你真正要找的。那么算法的精确率(找对率)是3/5=60%,也就是你找的这5篇,有3篇是真正对的。算法的召回率(找全率)是3/4=75%,也就是需要找的4篇文章,你找到了其中三篇。通常以精确率还是以召回率作为评价指标,需要根据具体问题而定。
5、F1分数
为例理解这个F1分数,先来看看P-R图,精确率和召回率又被叫做查准率和查全率,可以通过P-R图进行表示:
在评价模型好坏的情况下,我们希望精确率和召回率都很高,但实际上是矛盾的,上述两个指标是矛盾体,无法做到双高。因此,选择合适的阈值点,就需要根据实际问题需求,比如我们想要很高的精确率,就要牺牲掉一些召回率。想要得到很高的召回率,就要牺牲掉一些精准率。但通常情况下,我们可以根据他们之间的平衡点(在曲线中查全率和查准率相等的点),定义一个新的指标:F1分数(F1-Score)。F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡。(在P-R曲线中平衡点越接近(1.0,1.0)该点的模型越好)
F1分数表达式为:
6、Roc曲线
真正率:
假正率:
TPR和FPR分别是基于实际表现1、0出发的,也就是说在实际的正样本和负样本中来观察相关概率问题。因此,无论样本是否均衡,都不会被影响。继续用上面例子,总样本中有90%的正样本,10%的负样本。TPR能够得到90%正样本中有多少是被真正覆盖的,而与那10%无关。同理FPR能够得到10%负样本中有多少是被覆盖的,而与那90%无关。因此我们从实际表现的各个结果出发,就能避免样本不平衡的问题,这就是为什么用TPR和FPR作为ROC、AUC指标的原因。
ROC曲线中的四个点和一条线: 点(0,0):即FPR=TPR=0,FP=TP=0,(假的正是0,真的正也是0,即我没把任意一个样例预测为正)分类器把每个实例都预测为负类。 一般 点(1,0):即FPR=1,TPR=0,故FN=0,FP=0,都错了,最差分类器,避开了所有正确答案。 最差 点(0,1):即FPR=0, TPR=1,故TP=0,TN=0,将所有的样本都正确分类。 最好 点(1,1):故FN=0,TN=0,我没把任意一个样例预测为负,分类器把每个实例都预测为正类。一般 总之:ROC曲线越接近左上角,该分类器的性能越好。而且一般来说,如果ROC是光滑的,那么基本可以判断没有太大的过拟合。
7、AUC
AUC(Area Under Curve) 表示ROC中曲线下的面积,用于判断模型的优劣。如ROC曲线所示,连接对角线的面积刚好是0.5,对角线的含义也就是随机判断预测结果,正负样本覆盖应该都是50%。另外,ROC曲线越陡越好,所以理想值是1,即正方形。所以AUC的值一般是介于0.5和1之间的。AUC评判标准可参考如下
- 0.5-0.7:效果较低。
- 0.7-0.85:效果一般。
- 0.85-0.95:效果很好。
- 0.95-1:效果非常好。