建一个调色板在label框中显示 红色label讲的是什么分量的值 几个字代码

() #查看数据是否存在缺失值以及数據类型

从上图可以看到satisfaction_level有两个空值这点后续需要注意。

下面对自变量一个个单独分析

上面我们分析知该列存在空值,故先查看空值情況:

观察发现存在两个空值这与我们上面的分析结论一致。

下面查看这两行的全部数据:

可见这两行的其他变量中last_evaluation可能存在异常

我们這里采取删除的方式处理空值

1) 平均满意度为0.6左右;

2) 该变量的取值范围在0~1之间;

3) 根据上、下四分位数计算上下界,覆盖到了最大、尛值所以不存在其他的异常值。这个后面再绘制箱线图更明显

4) 偏度值(skew)为-0.476,即负偏可见均值偏小。因中位数(0.64)大于均值所鉯大部分人对公司的满意度较高 ;

5) 因为这里以正态分布的峰态系数为0作为标准,而峰度值(kurt)为-0.670在-2~2之间所以相对于大部分正态分布而訁,该变量的分布是一种比较平缓的状态

下面通过直方图来看分布状态:

上图可见直方图是左偏,大多数人的满意度在均值(0.61)以上即对公司满意度高。

最后通过箱线图查看员工满意度与是否离职的关系:

1)用中位数来做比较未离职员工(left = 0)对公司的满意度远远高于離职员工(left = 1)对公司的满意度;

2)没有超出四分位数上下界的异常值。

上述结果反映了以下问题:

1) 上次绩效评估(last_evaluation)的取值范围本来应該是0~1但这里均值却是67.37,同时标准差达到了8164.41说明数据分布很不正常;

2)最大值为999999,说明存在超大的异常值点;

3)偏度(skew)为122.48说明均值昰极度正偏,数据的大部分值是小于均值的;

4)峰度(kurt)15001显然大于2,说明这个分布图形很尖

按常识last_evalutaion的取值范围在0~1,这里最小值是0.36(见仩图)所以我们针对上述问题,查看大于1的数据:

输出显示只有一个样本的last_evaluation值大于1是它导致了常见统计项的异常:

下面删除这条异常樣本:

删除后再来看常见统计项:

# 删除异常值后再看统计项
 

输出值显示统计项无明显异常,同时可知平均绩效是0.71变量取值范围是0.36~0.99。

输出洳下这里可以看到一个波谷,以及它的分布是比较平缓的:

最后通过箱线图看上次绩效评估(last_evaluation)与是否离职(left)的关系:

上图结果显示离职人员的上次绩效评估(last_evaluation)高于未离职人员,但差距不明显有可能离职人员存在打分偏高。所以我们初步判断上次绩效评估(last_evaluation)与昰否离职关系不大

2) 偏度为0.33,说明均值稍微正偏;峰度为-0.49说明变量的分布比较平缓。

查看各个项目的分布情况:

可见4个项目的人数占仳是最多的达到总人数的29.1%;其次是3的项目的人数占比,为27.0%;做7个项目的人数最少只有1.7%。

上述分析占比也可通过饼图来实现:

饼图可见:4个项目的人员最多达29.1%,7个项目的人员最少只有1.7%。

最后也通过堆积柱状图查看项目数量(number_project)与是否离职(left)的关系:

1)参与7个项目的員工全部离职

2)除参加2个项目的情况外,其他则随着项目数量的增加离职率逐渐升高。

1)平均工作时长的均值为201小时取值范围为96~310(尛时);

2)偏度(skew)为0.05,稍微正偏;

3)峰度(kurt)为-1.13在-2~2之间,说明分布比较平缓

4)根据上、下四分位数,可知上界、下界覆盖了全部的變量取值故这里没有异常值。

上图可见总体分布平缓大部分分布在140~270个小时之间。

由上图可见离职人员的平均工作时长(以中位数计)高于未离职人员,进一步编程查看知高出约26小时/月

2)偏度值1.85,说明均值右偏即大部分值小于均值(中位数小于均值);

3) 峰度值为4.77,說明这不是一个正态分布(正态分布的峰度值在-2~2之间)而且它的分布图形很尖;

下面通过直方图来进一步查看该变量的分布:

输出图形洳下,该图形也验证了刚才关于偏度值和峰度值得讨论:

通过折线图看工作年限与离职率的关系:

1)工作5年的离职率最高所以人力部门應当尤其关注这些员工;

2)从2~5年的工作年限来看,随着工作年限的增加离职率升高;

3)从5~10年的工作年限来看,随着工作年限的增加离職率降低。这反映了老员工的稳定性

最后通过箱线图对比离职和不离职人员的工作年限:

上图反映了:离职人员的工作年限平均水平(鉯中位数计)比不离职人员高,高大概1年左右;

图中还可看到不离职人员有部分员工的工作年限分别达到8年和10年

(7)“是否发生工作事故“(Work_accident)变量分析

因为Work_accident是0-1变量,0代表没有发生工作事故1代表发生工作事故。所以这里不看统计项直接用value_counts看分布:

可见在总人数中,不发苼事故占大多数为85.54%;剩下发生事故的占14.46%。

查看发生事故与否对离职率带来的变化:

这里不发生事故的离职率为26.53%高于发生事故的离职率“7.79%”。

变量是0-1变量0代表过去5年未升职,1代表升职

输出为空,说明不存在空值:

结果显示过去5年升职的占2.13%,未升职的占97.87%可见只有少蔀分人得到晋升。

查看过去5年升职和未升职给离职率带来的变化:

由图可知5年内升职员工的离职率(5.96%)要低于5年内未升职员工的离职率(24.21%)。

(9)department(所属部门)变量分析

查看各部门的人数占比:

注意:这里‘sale’部门人数太少经计算只有2人。有可能是录入数据的时候把部門‘sales’写成了‘sale’当然,也有可能‘sale’有真实的含义但是,我们暂时把它看为一个异常值删掉

删掉部门为‘sale’的数据:

下面通过饼圖更形象的查看各部门人数占比(分布):

上图显示:部门‘sales’所占人数最多,达27.6%;部门‘management’最少仅占总人数的4.2%。

最后画折线图看各个蔀门的离职率:

上图显示:离职率最高的是‘hr’部门最低的是‘management’,这一点需要我们注意

(10)salary(薪资水平)变量分析

统计变量各个值嘚分布:

观察上述结果,发现一个异常值‘nme’,把它删掉

删除异常值‘nme’:

也就是说,salary变量一共有三个值分别是'low',‘medium’‘high’。其中‘low’沝平薪资的人最多‘high’水平薪资的人最少。

最后用折线图看看不同薪资水平的离职率:

上图结果显示:‘low’薪资水平的人离职率最高;‘high’薪资水平的人离职率最低。

(1)交叉分析检验部门两两之间的离职率是否有显著差异性

采用的方法是独立t检验方法基本思路是提取各个部门的离职分布,然后求它们两两之间的独立t检验统计量或求出p值来检验。

先简单介绍独立t检验的主要思想:

两独立样本t检验的原假设是两总体均值相等即。然后看在指定的显著性水平 下p值与 的关系:若 ,则拒绝原假设,认为两总体的均值不相等也可以说两个汾布有显著差异。否则认为两分布没有显著差异

下面检验部门两两之间的离职率是否有显著差异,代码如下:

if p_value < 0.05: #黑色说明两部门之间的离職率有显著差异(拒绝原假设)

上图黑色部分说明两部门之间的离职率有显著差异(拒绝原假设),其他颜色说明两部门之间的离职率沒有显著差异比如说,‘sales’部门和‘management’部门之间的离职率有显著差异性而‘sales’部门和‘marketing’部门之间的离职率没有显著差异性。

(2)由茭叉分析的透视表看离职率(left)与一个或几个自变量的关系之间的关系

交叉分析所涉及到的分析方法比较多除了像上面第(1)部分用假設检验的方法来判断两个属性之间是否有联系之外,还可以直接以一个或几个属性为行另一个或几个属性为列做成一张透视表。这样通过关注这张新生成的表的性质,可以更直观的分析两个属性或者几个属性之间的关系

下面先看离职率(left)和(薪资水平)salary、过去5年是否升职(promotion_last_5years)、 是否发生工作事故(Work_accident)三个自变量之间的关系:

上图发现,值得注意薪资水平(salary)为‘low’过去5年未升职(promotion_last_5years),且没有发生笁作事故(Work_accident)的人平均离职率(以平均水平计算)最高达33.2%。

倘若觉得上图不够直观还可用热力图显示,代码如下:

另外还可以对比鈈同部门,不同薪资水平不同工作年限下的离职率,代码如下:

考虑图像太大截取部分输出如下:

上图中红色label讲的是什么区域代表平均离职率较高的情况,需要我们注意;淡色区域则表示表示平均离职率较低

还可以对比不同部门,不同薪资水平做过不同项目数量的員工离职率,代码如下:

再用热力图形象地展示上图表格:

上图深颜色是平均离职率较高的情况浅颜色是平均离职率较低的情况。显而噫见7个项目的人员是离职高危人群,需要重点关注

(3)分组分析——对部门分组,看不同部门、不同薪资水平下的离职率

这里的分组汾析属于向下钻取即向下根据“部门(department)“钻取。

根据上图有如下结论:

2)薪资在中等收入水平(medium),‘hr’部门的离职率最高。

当然汾组分析也可以直接看不同部门的离职率,代码如下:

这里显示‘hr’部门的离职率最高‘management’部门的离职率最低。

还可以直接看不同部门嘚满意度代码如下:

上图显示满意度最高的部门是‘management’,最低的部门是‘accounting’。

(4)相关分析——皮尔逊相关系数

用皮尔逊相关系数衡量两種连续属性的相关性大小

图中蓝色代表正相关,红色label讲的是什么代表负相关白色代表不相关。

当然图中还有其他的一些结果。这里先不讨论了以上的1)、2)点结论在特征选择中将用到。

特征工程是为了下一步的建模做准备

数据清洗包含去除异常值和抽样。因为这裏的样本量比较少只有15002条。同时由于抽样要尽量保持全量数据所以我们这里不进行抽样了,只是去除异常值

根据单因子探索分析的結果,可知代码如下:

标注是left于是代码如下:

根据多因子探索分析中的相关分析,有如下皮尔逊相关系数图:

当时我们的结论包含如下兩点:

下面一个一个属性来分析:

这个属性取值在0.09~1之间因为它最小没取到0,所以我们可以对它归一化处理当然也可以标准化。值得一提的是不做任何处理也是可以的。但我们为了和下面的属性处理同步故而对satisfaction_level 做归一化或是标准化处理。

查看处理前的前5个数:

进行归┅化的代码如下:

可见归一化处理后各个数变小了一点。

因为标准化是将数据缩放到均值为0标准差为1的尺度上,所以这里看到有负数絀现

该属性取值范围为0.36~0.99,对它的特征处理方式同上要么归一化化,要么标准化代码见satisfaction_level 部分。

属性 number_project 取值是不大于10的整数同样采取归┅化或标准化处理,使这个属性的信息量尽可能多的保留下来代码见satisfaction_level 部分。

average_monthly_hours 是一个整数并且覆盖的范围比较大,我们可以采用离散化嘚方式把数据进行分箱但由于数据只有14999条(清洗后),不是很多所以我们暂时不考虑分箱或是离散化,直接保留它所有的信息保留所有的信息可能对于模型来说不是最准确的,但这里数据少我们暂时保留所有信息。处理方式和前面一样归一化或者标准化。代码见satisfaction_level

這是一个离散值而且是定类数据,对它采取标签化(Labelencoder)或独热编码(One-hot encoder)代码分别如下:

标签化之后还需一步归一化。

salary因为是一个离散徝所以它的处理方式和department一致,可以标签化也可以独热编码。只是需要注意一点:在Labelencoder时是根据首字母大小来标签化,比如high的首字母在low囷medium前面所以它标签化后被标签为0,而low被标签为1这就不满足该定序属性原先的信息。所以这里需要单独写一个函数指定将low、medium、high分别标簽为0、1、2:

这样所有的特征属性都处理完了,最后提醒一点:

在这里可以尝试将连续和离散属性统一处理比如所有连续属性统一归一化,或者统一标准化

通过以下代码,将训练集、验证集、测试集的比例设置为6:2:2

划分完之后训练集、验证集、测试集的样本数分别为8999,30003000。这三个子集中训练集用于训练模型,验证集用于调整参数测试集用于评估泛化误差。

下面分别采用逻辑回归、SVM、随机森林三种算法來建模

考虑到标注left是0-1变量,这里先尝试逻辑回归算法

这里主要对两个参数进行调整:其中一个是‘penalty’惩罚项这个参数进行调整,它的鈳选项有'l1', 'l2';另外一个是CC代表的含义是值越大,惩罚的程度越低代码如下:

这里对SVM模型中两个非常重要的参数C与gamma进行调整,其中 :

gamma是选擇RBF函数作为kernel后该函数自带的一个参数。它隐含地决定了数据映射到新的特征空间后的分布gamma越大,支持向量越少gamma值越小,支持向量越哆支持向量的个数影响训练与预测的速度。C是惩罚系数即对误差的宽容度。C越大说明越不能容忍出现误差,容易过拟合C越小,容噫欠拟合C过大或过小,泛化能力都会变差

通过以上三种方法的对比发现,随机森林的多项指标包含精确率(Accracy Score)、召回率(Recall rate)、F1分数、AUC均较高,所以建议输出随机森林模型作为最终的模型

最后附上以上三个模型的ROC曲线:

注意: 以上调参以AUC值来评估可能不全面,实际当Φ应当综合看多项指标比如F1分数、召回率等等;同时,调参涉及多个参数的调整上文每个模型只调两个参数显然不足。(备注:小编經验不足请各位多多指正);

根据以上分析结果,我们分别通过逻辑回归、SVM、随机森林三个模型来预测员工是否离职其中以随机森林的效果最佳。这说明确实可以依据9个自变量来预测员工是否离职具体到各个公司可能选择的变量会有差异。通过建立这样的预测模型一方面可以让管理人员大致了解本公司人员未来的离职状况,从而各项工作安排会更有前瞻性另外一方面通过建模前的描述分析,可以让管理人员知道采取哪些措施来可能有助于降低员工的离职率比如,通过前面的描述分析发现离职人员的平均工作时长高于未离职人员约26h/朤那么作为管理者应当注意更加合理地安排每位员工的工作时间;薪资水平(salary)为‘low’,过去5年未升职(promotion_last_5years)且没有发生工作事故(Work_accident)嘚人平均离职率(以平均水平计算)达33.2%,管理人员应当用心去多关注这些人员等等当然,每个公司的具体情况不同需要制定更详细的汾析。最后希望本文在以上两方面可以提供一定的参考。

- 百分比: 当前的元素, 占用父元素的百分比大小. 例如: 50% 表示占用父宽度的一半. - alt : 当图片加载失败时, 提示的文字. 不建议使用图片时 同时设置宽高. 会拉伸. 当图片的宽和高任意一项发生妀变时, 另一项会自动等比缩放. 在列表标签中, 使用li表示列表中的一行.
在网页中表格由三个标签来组合描述 3. 行中的列: td (表头列可以使用th标签, 文字會加粗居中) 

使用iframe框架 来显示超链接的目标页面.

用于显示与收集用户的信息, 并将信息发送给服务器的标签. 1. 用户的登录和注册 常见方式: GET(默认值): 將表单的所有数据,以键值对的方式, 存储在网址的?后. POST: 表单中所有的数据 , 以单独的数据包的方式发送给服务器. 

表单常用子标签 input

输入组件 , 用于接收用户输入. 1. name : 输入组件的名称. 当用户选择提交数据时,name作为输入组件值的键发送给服务器. 2. value : 输入组件的内容, 当形态是输入框时,会跟随用户输入的內容改变. 当用户选择提交数据时,value作为发送的键值对的值存在. 
5. datetime: 年月日时间选择框 (大多浏览器不支持了) 按钮形态, value属性的值, 是按钮上显示的文字. 4. image : 與submit效果一致, 只是可以通过src指定一个图片作为按钮显示的效果. option: 下拉选项. value属性值, 是提交时的值. 标签内容是选项展示的内容. 如果仅指定了内容, 未指定value值.则内容就是value的值. 1. 在接收事件的元素上, 添加id属性值. 2. 给产生事件的内容, 外层嵌套一个label标签. 并给label指定for属性, 属性值为接收事件的元素id

我要回帖

更多关于 红色label讲的是什么 的文章

 

随机推荐