分类模型评估指标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分类模型评估指标相关的知识,希望对你有一定的参考价值。
参考技术A本篇先考虑二分类问题,记录常用到的评估指标。
假设在训练之前和预测之后,一个样本的标记是确定的两个类别,一个是真实的1/0,一个是预测的1/0,其中1表示正例、0表示负例。
其中:TP(实际为正预测也为正)、FP(实际为负但预测为正)、TN(实际为负预测也为负)、FN(实际为正但预测为负)
通过混淆矩阵,可以给出以下各指标的值:
查准率和查全率是一对矛盾的度量,一般来说,一个高的时候,另一个就低。
F1值 --- 查准率与查全率的加权调和平均数
(1)当认为查准率与查全率一样重要时,即权重相同时:
(2)当查准率和查全率的重要性不一样时,即权重不同时:
一般对于不同的问题,查准率与查全率的侧重不同。因此,F1值的一般形式为:
其中β表示查全率与查准率的权重。下面对该这个一般形式的公式进行推导:
两个指标的设置及其关系如下,因为只考虑这两个指标,故二者权重之和为1,即:
由上式可得到
因此,可得带权重的调和平均数公式可变为
进一步推导,可得
总结
在介绍ROC曲线前,先明确以下几个概念,在混淆矩阵中
真阳性率 (True Positive Rate, TPR ),灵敏度( Sensitivity ),召回率( Recall ):
Sensitivity=Recall=TPR= TP/(TP+FN)
真阴性率 (True Negative Rate, TNR ),特异度( Specificity ):
Specificity=TNR=TN/(FP+TN)
假阴性率 (False Negative Rate, FNR ),漏诊率(=1-灵敏度):
FNR=FN/(TP+FN)
假阳性率 (False Positive Rate, FPR ),误诊率(=1-特异度):
FPR=FP/(FP+TN)
ROC曲线 :接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,ROC曲线上每个点反映着对同一信号刺激的感受性。
下图是一个ROC曲线示例:
在一个二分类模型中,例如逻辑回归学习器,针对其输出的每个样本为正例的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类,对应的就可以算出一个组(FPR,TPR),在平面中就得到对应的坐标点。随着阈值的逐渐减小,越来越多的样本被归为正类,但是这些正类中也会夹杂着真正的负例,即TPR和FPR会同时增大。阈值最大时为,对应的坐标为(0,0),阈值最小时,对应的坐标为(1,1)。
理想目标 :TPR=1,FPR=0,即图中的(0,1)点,所以ROC曲线越靠拢(0,1)点,即越偏离45度的直线越好。
AUC值
AUC(Area Under Curve)被定义为ROC曲线下的面积。使用AUC值作为衡量模型准确性的评价标准是因为ROC曲线很多时候不能清晰的说明哪个分类模型的效果更好,而作为一个数值,对应AUC更大的模型效果更好,AUC值越接近1模型的效果越好。
从AUC值判断模型的好坏:
在评价模型时还会用到KS(Kolmogorov-Smirnov)值,KS=max(TPR-FPR),即为TPR与FPR的差的最大值,KS值可以反映出模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。一般KS>0.2认为模型有比较好的预测准确性。
KS曲线的最高点(最大值)为KS值,KS值越大,模型的区分度越好,KS值为0代表是没有区分度的随机模型。准确的来说,KS是用来度量正样本与负样本区分程度的。但是KS值所代表的仅仅是模型的区分能力,并不代表区分的样本是准确的。如果正负样本完全分错,但KS值可以依旧很高。
Lift提升图是不同阈值下Lift和Depth的轨迹。
Lift指标衡量的是,与不利用模型相比,模型的预测能力“变好”了多少。不利用模型,我们只能利用“正例的比例是(TP+FN)/(TP+FP+FN+TN)”这个样本信息来估计正例的比例(baseline model),而利用模型之后,我们不需要从整个样本中来挑选正例,只需要从我们预测为正例的样本子集TP+FP中挑选正例,这时预测的准确率为TP/(TP+FP)。
显然,lift(提升指数)越大,模型的运行效果越好。如果这个模型的预测能力和baseline model一样,那么TP/(TP+FP)就等于(TP+FN)/(TP+FP+FN+TN),这个模型的效果就没有任何“提升”了。
作图步骤:
上图的纵坐标是lift值,横坐标是预测成正例的比例,随着阈值的减小,更多的观测值会被归为正例,也就是depth(预测成正例的比例)变大。当阈值设的够大,只有一部分观测值会被归为正例,但这一小部分一定是最具有正例特征的观测值集合,此时这个depth对应的lift值最大。同样地,当阈值设定的足够小的,那么几乎所有的观测值都会被归为正例(占比几乎为100%),这时分类的效果就和baseline model差不多了,相对应的lift值就接近于1。
一个好的分类模型,就是要偏离baseline model足够远。在Lift图中,表现就是,在depth为1之前,lift值一直保持较高的(大于1的)数值,也即曲线足够的陡峭。
ROC曲线和Lift曲线都能评价逻辑回归模型的效果:
Gains(增益)与Lift(提升)类似:Lift图是不同阈值下Lift和Depth的轨迹,Gains图是不同阈值下Precision和Depth的轨迹,而Precision=TP/TP+FP,显而易见地,它们的区别就是纵坐标不一样。
Gain增益图是描述整体精准率的指标。按照模型预测出的概率从高到低排序,将每一个百分位数内的精准率指标标注在图形区域内,就形成了非累积的增益图。如果对每一个百分位及其之前的精准率求和并标注在图形区域内,则形成累积的增益图。累积图通常可以更好的表现模型性能,而非累计图则更有利于指出模型中可能存在问题的地方。
https://www.deeplearn.me/1522.html
https://cosx.org/2009/02/measure-classification-model-performance-lift-gain/
R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)
R语言编写自定义函数计算分类模型评估指标:准确度、特异度、敏感度、PPV、NPV、数据数据为模型预测后的混淆矩阵、比较多个分类模型分类性能(逻辑回归、决策树、随机森林、支持向量机)
目录
以上是关于分类模型评估指标的主要内容,如果未能解决你的问题,请参考以下文章
R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化基于数据阳性样本比例选择合适的分类评估指标