基于python的kaggle练习(二)——员工离职预测

前沿

目前社会上呈现出一种公司招不到人,大批失业人员的矛盾现象,且大部分公司的离职率居高不下,很多入职没多久就辞职,所花费的培训招聘等资源都浪费了。为了弄清楚公司员工离职原因,通过kaggle上某一家企业员工离职的真实数据来对离职率进行分析建模。

一、初识数据

1、数据来源

https://www.kaggle.com/jiangzuo/hr-comma-sep/version/1

2、载入数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split,GridSearchCV
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegressionCV,LogisticRegression
from sklearn.metrics import classification_report,roc_curve,auc
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier as dtc
from  sklearn.ensemble import RandomForestClassifier

data=pd.read_csv('/Desktop/数据分析/HR_comma_sep.csv')
data.shape

数据共有10列,14999行数据。

3、特征说明

left:是否已经离职 0:未离职,1:已离职
satisfaction_level:对公司的满意度
last_evaluation:绩效评估
number_project:参加的项目个数
average_montly_hours:平均每月工作时长
time_spend_company:工作年限
Work_accident: 是否发生过工作差错 0:未发生,1:已发生
promotion_last_5years:五年内是否升职 0:未升职,1已升职
sales: 职业 定性变量,10个取值
salary:薪资水平 定量变量 ,3个取值

二、 数据描述性分析

1、查看数据前5行

 data.head()

在这里插入图片描述

2、查看数据类型

data.dtypes

在这里插入图片描述

3、数据描述性统计

data.describe()
data['left'].value_counts()/data['left'].count()

在这里插入图片描述
员工对公司的满意度: 范围 0.09~1, 中位数0.640, 均值0.613, 总体来说员工对公司较满意。
最新考核评估: 范围 0.36~1, 中位数0.720, 均值0.716, 员工考核平均水平中等偏上。
项目数: 范围 2~7个, 中位数4, 均值3.8, 平均参加项目数为4个。
平均每月工作时长: 范围96~310小时, 中位数200, 均值201。
工作年限: 范围2~10年, 中位数3, 均值3.5。

4、数据缺失值

data.isnull().any()

在这里插入图片描述
通过上述可以发现,数据都没有缺失值。

三、可视化分析

1、离职人数占比

data_left = data.left.value_counts()
plt.pie([data_left[0]/data.left.count(),data_left[1]/data.left.count()],labels=['未离职','已离职'], autopct='%1.1f%%',
       shadow=True, startangle=90)
print('总人数:',data.left.count())
print(data_left)

在这里插入图片描述在这里插入图片描述
总共有14999人,其中离职人数3571,占总人数的23.8%

2、公司的满意程度对离职的影响

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.rcParams['font.family'] = ['Arial Unicode MS']    #mac和windows有区别
plt.rcParams['axes.unicode_minus']=False    #可以显示负数
sns.boxplot(data['left'],data['satisfaction_level'])

在这里插入图片描述
对比员工对公司的满意度评分,离职员工的评分明显偏低,且离职人员对公司满意度整体波动较大,大部分都在0.4左右,甚至有一部分0.2以下的低水平。

2、绩效评估对离职的影响

sns.boxplot(data['left'],data['last_evaluation'])

在这里插入图片描述
就中位数而言,离职人员的考核标准比较高。从整体来看离职人员的绩效评估浮动比较大,最高的比在职的高,最低的比在职的人员低。
在职人员的绩效评估比较集中。

3、平均每月工作时长对离职的影响

sns.boxplot(data['left'],data['average_montly_hours'])

在这里插入图片描述
就中位数而言,离职人员的平均每月工作时长比较高。从整体来看离职人员的平均工作时长浮动比较大,最高的比在职的高,最低的比在职的人员低。

4、薪资水平对离职的影响

table=pd.crosstab(data.salary,data
  • 30
    点赞
  • 265
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值