机器学习分类器的评价指标--混淆矩阵,F1-score,ROC曲线,AUC,KS曲线

1. 混淆矩阵---确定截断点后,评价学习器性能

机器学习分类器的评价指标--混淆矩阵,F1-score,ROC曲线,AUC,KS曲线

TP(实际为正预测为正),FP(实际为负但预测为正),FN(实际为正但预测为负),TN(实际为负预测为负)

通过混淆矩阵我们可以给出各指标的值:

查全率(召回率,Recall):样本中的正例有多少被预测准确了,衡量的是查全率,预测对的正例数占真正的正例数的比率:

查全率 = TP / (TP+FN)

查准率(精准率,Precision):针对预测结果而言,预测为正的样本有多少是真正的正样本,衡量的是查准率,预测正确的正例数占预测为正例总量的比率:

查准率 = TP / (TP+FP)

准确率(Accuracy):反映分类器对整个样本的判定能力,能将正的判定为正,负的判定为负的能力,计算公式:

Accuracy=(TP+TN) / (TP+FP+FN+TN)

阴性预测值:可以理解为负样本的查准率,阴性预测值被预测准确的比例,计算公式:

NPV=正确预测到的负例数/实际负例总数=TN / (TN+FN)

如果为多分类,也可以通过混淆矩阵得到上述指标的具体值。

查准率和查全率通常是一对矛盾的度量,通常一个高,另外一个就低。两个指标都很重要,我们应该根据实际情况综合考虑这两个指标。会有一个查准率=查全率的“平衡点”,过了这个点,查全率将增加,查准率将降低。

2. F1-score---查准率和查全率的加权调和平均数

(1)当认为查准率和查全率一样重要时,权重相同时:

机器学习分类器的评价指标--混淆矩阵,F1-score,ROC曲线,AUC,KS曲线

(2)当查准率和查全率的重要性不同时,即权重不同时:

通常,对于不同的问题,查准率和查全率的侧重不同。比如,对于商品推荐系统,为了减少对用户的干扰,查准率更重要;逃犯系统中,查全率更重要。因此,F1-score的一般形式:

机器学习分类器的评价指标--混淆矩阵,F1-score,ROC曲线,AUC,KS曲线

1. β=1,查全率的权重=查准率的权重,就是F1

2. β>1,查全率的权重>查准率的权重

3. β<1,查全率的权重<查准率的权重

除了F1分数之外,F0.5分数和F2分数在统计学中也得到了大量应用。其中,F2分数中,查全率的权重高于查准率,而F0.5分数中,查准率的权重高于查全率。另外,F1分数又分为宏-F1和微-F1。

3. ROC曲线, AUC---评价学习器性能,检验分类器对客户进行正确排序的能力

分类器产生的结果通常是一个概率值不是直接的0/1变量,通常数值越大,代表正例的可能性越大。

根据任务的不同也会采取不同的“截断点”,大于则为正例,小于则为反例。如重视查全率,则阈值可以设置低一些;而重视查准率,阈值可以设置高一些。

如果设定了截断点或明确了任务,那么我们根据混淆矩阵就可以知道分类器的效果好坏(计算出P、R和截断点或阈值进行比较)。

在未设定截断点(任务不明确)情况下,我们如何评价一个分类模型的效果的好坏或者比较不同分类模型效果呢?

我们可以观察这个学习器利用所有可能的截断点(就是所有样本的预测结果)对样本进行分类时的效果,注意要先对所有可能的截断点进行排序,方便对比观察。

ROC曲线描绘的是不同的截断点时,并以FPR和TPR为横纵坐标轴,描述随着截断点的变小,TPR随着FPR的变化。

纵轴:TPR=正例分对的概率 = TP/(TP+FN),其实就是查全率

横轴:FPR=负例分错的概率 = FP/(FP+TN),俗称假警报率

如果是随机分类(比如投掷硬币),没有进行任何学习器,FPR=TPR,即正例分对和负例分错概率相同,预测出来的正例负例和正例负例本身的分布是一致的,所以是一条45°的直线。因此,ROC曲线越向上远离这条45°直线,说明用了这个学习器在很小的代价(负例分错为正例,横轴)下达到了相对较大的查全率(TPR)

比如, 我们采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。理想情况下,TPR应该接近1,FPR应该接近0。随着阈值的增加,TP和FP都减小,TPR和FPR也减小,ROC点向左下移动。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。
如下面这幅图,图中实线为ROC曲线,线上每个点对应一个阈值。

机器学习分类器的评价指标--混淆矩阵,F1-score,ROC曲线,AUC,KS曲线

作图步骤:

1. 根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)----- 这就是截断点(阈值threshold)依次选取的顺序

2. 按顺序选取截断点,并计算TPR和FPR(也可以只选取n个截断点)

3. 连接所有的点(TPR,FPR)即为ROC图

判断标准:

1. 一个ROC曲线完全”包住“另一个ROC曲线--->第一个学习器效果更好

2. 两个ROC曲线相交--->利用ROC曲线下的面积(AUC,area under ROC curve,是一个数值)进行比较

AUC:ROC曲线下的面积,由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC作为数值可以直观的评价分类器的好坏,值越大越好。

AUC表示,随机抽取一个正样本和一个负样本,分类器正确给出正样本的score(预测样本是正例的概率)高于负样本的概率。在所有标注样本中,正样本共T个,负样本共F个,如果随机抽一个正样本和负样本,共有T*F个pair,其中如果有s个pair的正负样本pair满足于正样本的score高于负样本(权重为1),v个pair正负样本score相同(权重为0.5),则auc就等于(s+0.5v)/(T*F)。

既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

4. KS曲线,KS值---学习器将正例和反例分开的能力,确定最好的“截断点”

KS曲线和ROC曲线都用到了TPR,FPR。KS曲线是把TPR和FPR都作为纵坐标,而阈值作为横坐标。

作图步骤:

1. 根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序

2. 按顺序选取截断点,并计算TPR和FPR(也可以只选取n个截断点)

3. 横轴为样本的占比百分比(最大100%),纵轴分别为TPR和FPR,可以得到KS曲线

4. TPR和FPR曲线分隔最开的位置就是最好的”截断点“,最大间隔距离就是KS值,通常>0.2即可认为模型有比较好的预测准确性

机器学习分类器的评价指标--混淆矩阵,F1-score,ROC曲线,AUC,KS曲线

KS曲线的纵轴是表示TPR和FPR的值,就是这两个值分别通过两条曲线来体现,横轴就是阈值(把0-1之间等分N份,等分点为阈值),然后在两条曲线分隔最开的地方,对应的就是最好的阈值,也是该模型最大的KS值。KS值的取值范围是[0,1] ,KS值越大,表示模型能够将正、负客户区分开的程度越大。

参考:https://blog.csdn.net/shy19890510/article/details/79501582

https://blog.csdn.net/yaoqsm/article/details/78334920

http://alexkong.net/2013/06/introduction-to-auc-and-roc/