用Python分析员工离职的原因及建模

很多公司的员工辞职之前人事部门和上级领导可能都没有察觉到,等到员工提出了要辞职之后才想办法去挽留。

那么我们有没有什么方法可以提前预测出可能离职的员工并进行提前的沟通,从而避免这样的事情发生呢?

现在我们就来根据一些相关的指标和员工离职相关的因素来计算他们辞职的概率并进行相应的预测以便提前做出预判。

一、数据预览

首先,我们先导入相应的库,并进行数据的初步预览:

(1)检查缺失值

数据很干净,没有发现缺失值。

(2)查看数据的类型

(3)更改部分数据显示形式

我们后续需要对工资列的数据进行分析,因此我们先将其转换成数值以便后续的分析。

现在让我们对数据的整体情况进行简单的了解:

二、数据可视化

我们先来看看相关的数据矩阵:

可以看出离职的员工和员工对公司的满意度有着明显的负相关。

现在我们使用核密度图和直方图来进行相关特征的的分析:

可以看出在离职的员工当中,对公司有满意也有不满意的,在绩效评估方面有绩效不好的也有绩效很好的。

接下来我们进行更进一步的分析,为了方便分析,我们将离职的员工进行集群的划分:

快乐和感激,我们称他们为“赢家”,那些离开的人,是因为他们得到了更好的机会(胜利者)。

被欣赏但不快乐的人,也许他们太适合这份工作了导致公司的平台不足以让他们有更好的发挥(失意者)。

不受赏识和不快乐的人会离开,这并不奇怪,这也不是公司所需要的员工(不合适)。

现在我们使用以上的分类来进行集群的划分与可视化:

对离职员工进行集群的划分,以便于后续的分析。

我们看看不同集群当中的离职的员工每个月工作时间情况:

我们可以看出不得意的那部分人的工作时间太长了,而不合适的那些人的工作时间则太少了,满意的人工作时间属于适中的。

(1)员工满意度

现在,我们将对在职和离职的员工使用直方图或核密度估计图来对几个相关的特征分布进行可视化处理。

“满意程度”可以说是鉴别公司的员工是否会离职的一个很好特征指标,离开的人普遍对自己的工作不满。不过,也有一些人对自己的工作很满意,但还是离开了,这意味着除了对工作满意之外,还有其他因素会影响员工离职。

(2)上次绩效评估情况

看起来那些离开公司的人在上次的业绩评估中表现得很差或者很好,在离开的人中,没有多少中等水平的员工。如果一个员工的评估分数在0.6到0.8的范围内,他们很可能仍然留在公司工作。

(3)负责的项目数量

离开的人主要从事少数项目(2),或大量的项目(5-7)。我增加了一个新功能:每年的项目数量,我将其定义为员工在其受雇期间工作的项目数量,除以员工在公司工作的总年数。与那些没有离开的员工相比,那些离开的人每年的项目数量较少。

(4)平均每月工作时间

离职的人平均每月工作时间很少(低于150小时),或者工作时间很长(超过250小时)。这意味着离职的员工要么工作不太好,要么工作得很卖力,离职的员工在最后一次业绩评估中要么表现糟糕,要么表现良好,这可能与这一事实有很大的关系。

(5)工资水平

我们可以清楚地看到这里的趋势——薪水越高,员工离开的概率就越低。

(6)工作时间

大多数的员工在五年左右离职。

三、数据建模

进行数据建模之前我们先将数据分解为训练和测试集:

(1)朴素贝叶斯

(2)K-NN算法

让我们来优化一下KNN模型:

可以发现进行相应的优化之后效果并不是我们想要的。

(3)决策树

(4)随机森林算法

通过以上的计算可以知道到目前为止随机森林算法产生的效果是最好的,所以我们对其进行进一步的优化:

(5)神经网络

由以上的几种模型可以看出随机森林模型就是一个最好的模型。

现在我们就可以在基于5个相关参数就能够预测谁可能离开公司的模型了。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180131G1GG3T00?refer=cp_1026

相关快讯

扫码关注云+社区