公众号后台回复“图书“,了解更多号主新书内容
作者:livan
来源:数据python与算法
评估模型介绍


经过千辛万苦,终于完成了特征工程、模型构建和模型训练部分,那么,模型效果如何呢?
我们需要有一些能够评价模型效果的指标,来确定模型训练的效果,工作中我们常见的指标主要有混淆矩阵、精确率、召回率、F1-score、ROC和AUC等,这些指标在计算过程中是一脉相承的,即计算某一指标时,往往会用到其他指标,因此,本文系统的了解一下这些指标:
混淆矩阵


混淆矩阵主要是应用在分类模型中的,属于最为直观的评判标准,其原理很容易理解,我们看一下图表:

对应的解释为:
TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正;
FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正;
FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负;
TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负。
此图一出,基本上模型的效果就可以判断个大概了,有意思的是,很少有人直接使用这个表格,多是用这个表格计算下文中的值。
准确率


准确率是指分类正确的样本数占样本总数的比例。
用混淆矩阵的方式进行计算为:
![]()
准确率在应用的时候只能作为一次初步的计算,如果遇到样本不均衡的情况,对应的准确率计算就会变得非常不准确。例如:标签为1的正样本数据不足10%的情况下,如果分类器将所有样本判别为负样本,那么仍然可以达到90%以上的分类准确率,但这个分类器的性能显然是非常差的。
精确率和召回率


为了解决样本不均衡的问题,我们引入了精确率和召回率。
精确率:预测为正样本的样本中,预测正确的概率;
公式为:
![]()
召回率:原始样本中正样本被正确预测的概率;
公式为:
![]()
精确率和召回率是一组相互矛盾的指标,在组合使用的时候往往会出现一个高了,另一个却低了,虽然解决了样本平衡问题,但是两个指标之间的调优却成了麻烦。
F1-score


大佬的力量总是无限的,鉴于以上的问题,有大佬将两个指标做了整合,提出了F1-score值:

这一指标综合了上面的两个指标,这个指标有很多经验变种,有兴趣的小伙伴可以百度一下。
ROC与AUC


上面的指标都是需要设定阈值的,这一设定实际上是通过个人的经验获得的,因此,不同的人会有不同的阈值标准,得到的结果也就参差不齐,那么有没有不需要考虑阈值的评估模型?
有!!
ROC和AUC就解决了这个问题。
我们将FPR(假阳率)和TPR(真阳率)分别作为横轴和纵轴得出一个如下图的图形:

注:
1)假阳率(FPR)定义为X轴,真阳率(TPR)定义为Y轴。
2)对应的公式为:
![]()
![]()
ROC曲线的构建步骤为:
1) 根据模型计算出样本的y值,形成score表,从大到小排序,上图左图中使用20个样本,得到20个score;
2) 遍历各个阈值(0,1),根据不同的阈值计算(FPR, TPR),并将其添加到坐标图中,阈值遍历的粒度可以根据样本量的大小进行设定,最细粒度可以设为1/n。
由此,ROC曲线就构建完成了。
构建起的图形中,曲线右下方的面积即为AUC值,AUC值越大说明模型的效果越好,如图:

AUC量化了ROC曲线的表达能力。这一能力与概率值、阈值紧密相关,AUC越大,表示分类结果越合理,因此,AUC直观的反映了CTR的准确率。
◆ ◆ ◆ ◆ ◆
麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-50活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
点击下方小程序即可进入购买页面:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗点击阅读原文,即可参与京东100-50购书活动

1556

被折叠的 条评论
为什么被折叠?



