首页 > 编程语言 >数据分享|python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGBM交叉验证可视化

数据分享|python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGBM交叉验证可视化

时间:2024-05-30 22:25:25浏览次数:27  
标签:python 梯度 模型 random XGB CatBoost state 随机

全文链接:https://tecdat.cn/?p=34434

原文出处:拓端数据部落公众号

分析师:Shilin Chen

离职率是企业保留人才能力的体现。分析预测职员是否有离职趋向有利于企业的人才管理,提升组织职员的心理健康,从而更有利于企业未来的发展。

解决方案

任务/目标

采用分类这一方法构建6种模型对职员离职预测,分别是逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGBM。确定某一职员属于是或否离职的目标类,并以此来探究职员大量离职的潜在因素。

数据源准备

员工离职数据,属性包括职员的年龄,出差频率、部门、受教育水平、工作参与度和工作等级等等。

特征转换

是否离职、性别等字符串型数据分别用0或1代替,出差频率等按等级用0-2的数字代替。

构造

以上说明了如何抽取相关特征,我们大致有如下训练样本(只列举部分特征)。

image.png

了解数据集的分布

划分训练集和测试集

以样本中测试集占比百分之二十的比例训练模型

image.png

   
summary(dftrain)

image.png

__results___22_0.png

image.png

建模

使用Stratified K-Fold交叉验证来进行模型评估

   
def cross_valtion(model, X, y):
    skf = StratiFold(n_splits = 10, random_state = 42, shuffle = True)
    scores = []
    predictions = np.ros(len(X))
    
    for fold, (train_index, test_index) in enum

这是一个逻辑回归分类器的实例化,其中random_state参数用于指定随机的种子数,以便结果的可重复性。逻辑回归是一种线性模型,用于解决二元分类问题。

   
LogisticRegression(random_state = 42))

梯度提升分类器的实例化,其中random_state参数同样用于指定随机种子数。梯度提升是一种集成学习算法,它将多个弱学习器结合成一个强学习器。

   
GradientBoostingClassifier(random_st

随机森林分类器的实例化,其中random_state参数用于指定随机种子数。随机森林是一种基于决策树的集成学习算法。

   
RandomForestClassifier(random_state =

使用XGBoost库的分类器的实例化,其中random_state参数用于指定随机种子数。XGBoost是一个高效的梯度提升库。

   
XGBClassifier(random_stat

CatBoost分类器的实例化,其中random_state参数用于指定随机种子数。CatBoost是一个使用梯度提升的库,可以处理分类和回归问题。

   
CatBoostClassifier(random_

使用LightGBM库的分类器的实例化,其中random_state参数用于指定随机种子数。LightGBM是另一个梯度提升库,通常被认为在大型数据集上具有较高的性能。

   
LGBMClassifier(random_sta

比较结果

逻辑回归

image.png

梯度提升分类器

image.png

随机森林

image.png

XGBClassifier

image.png

CatBoostClassifier

image.png

LGBMClassifier

image.png

在此案例中,CatBoost模型的分类预测能力是最理想的,能够很大程度找准真正离职的职员。

预测

   
model.pre_proba(tempdrop(columns = ['id']))[:, 1]

frame = dftest[['id']].copy()

总结

对职员离职预测进行了深入的研究,采用了多种机器学习算法进行分类预测,包括逻辑回归、梯度提升、随机森林、XGBoost、CatBoost和LightGBM,并进行了交叉验证和可视化。

通过数据预处理和特征工程,该论文构建了多个预测模型,包括逻辑回归、梯度提升、随机森林、XGBoost、CatBoost和LightGBM。这些模型在数据集上进行了训练和评估,并采用了交叉验证技术来评估模型的性能和稳定性。

其中,逻辑回归模型采用了L2正则化来防止过拟合,并使用了网格搜索技术来优化超参数。梯度提升模型采用了决策树作为基本单元,并使用了自适应权重的策略来优化提升过程。随机森林模型采用了多个决策树的集成方法,并使用了特征重要性来评估特征的重要性。XGBoost模型采用了梯度提升算法,并使用了正则化项来优化模型的复杂度。CatBoost模型采用了梯度提升算法,并使用了类别特征的独热编码来处理分类特征。LightGBM模型采用了决策树算法,并使用了高效的数据结构和算法来优化训练过程。

最终,得出了结论:在预测职员离职的分类问题上,不同的机器学习算法具有不同的性能表现和优劣。通过交叉验证和可视化技术,我们可以评估模型的性能和稳定性,并为实际应用提供可靠的预测结果。

关于分析师

image.png

在此对Shilin Chen对本文所作的贡献表示诚挚感谢,她专注可视化分析、统计分析领域。擅长Python、SQL。

hero-math-of-acos-1136585848.jpg

标签:python,梯度,模型,random,XGB,CatBoost,state,随机
From: https://www.cnblogs.com/tecdat/p/18223350

相关文章

  • Python实训的心路历程——第4天
    时间过得好快,转眼就第四天了,今天还是接着做界面,并往里面添加内容。========================================一天又过去了,但是每天都感觉自己成长了好多呢,哈哈来汇总一下今天的工作和收获今天把界面和一些基础的功能写完了,程序能正常跑了,可以处理实时摄像头、视频、图片三种......
  • Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金
    原文链接:http://tecdat.cn/?p=26184 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于信贷风控模型的研究报告,包括一些图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何......
  • Python selenium webdriver
    元素定位第一步,导入selenium模块的webdrivier包importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy窗口最大化driver=maximize_window()第二步,调用webdriver包的Chrome类,返回chrome浏览器对象driver=webdriver.Chrome()第三步,如使用......
  • python连接数据库
    一#删除数据库importpymysqlmydb=pymysql.connect(host="localhost",user="root",password="000000",database="my_db")mycursor=mydb.cursor()sql="DROPDATABASEIFEXISTSmy_db"mycursor.execute(sql)m......
  • 「Python魔法药剂:列表推导式的秘密配方大公开!」(一)
    嗨,我是阿佑,最近给大家打开了python操作数据库的大门,今天阿佑将为你揭开列表推导式这个秘密配方的神秘面纱。通过一系列生动有趣的案例和深入浅出的解释,阿佑将带你领略列表推导式的无穷魅力。准备好了吗?让我们一起调配出最强大的编程药剂,让你的代码魔法无人能敌!文章目录......
  • 「Python魔法药剂:列表推导式的秘密配方大公开!」(二)
    嗨,我是阿佑,上一篇给大家讲了《Python魔法药剂——列表推导式(一)》,今天给大家解锁剩下的全部内容!在Python编程的世界中,列表推导式就是那个能让你脱颖而出的秘籍。但如何掌握它,如何运用它解决实际问题?今天阿佑将为你揭晓答案。阿佑将带你一步步深入了解列表推导式的高级......
  • 「异步魔法:Python数据库交互的革命」(二)
    哈喽,我是阿佑,上篇文章带领了大家跨入的异步魔法的大门——Python数据库交互,一场魔法与技术的奇幻之旅!从基础概念到DB-API,再到ORM的高级魔法,我们一步步揭开了数据库操作的神秘面纱。SQLAlchemy和DjangoORM让我们的数据库操作变得强大而灵活。现在,让我们迈向异步编程的新世......
  • 「异步魔法:Python数据库交互的革命」(一)
    Hi,我是阿佑,今天将和大家一块打开异步魔法的大门,进入Python异步编程的神秘领域,学习如何同时施展多个咒语而不需等待。了解asyncio的魔力,掌握AsyncSQLAlchemy和Tortoise-ORM的秘密,让你的数据库操作快如闪电!文章目录Python进阶之数据库交互详解1.引言数据库在现代应用......
  • Python3 笔记:三种取整方式
    取整方式包括向下取整、四舍五入取整、向上取整等。1、向下取整:向下取整很简单,就是去掉小数部分,直接使用int()函数即可。print(int(1.9))#运行结果:1print(int(1.1)) #运行结果:1print(int(1.5)) #运行结果:12、四舍五入取整:四舍五入取整用到的是round()函数。格式:rou......
  • Python使用Matplotlib和Seaborn绘制箱线图
    目录一、箱线图定义二、Matplotlib与Seaborn简介三、绘制箱线图的样例数据四、Python绘制箱线图4.1Matplotlib绘制箱线图4.2Seaborn绘制箱线图五、参考文献一、箱线图定义  箱形图(Boxplot),又称盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分布情况的......