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

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

时间:2024-05-11 22:53:16浏览次数:28  
标签: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/18187311

相关文章

  • 使用Python根据网页生成RSS
    pipinstallrequestsbeautifulsoup4lxmlimportrequestsfrombs4importBeautifulSoupimportxml.etree.ElementTreeasETdeffetch_news_from_url(url):#1.网页抓取response=requests.get(url)response.raise_for_status()......
  • python 换源命令
    #换阿里云的源$pipconfigsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple$pipconfigsetinstall.trusted-hostmirrors.aliyun.com#换清华大学的源$pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple$pipconfigsetinstall......
  • 牛客小白月赛93(python)
    A生不逢71defcheck(num):2return'7'instr(num)ornum%7==034defsolve():5n,a,k=LII()6d=a+17foriinrange(k):8ifcheck(d):9print('p',end='')10els......
  • Python环境变量设置与读取
    ★环境变量基本概念环境变量定义 环境变量是操作系统中存储有关操作系统配置信息和应用程序运行环境的动态值的一种机制。环境变量的主要作用是为正在运行的进程提供配置信息,帮助程序找到所需的资源或者确定程序运行的方式。 在操作系统中,每个进程都有自己的环境变量集合。......
  • python教程11-面向对象
    python的面向对象和java有一些不一样:(java中,只有在类中定义的变量实例才能用,但是python更加灵活)类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实......
  • python利用魔塔大模型生成视频
    安装依赖参考上篇文章https://www.cnblogs.com/qcy-blog/p/18186353新建main.pyfrommodelscope.pipelinesimportpipelinefrommodelscope.outputsimportOutputKeysp=pipeline('text-to-video-synthesis','damo/text-to-video-synthesis')test_text={......
  • python用魔塔大模型生成国画
    模型地址https://www.modelscope.cn/models/langboat/Guohua-Diffusion/summary新建一个main.pyfrommodelscope.utils.constantimportTasksfrommodelscope.pipelinesimportpipelineimportcv2pipe=pipeline(task=Tasks.text_to_image_synthesis,......
  • PikaScript - 面向嵌入式的超轻量级python引擎+Ring-Buffer - 仅80行代码的超简洁环形
    1、PikaScript-面向嵌入式的超轻量级python引擎PikaScript(前称mimiscript)是一个完全重写的超轻量级python引擎,零依赖,零配置,可以在少于4KB的RAM下运行(如stm32g030c8和stm32f103c8),极易部署和扩展。项目地址:https://github.com/pikasTech/pikascriptPikaScript是使用c语言写......
  • Python-PostgreSQL主键自动填充报错:SAWarning: Column x is marked as a member of th
    importdatetimefromsqlalchemyimportColumn,String,inspect,Integerfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerfromsqlalchemyimportcreate_engineengine=create_engine(DATABASE_URL)Base=decla......
  • python-类型提示(type hinting)
    类型提示在Python3.5及更高版本中引入,能够让代码更具可读性和可维护性,并帮助静态类型检查工具进行代码分析。以下是关于类型提示的一些详细介绍和示例:类型提示概述基本语法:函数参数类型提示:deffunction_name(param:type)->return_type:返回值类型提示:deffunction_na......