首先请与所有现有链接到该网络共享的映射断开连接_疫情之下:该如何使用Python预测员工流失,老板直呼内行!...

870167edbf19c6da444fdcd907e51abe.png

前言:

2020年初一场疫情使得众多公司面临裁员,众多员工无奈选择离职,那么该如何使用python这一编程语言分析员工流失。找出员工离开公司的原因,并学会预测谁将离开公司。

在过去,大多数的重点是“比率”,如自然减员率和保留率。人力资源经理计算以前的比率,尝试使用数据仓库工具预测未来的比率。这些利率反映了动荡的总体影响,但这是一半的情况。另一种方法可以是除了聚合之外,还将重点放在单个记录上。

有很多关于客户流失的案例研究。在客户流失中,您可以预测客户将在什么时候停止购买。员工流失与客户流失相似。它主要关注的是员工而不是客户。在这里,您可以预测谁,以及员工何时终止服务。员工流失成本很高,而增量式的改进将带来显著的效果。这将有助于我们设计更好的留用计划和提高员工满意度。

在本教程中,您将讨论以下主题:

  • 员工流失分析
  • 数据加载与理解特征
  • 探索性数据分析和数据可视化
  • 聚类分析
  • 利用梯度增强树建立预测模型。
  • 评价模型性能
  • 结语

员工流失分析

6e519faf750a221338b335a96492b2be.png

员工流失可以定义为智力资产从公司或组织中泄露或离开。或者,用简单的话来说,你可以说,当员工离开组织时,被称为“流失”。另一个定义可以是当一个群体中的一个成员离开一个群体时,也就是所谓的“搅动”。

研究发现,员工流失受年龄、任期、薪酬、工作满意度、工资、工作条件、成长潜力和员工公平观念等因素的影响。其他一些变量,如年龄、性别、种族、教育程度和婚姻状况,是预测员工流失的重要因素。在某些情况下,比如拥有利基技能的员工就很难被取代。它影响到现有雇员的持续工作和生产力。作为替代者,收购新员工有其成本,如招聘成本和培训成本。此外,新员工将需要时间学习技能,在类似水平的技术或商业专业知识的老员工。组织通过应用机器学习技术预测员工流失来解决这个问题,这有助于他们采取必要的行动。

以下几点有助于您更好地理解员工和客户的流失:

  • 企业选择雇佣员工,而在市场营销中,你却不能选择你的客户。
  • 员工将是你公司的代言人,集体地,员工生产你公司所做的每一件事。
  • 失去顾客会影响收入和品牌形象。与保留现有客户相比,获得新客户是困难和昂贵的。员工流失对公司一个组织来说也是痛苦的。寻找和培训替代者需要时间和精力。

与客户流失相比,员工流失具有独特的动态特性。它帮助我们设计更好的员工留用计划,提高员工满意度。数据科学算法可以预测未来的波动。

导入模块

d1cc4e384822af977a61329ef9b75d63.png

加载数据集

让我们首先使用熊猫的ReadCSV函数加载所需的人力资源数据集。您可以从链接.

07edee757a71dea037d55ba51bf4f139.png
6b46058176a5e9e1e5cb3cb751fe9b71.png
0123beb1fe636600d71586165c26811b.png
这里,在给定的数据集中,原始数据由逗号分隔符(“,”)分隔。 您可以更仔细地查看数据,借助熊猫图书馆的“head()”功能,它返回了前五项观察结果。 类似地,“tail()”返回最后五个观察结果。
258e186ea0424f724b650ab35b63a4aa.png
d5262a992e867e48914240cf1771a471.png

加载数据集之后,您可能希望了解更多有关它的信息。您可以使用info()检查属性、名称和数据类型。

e77616696f2c9659237d94218df05365.png
c0575d1e30c7fbdb132777f7128bfb30.png
该数据集有14 999个示例,以及10个属性(6个整数、2个浮点数和2个对象)。 没有变量列具有空/缺失值。

您可以将10个属性详细描述为:

  • 满意度水平:这是员工满意点,从0到1不等.
  • 最后一次评估:由雇主对业绩进行评估,其范围也从0到1。
  • Number_Projects:分配给员工的项目数量是多少?
  • 平均每月工作时数:一个月内雇员平均工作时数是多少?
  • 时间消耗公司:时间消耗公司是指员工的经验。雇员在公司工作的年数。
  • 工伤事故:员工是否发生过工伤事故。
  • 晋升5年:员工是否在过去5年中获得过晋升。
  • 部门:员工工作部门/部门。
  • 薪资:员工的薪资水平,如低、中、高。
  • 左:员工是否已离开公司。

让我们跳进数据洞察

在给定的数据集中,有两种类型的员工--一种是留下来的,另一种是离开公司的。因此,您可以将数据分成两组,并比较它们的特点。在这里,您可以使用groupby()和means()函数找到这两个组的平均值。

06679ca9114572da1cf952cdfa4ad4af.png
618904de0c0c6784800a845628afc7f8.png

在这里,你可以解释说,离开公司的员工满意度低,晋升率低,薪水低,与留在公司的员工相比,他们工作得更多。

大熊猫的描述功能便于获取各种汇总统计数据。此函数返回数据的计数、平均值、标准差、最小值和最大值以及分位数。

cef528fa5b89158646d8faf5697836a8.png
0662002fcd6e9457ce1b223a69ad45e0.png

数据可视化

雇员离开

让我们查查还剩多少员工?

在这里,您可以使用Matplotlib绘制条形图。条形图适用于离散变量计数的显示。

7b14270bc0602c7d653245a0d985b251.png
bd5f2a32382fa79277c5fee9bb993c91.png
4af1a8e00266ce1dfdc34874f327f653.png
2ff234585c1e471c60bc6f305ada8ed6.png

在这里,你可以看到大约15000人留下了3,571人,并留下了11,428人。剩下的雇员人数占总就业人数的23%。

项目数目

类似地,您还可以绘制一个条形图来计算部署在多少个项目上的员工数量?

aa1917c0aa2a125da31883a28b8b153e.png
962bbe0846b246c51cdf2827a9f4012e.png
大多数员工都是从3-5开始做这个项目的。

在公司工作的时间

同样,您也可以绘制一个条形图来根据多少经验来计算员工的数量?

9e80b3ba3dfbf3e029ab7835914b7660.png
8a9e787198225f301ef24091f4b626d7.png

大多数员工有2-4年的工作经验。而且,3年和4年经验丰富的员工之间存在着巨大的差距。

使用Seborn的子图

这是您可以一个一个地分析这些特性的方法,但这将是很费时的。更好的选择是使用Seborn库并使用子图在一次运行中绘制所有图。

20d320c042022d25645e1050e78f4b6d.png
8f6271e7d37cb7499dad98015b98b3e1.png
a2ae5e9b01aed8634065a4a7b95bd8ae.png

您可以在上面的可视化中观察到以下几点:

  • 大多数员工都是从3-5开始做这个项目的。
  • 在3年到4年的经验员工之间有一个巨大的下降。
  • 剩下的雇员人数占总就业人数的23%。
  • 在过去的5年里,获得晋升的员工数量明显减少了。
  • 销售部的员工人数最多,其次是技术和支持部门。
  • 大多数雇员的工资要么中等,要么低。
d46294a459f09923e33c39ff2d5599f8.png
4c4314c27bcc392574b6d2f0d5363b4d.png
7a90f0b3ac31ce31285c48ea91204e68.png

您可以在上面的可视化中观察到以下几点:

  • 那些项目数量超过5个的员工离开了公司。
  • 完成了6个和7个项目的员工离开了公司,似乎他们的工作负担过重。
  • 有五年工作经验的员工因过去5年没有晋升而离职更多,超过6年的工作经验因对公司的感情而不离职。
  • 那些在过去5年里升职的人没有离开,也就是说,所有离开的人在过去的5年里都没有得到升职。

数据分析和可视化摘要:

以下特点最能影响一个人离开公司:

  • 晋升:如果员工在过去5年没有得到升职,那么他们辞职的可能性要大得多。
  • “公司时代”:在这里,三年制看起来是员工职业生涯中的一个关键时刻。他们中的大多数人都是在三年左右辞职的。另一个重要的问题是6年,在这一点上,员工不太可能离开。
  • 项目数量:员工敬业是影响员工离职的另一个关键因素。3到5个项目的员工离开公司的可能性较小。项目数量越来越少的员工可能会离开。
  • 薪资:在中、低薪资组中辞职的大多数员工。

让我们找出离开的员工群体。你可以观察到,任何员工留下来或离开的最重要因素是满意程度和在公司的表现。所以让我们用聚类分析把他们聚集在一组人中。

聚类分析

50263820efda30f46c8c37171e47a39a.png
55642a8ff0ec20fb1d10c035eac81aa5.png
b3c20e07dfe0416897c822c771d98ac2.png

在这里,离开公司的员工可分为3类:

  • 高满意度和高评价(在图中用绿色阴影),你也可以称他们为优胜者。
  • 低满意度和高评价(由蓝色阴影(在图中的绿色阴影),你也可以说他们沮丧。
  • 适度的满意度和适度的评价(在图中用灰色阴影),你也可以称它们为“坏匹配”。

建立预测模型

预处理数据

许多机器学习算法都需要数值输入数据,因此需要在数值列中表示分类列。

为了对这些数据进行编码,您可以将每个值映射到一个数字。例如,薪资列的值可以表示为

低:0、中等:1和高:2。

这个过程被称为标签编码,SskLearning可以方便地为您使用LabelEncoder完成这一过程。

d5370f723a5840c201388377307683c7.png

在这里,您导入了预处理模块并创建了Label Encoder对象。使用此LabelEncoder对象,您可以将“工资”和“部门”列转换为数字列。

分体式列车及测试装置

要理解模型性能,将数据集划分为训练集和测试集是一种很好的策略。

让我们使用函数TRANS_TEST_Split()来拆分数据集。您需要传递3个参数特性、目标和test_set大小。此外,您还可以使用随机状态来随机选择记录。

27518aa7c8ff6644c854b847a903fb04.png
1864eae99b99db4c69079c3398fe08c3.png

在这里,数据集按70:30的比例分为两部分。这意味着70%的数据将用于模型训练,30%用于模型测试。

模型建立

让我们建立一个员工流失预测模型。

在这里,您将使用梯度增强分类器来预测搅拌。

首先,导入GradientBoostingClassfier模块并使用GRadientBoostingClassfier()函数创建梯度增强分类器对象。

然后,使用FIT()在火车集中拟合模型,并使用PRECT()对测试集执行预测。

13c72d919917c20b7d2c3d179f4713f7.png

评价模型性能

97ce99c534f107fa3b6e3fbac0246f2c.png
f4e5b1d328b922e714de6729b3e334f6.png
d445a08f6569db72b88eb770914b3457.png

好吧,你的分类率是97%,被认为是正确的。

精度:精确是指精确,即你的模型有多精确。换句话说,你可以说,当一个模型做出预测时,它多久才是正确的。在你的预测案例中,当你的梯度提升模型预测一个员工将要离开时,该员工实际上95%的时间离开了。

回忆:如果有一个员工离开了测试集和你的梯度提升模型可以识别92%的时间。

结语

恭喜你,你终于完成了本教程!

在本教程中,您已经了解了什么是员工流失?,它与客户流失有何不同,使用matplotlib和seabelln对员工流失数据集进行探索性数据分析和可视化,使用python Scikit-Learning包进行建模和评估。

我期待听到任何反馈或问题。你可以留下评论来问一个问题,我会尽力回答的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值