机器学习 模型评估方法(分类问题)

1、错误率和精度

错误率:

机器学习 模型评估方法(分类问题)

精度:

机器学习 模型评估方法(分类问题)

2、查准率、查全率

例如在信息检索任务中:

(1)检索出的信息中有多少比例是用户感兴趣的   ==> 查准率 precision

(2)用户感兴趣的信息中有多少被检索出来          ==> 查全率 recall

按真实类别与预测类别分为:

真正例(True Precision)TP

假正例(False Precision)FP

真反例(True Negative)TN

假反例(False Negative)FN

真实情况 预测情况
正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

查准率:预测为正中完成正确的/预测为正的

机器学习 模型评估方法(分类问题)

查全率:预测为正中完全正确的/样本中所有为正的

机器学习 模型评估方法(分类问题)

一般来说,查准率高时,查全率往往偏低;查全率高时,查准率偏低。

3、P-R曲线

R值为横坐标,P值为纵坐标作图

机器学习 模型评估方法(分类问题)

根据逐个样本作为阈值划分点的方法,可以推敲出,recall值是递增的(但并非严格递增),随着划分点左移,正例被判别为正例的越来越多,不会减少。而精确率precision并非递减,二是有可能振荡的,虽然正例被判为正例的变多,但负例被判为正例的也变多了,因此precision会振荡,但整体趋势是下降。

若一个学习器的P-R曲线被另一个学习器的曲线完全包住,则说明后者性能更好。

平衡点(Break-Event Point, BEP):P=R

4、F1与机器学习 模型评估方法(分类问题)

F1:查准率与查全率的调和平均。

机器学习 模型评估方法(分类问题)

机器学习 模型评估方法(分类问题)β度量查全率和查准率的相对重要性。β>1,查全率有更大影响;β<1,查准率有更大影响。

机器学习 模型评估方法(分类问题)

5、ROC曲线与AUC值

5.1 ROC曲线

接收者操作特征(Receiver Operating Characteristic),ROC曲线上每一个点反应着对同一信号刺激的感受性。

横轴:负正类率(false positive rate, FPR)特异度,划分实例中负例占所有负例的比例;1-Specificity.

纵轴:真正类率(true positive rate,TPR)灵敏度,Sensitivity(正类覆盖率)

针对二分类问题,将实例分成正类(positive)或者负类(negative)。但是在实际分类时,会出现四种情况:

真实情况 预测情况  
正例 反例 合计
正例 TP(真正例) FN(假反例) Actual Positive (TP+FN)
反例 FP(假正例) TN(真反例) Actual Negative (FP+TN)
合计 Predicted Positive (TP+FP) Predicted Negative (FN+TN) TP+FN+FP+TN

 

TP:正确的肯定数据

FN:漏报,没有找到正确匹配的数据

FP:误报,没有的匹配不正确

TN:正确拒绝的非匹配数目

(1) 真正类率(True Positive Rate)TPR: TP/(TP+FN),代表分类器预测的正类的中实际正实例占所有正实例的比例。Sensitivity

(2)负正类率(False Posiive Rate)FPR:FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。1-Specificity

(3)真负类率(True Negative Rate)TNR:TN/(FP+TN),代表分类器预测的负类中实际负实例占所有负实例的比例,TNR=1-FPR。Specificity

假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于0.6的为正类,小于0.6的为负类。对应的可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1).

如下面这幅图,(a)图中实线为ROC曲线,线上的每个点对应一个阈值。

机器学习 模型评估方法(分类问题)

横轴FPR:1-TNR,1-Specificity,FPR越大,预测正类中实际负类越多。

纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。

理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。

如何画ROC曲线?

假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图*有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。

机器学习 模型评估方法(分类问题)

接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:

机器学习 模型评估方法(分类问题)

AUC(Area under Curve):Roc曲线下的面积,介于0.1和1之间。Auc作为数值可以直观的评价分类器的好坏,值越大越好。

首先AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。

为什么使用ROC和AUC评价分类器?

既然已经这么多标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。下图是ROC曲线和Presision-Recall曲线的对比:

机器学习 模型评估方法(分类问题)

在上图中,(a)和(c)为Roc曲线,(b)和(d)为Precision-Recall曲线。

(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果,可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线变化较大。

6、KS曲线与KS值

KS与AUC值的关系(都是选取不同的阈值来计算样本的TPR和FPR,然后进行不同的后续操作)

要弄明白ks值与auc值的关系首先要弄懂roc曲线和ks曲线是怎么画出来的。其实从某种角度来讲ROC曲线和KS曲线是一回事,只是横纵坐标的取法不同。拿逻辑回归举例,模型训练完成后每个样本都会得到一个类概率值(注意是类似的类),把样本按这个类概率值排序后分成10等份,每一份单独计算它的真正率和假正率,然后计算累计概率值,用真正率和假正率的累计作为坐标画出来的就是ROC曲线,用10等分作为横坐标,用真正率和假正率的累计值分别作为纵坐标得到两个曲线,这就是KS曲线。AUC值就是ROC曲线下放的面积值,而ks值就是KS曲线中两条直线之间的最大间隔距离。由于ks值能找出模型中差异最大的一个分段,因此适合用于cut_off,像评分卡这种就很适合用ks值来评估。但是ks值只能反映出那个分段是区分最大的,而不能反映出所有分段的效果,因此AUC更能胜任。

ROC值一般在0.5-1.0之间。值越大表示模型判断准确性越高,即越接近1越好。ROC=0.5表示模型的预测能力与随机结果没有差别。
KS值表示了模型将+和-区分开来的能力。值越大,模型的预测准确性越好。一般,KS>0.2即可认为模型有比较好的预测准确性。

KS曲线是将概率从小到大进行排序,取10%的值为阈值,同理将10%*k(k=1,......9)处值作为阈值,计算不同的FPR和TPR,以10%*k(k=1,......9)为横坐标,同时分别以TPR和FPR为纵坐标画出两条曲线就是KS曲线。而KS值=|max(TPR-FPR)|

另外,还有另一种计算KS值的方法:

将所有的样本根据分数值从低到高排序均分成20组,分别计算20组的实际好样本数、实际坏样本数、累积好样本数、累积坏样本数、累积好样本数占比、累积坏样本数占比、差值。其中,实际好坏样本数分别为该组内的好坏样本数;累积好坏样本数为该组累积好坏样本数;累积好坏样本数占比为累积好坏样本数占总好坏样本数的比值;差值为累积坏样本数占比 - 累积好样本数占比。KS值为差值绝对值的最大值,具体的可以从下方的表看:

机器学习 模型评估方法(分类问题)

参考:

https://www.cnblogs.com/dlml/p/4403482.html

https://blog.****.net/u010159842/article/details/79412868

https://ask.hellobi.com/blog/hanbingbing/15586