kaggle员工离职预测案例(3)

传送门🚪

案例背景及数据分析处理过程请看《kaggle员工离职预测案例(1)
建模处理过程请看《kaggle员工离职预测案例(2)

背景

一切的一切,因为这篇文章《机器学习模型评估教程!
在第二篇文章中,我们罗列了在原始数据、降采数据、过采数据下的逻辑回归分类模型、决策树分类模型、随机森林分类模型,这样一共得到九个结果。我们在不同模型中挑选出了其中表现最好的几个(标准参考了 召回率和准确率),如下:

逻辑回归模型 备注
召回率80%,精准率80% 降采数据
召回率84%,精准率79%👍 过采数据
决策树模型 备注
召回率94%,精准率73% 降采数据,默认参数
召回率82%,精准率78.9% 降采数据,调参后
随机森林模型 备注
召回率84%,精准率83% 👍 降采数据,默认参数
召回率91%,精准率83%👍👍 降采数据,GridSearchCV调参
召回率92.85%,精准率84.35% 👍👍👍 降采数据,RandomizedSearchCV调参

原始数据下的模型因为类别不平衡的篇问题,不在我们讨论的范围内。篇2大费周章的在原始数据下建模的目的在于练习、对比 。😉

精明的机器学习者知道其中的窍门。两个类别的规模远不相等。在这种情况下,准确度的衡量标准是没有太大意义的。即使这些数字可能在 "论文"上看起来很好。

这一篇章中我们将引入ROC-AUC评估标准来进一步的对我们的模型进行评估。


何为ROC-AUC?

大约10年前在machine learning文献中一统天下的标准:分类精度;在信息检索(IR)领域中常用的recall和precision,等等。其实,度量反应了人们对”好”的分类结果的追求,同一时期的不同的度量反映了人们对什么是”好”这个最根本问题的不同认识,而不同时期流行的度量则反映了人们认识事物的深度的变化。

近年来,随着machine learning的相关技术从实验室走向实际应用,一些实际的问题对度量标准提出了新的需求。特别的,现实中样本在不同类别上的不均衡分布(class distribution imbalance problem)。使得accuracy这样的传统的度量标准不能恰当的反应分类器的performance。举个例子:测试样本中有A类样本90个,B 类样本10个。分类器C1把所有的测试样本都分成了A类,分类器C2把A类的90个样本分对了70个,B类的10个样本分对了5个。则C1的分类精度为 90%,C2的分类精度为75%。但是,显然C2更有用些。另外,在一些分类问题中犯不同的错误代价是不同的(cost sensitive learning)。这样,默认0.5为分类阈值的传统做法也显得不恰当了。

近年来,随着machine learning的相关技术从实验室走向实际应用,一些实际的问题对度量标准提出了新的需求。特别的,现实中样本在不同类别上的不均衡分布(class distribution imbalance problem)。使得accuracy这样的传统的度量标准不能恰当的反应分类器的performance。举个例子:测试样本中有A类样本90个,B 类样本10个。分类器C1把所有的测试样本都分成了A类,分类器C2把A类的90个样本分对了70个,B类的10个样本分对了5个。则C1的分类精度为 90%,C2的分类精度为75%。但是,显然C2更有用些。另外,在一些分类问题中犯不同的错误代价是不同的(cost sensitive learning)。这样,默认0.5为分类阈值的传统做法也显得不恰当了。

为了解决上述问题,人们从医疗分析领域引入了一种新的分类模型performance评判方法——ROC分析。ROC分析本身就是一个很丰富的内容,有兴趣的读者可以自行Google,这里只做些简单的概念性的介绍。

ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一个画在二维平面上的曲线——ROC curve。平面的横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)。对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就可以映射成ROC平面上的一个点。调整这个分类器分类时候使用的阈值,我们就可以得到一个经过(0, 0),(1, 1)的曲线,这就是此分类器的ROC曲线。

一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。因为(0, 0)和(1, 1)连线形成的ROC曲线实际上代表的是一个随机分类器。如果很不幸,你得到一个位于此直线下方的分类器的话,一个直观的补救办法就是把所有的预测结果反向,即:分类器输出结果为正类,则最终分类的结果为负类,反之,则为正类。虽然,用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。于是Area Under roc Curve(AUC)就出现了。AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准。AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance

更多内容可参考文章《ROC曲线与AUC值》《机器学习基础(1)- ROC曲线理解

举个栗子🌰:

在这里插入图片描述
上图是一个以FPR为横轴,TPR为纵轴的ROC图例

  1. 左上角的点Pefect Classification(TPR=1,FPR=0),为完美分类,也就是这个模型100%正确,预测全对。此时FP = 0, FN = 0。用人话说就是没有原本离职的员工被预测成不离职,也没有不离职的员工被预测成离职。

  2. 点A(TPR>FPR)模型A的判断大体是正确的。TPR≈0.62,FPR≈0.3 ,我们由TPR和FPR的公式可以推导出TP/FN ≈3/2, FP/TN≈3/7。如果用二分类矩阵表示为:
    在这里插入图片描述
    👽用人话说就是15个员工,成功预测离职了3个,成功预测不离职的7个,一共对了10个。但是有3个原本不会离职的人被预测成了离职(误杀),还有两个原本会离职的人被预测成不离职(漏杀)。对于这一结果我们表示满意。

  3. 中线上的点B(TPR=FPR),也就是模型B全都是蒙的,蒙对一半,蒙错一半;

  4. 上半平面的点C1(TPR>FPR)。TPR≈0

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值