分类模型评估

摘要:
我对各种分类器的评估指标有点困惑。今天,我决定好好想想,把它们写下来,以备将来回忆。C1的分类准确率为90%,C2的分类准确度为75%。如何绘制ROC?例如,在二进制模型中,对于预测的概率结果,假设已经确定了阈值,例如0.6。大于此值的实例被分类为正值,小于此值的则被分类为负值。通常,AUC值范围为0.5至1.0,较大的AUC代表更好的模型性能。显然,升力越大,模型的运行效果越好。

一直对于各种分类器评估的指标有点晕,今天决定琢磨下,并且写下来,方便以后回忆。

一、混淆矩阵

分类模型评估第1张

来源于信息论,根据上面的混淆矩阵,有3个指标需要搞清楚,我觉得记公式真的很容易搞混,建议大家都直接记文字加上自己理解就好了。

准确率=正确预测正负的个数/总个数(这个指标在python中的交叉验证时可以求准确率)

分类模型评估第2张

覆盖率(也叫作召回率)=正确预测正的个数/实际正的个数 (当然也可以是负覆盖率)

命中率=正确预测正的个数/预测正的个数

以上指标,在Python中提供混淆矩阵的报告

分类模型评估第3张

二、ROC

之所以又有ROC曲线,是因为,前面的准确率和召回率存在缺陷。从准确率来说,如果我们关心的是y=1,而恰好y=1的样本个数又很少,此时用准确率的指标就可能不靠谱了,有个比较好的例子如下:测试样本中有A类样本90个,B 类样本10个。分类器C1把所有的测试样本都分成了A类,分类器C2把A类的90个样本分对了70个,B类的10个样本分对了5个。则C1的分类精度为 90%,C2的分类精度为75%。但是,显然C2更有用些,因为它分对了我们更关心的B类。

召回率TPR(True Positive Rate) =TP/(TP+FN) = a / (a+b)

取伪率FPR(False Positive Rate) = FP/(FP+TN) = c / (c+d)

ROC空间将取伪率(FPR)定义为 X 轴,召回率(TPR)定义为 Y 轴。

召回率和取伪率是会同时提高和降低的,也就是召回率越高,取伪率肯定也就越高了,比如极端的情况下,我们把左右的样本都认为y=1那召回率肯定是等于1,而取伪率肯定也会变成1了。

ROC是怎么画出来的呢,例如在一个二分类模型中,对于所预测得到概率结果,假设已确定一个阈值,比如说 0.6,大于这个值的实例划归为正类,小于这个值则划到负类中。如果减小阈值,减到0.5,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比例,即TPR,但同时也将更多的负实例当作了正实例,即提高了FPR。为了形象化这一变化,在此引入ROC。

分类模型评估第4张

虽然,用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是AUC就出现了,其值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的模型表现。

分类模型评估第5张

三、提升度

  • 正例的比例Pi1 = (a+b) / (a+b+c+d) ;
  • 预测成正例的比例 Depth =  (a+c) / (a+b+c+d) ;
  • 正确预测到的正例数占预测正例总数的比例 PV_plus = a / (a+c) ;
  • 提升值 Lift = (a / (a+c) ) / ((a+b) / (a+b+c+d)) = PV_plus / Pi1

Lift衡量的是,与不利用模型相比,模型的预测能力“变好”了多少。不利用模型,我们只能利用“正例的比例是 (a+b) / (a+b+c+d) ”这个样本信息来估计正例的比例(baseline model),而利用模型之后,我们不需要从整个样本中来挑选正例,只需要从我们预测为正例的那个样本的子集(a+c)中挑选正例,这时预测的准确率为a / (a+c)。

显然,lift(提升指数)越大,模型的运行效果越好。如果a / (a+c)就等于(a+b) / (a+b+c+d)(lift等于1),这个模型就没有任何“提升”了(套一句金融市场的话,它的业绩没有跑过市场)。

免责声明:文章转载自《分类模型评估》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python写http post请求的四种请求体C#上传视频等大文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长

原文链接:http://tecdat.cn/?p=12292  预测GDP增长 我们复制了Ghysels(2013)中提供的示例。我们进行了MIDAS回归分析,以预测季度GDP增长以及每月非农就业人数的增长。预测公式如下 ​ 其中yt是按季度季节性调整后的实际美国GDP的对数增长,x3t是月度总就业非农业工资的对数增长。 首先,我们加载数据并执行必要的转...

机器学习实战之树回归

一,引言   尽管线性回归包含了一些强大的方法,但这些方法创建的模型需要拟合所有的样本数据。当数据拥有众多特征并且特征之间的关系比较复杂时,构建全局线性模型就会非常困难。并且,在实际生活中很多问题都是非线性的,很难通过全局线性模型来拟合所有数据。   解决上述非线性数据的拟合问题的一个可行的方法是,将数据集切分成很多份容易建模的数据,然后再利用线性回归方法...

Zero-shot learning(零样本学习)

一、介绍 在传统的分类模型中,为了解决多分类问题(例如三个类别:猫、狗和猪),就需要提供大量的猫、狗和猪的图片用以模型训练,然后给定一张新的图片,就能判定属于猫、狗或猪的其中哪一类。但是对于之前训练图片未出现的类别(例如牛),这个模型便无法将牛识别出来,而ZSL就是为了解决这种问题。在ZSL中,某一类别在训练样本中未出现,但是我们知道这个类别的特征,然后通...

机器学习基础:(Python)训练集测试集分割与交叉验证

在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章。在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具。我会解释当使用统计模型时,通常将模型拟合在训练集上,以便对未被训练的数据进行预测。 在统计学和机器学习领域中,我们通常把数据分成两个子集:训练数据和测试数据,并且把模型拟合到训练数据上,以...

SPSS超详细操作:分层回归(hierarchical multiple regression)

SPSS超详细操作:分层回归(hierarchical multiple regression) 1、问题与数据 最大携氧能力(maximal aerobic capacity, VO2max)是评价人体健康的关键指标,但因测量方法复杂,不易实现。某研究者拟通过一些方便、易得的指标建立受试者最大携氧能力的预测模型。 目前,该研究者已知受试者的年龄和性别与...

5 分钟入门 Google 最强NLP模型:BERT

BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 提...