前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IBM HR Analytics 员工流失 EDA 和可视化绩效分析

IBM HR Analytics 员工流失 EDA 和可视化绩效分析

作者头像
老虎也淘气
发布2024-01-30 15:26:58
1360
发布2024-01-30 15:26:58
举报
文章被收录于专栏:Data分析Data分析
IBM HR Analytics 员工流失与绩效分析

背景

揭示导致员工流失的因素,并探讨重要问题,例如“按工作角色和流失情况显示离家距离的详细信息”或“按教育程度和流失情况比较平均月收入”。这是由 IBM 数据科学家创建的虚构数据集。

  • 教育程度 1 ‘大专以下’ 2 ‘大专’ 3 ‘学士’ 4 ‘硕士’ 5 ‘博士’
  • 环境满意度 1 “低” 2 “中” 3 “高” 4 “非常高”
  • 工作投入度 1 “低” 2 “中” 3 “高” 4 “非常高”
  • 工作满意度 1 “低” 2 “中” 3 “高” 4 “非常高”
  • 绩效评级 1 ‘低’ 2 ‘好’ 3 ‘优秀’ 4 ‘杰出’
  • 关系满意度 1 “低” 2 “中” 3 “高” 4 “非常高”
  • 工作与生活平衡 1 “差” 2 “好” 3 “更好” 4 “最好” 文件中列名

Age

年龄

Attrition

消耗

BusinessTravel

商务旅行

DailyRate

每日比率

Department

部门

DistanceFromHome

离家距离

Education

教育

EducationField

教育领域

EmployeeCount

员工帐户

EmployeeNumber

员工数量

EnvironmentSatisfaction

环境满意度

Gender

性别

HourlyRate

小时比率

JobInvolvement

工作投入

JobLevel

工作级别

JobRole

工作角色

JobSatisfaction

工作满意度

MaritalStatus

婚姻状况

MonthlyIncome

每月收入

MonthlyRate

月费率

Num CompaniesWorked

工作的公司数量

Over18

18以上

OverTime

加班

Percent SalaryHike

百分比工资

PerformanceRating

绩效评级

RelationshipSatisfaction

关系满意度

StandardHours

标准工时

导入库

代码语言:javascript
复制
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import plotly.express as px
import seaborn as sns
代码语言:javascript
复制
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

输出前五行

代码语言:javascript
复制
df = pd.read_csv('/kaggle/input/ibm-hr-analytics-attrition-dataset/WA_Fn-UseC_-HR-Employee-Attrition.csv')
df.head()
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
df.dtypes

Age int64 Attrition object BusinessTravel object DailyRate int64 Department object DistanceFromHome int64 Education int64 EducationField object EmployeeCount int64 EmployeeNumber int64 EnvironmentSatisfaction int64 Gender object HourlyRate int64 JobInvolvement int64 JobLevel int64 JobRole object JobSatisfaction int64 MaritalStatus object MonthlyIncome int64 MonthlyRate int64 NumCompaniesWorked int64 Over18 object OverTime object PercentSalaryHike int64 PerformanceRating int64 RelationshipSatisfaction int64 StandardHours int64 StockOptionLevel int64 TotalWorkingYears int64 TrainingTimesLastYear int64 WorkLifeBalance int64 YearsAtCompany int64 YearsInCurrentRole int64 YearsSinceLastPromotion int64 YearsWithCurrManager int64 dtype: object

数据清洗

检查空值

代码语言:javascript
复制
df.isna().sum()

Age 0 Attrition 0 BusinessTravel 0 DailyRate 0 Department 0 DistanceFromHome 0 Education 0 EducationField 0 EmployeeCount 0 EmployeeNumber 0 EnvironmentSatisfaction 0 Gender 0 HourlyRate 0 JobInvolvement 0 JobLevel 0 JobRole 0 JobSatisfaction 0 MaritalStatus 0 MonthlyIncome 0 MonthlyRate 0 NumCompaniesWorked 0 Over18 0 OverTime 0 PercentSalaryHike 0 PerformanceRating 0 RelationshipSatisfaction 0 StandardHours 0 StockOptionLevel 0 TotalWorkingYears 0 TrainingTimesLastYear 0 WorkLifeBalance 0 YearsAtCompany 0 YearsInCurrentRole 0 YearsSinceLastPromotion 0 YearsWithCurrManager 0 dtype: int64

代码语言:javascript
复制
df.describe()
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
df.Age.unique()
在这里插入图片描述
在这里插入图片描述

我们可以看到,有些列可以删除,因为它们没有增加任何价值:

a.员工数量

b.员工人数

C.标准工作时间:每个人工作80小时

d.18岁以上:所有工作的人都在18岁以上

删除不必要的列

代码语言:javascript
复制
df= df.drop(['EmployeeCount','EmployeeNumber','Over18','StandardHours'],axis = 1)

可视化

商务旅行直方图

代码语言:javascript
复制
sns.histplot(data=df, x='BusinessTravel', element='step', color='purple', stat='percent')
在这里插入图片描述
在这里插入图片描述

我们可以看到大多数工作需要员工出差,但很少。大约20%的工作需要经常出差,10%没有出差。

离家的距离箱形图

代码语言:javascript
复制
sns.boxplot(data=df, y='DistanceFromHome', color='green')
在这里插入图片描述
在这里插入图片描述

从这个箱线图中,我们可以看到,员工平均要走7公里才能到达办公室,其中75%的员工要走1到14公里才能到达办公室。让我们看看离家的距离和损耗之间是否有任何关系

1.根据百分位数划分数据

代码语言:javascript
复制
cut_labels = ['Near', 'Reasonable', 'Far']
cut_bins = [-1, df['DistanceFromHome'].quantile(0.33), df['DistanceFromHome'].quantile(0.67), df['DistanceFromHome'].max() + 1]
df['DistanceGroup'] = pd.cut(df['DistanceFromHome'], bins=cut_bins, labels=cut_labels)

2.计算每组的退出概率

代码语言:javascript
复制
probabilities = df.groupby('DistanceGroup').apply(lambda group: sum(group['Attrition'] == 'Yes') / len(group)).reset_index()
probabilities.columns = ['DistanceGroup', 'Probability']

3.绘制这些概率

代码语言:javascript
复制
plt.figure(figsize=(10, 6))
sns.barplot(x='DistanceGroup', y='Probability', data=probabilities, order=cut_labels)
plt.title('Probability of Attrition by Distance Group')
plt.ylabel('Probability of Quitting')
plt.xlabel('Distance from Home Group')
plt.show()
在这里插入图片描述
在这里插入图片描述

我们可以看到,与住在附近或合理距离的人相比,住得远的人戒烟的概率更高

教育与数字公司的关系

代码语言:javascript
复制
sns.barplot(data=df, y='NumCompaniesWorked', x='Education', palette='Set3')
在这里插入图片描述
在这里插入图片描述

我们可以看到,平均而言,上过高中的人换工作的频率较低。然而,拥有硕士学位的人更容易流失

年龄和月收入散点图

代码语言:javascript
复制
sns.scatterplot(data=df, x='Age', y='MonthlyIncome')
在这里插入图片描述
在这里插入图片描述

从散点图中,我们可以看到,随着人们年龄的增长,高薪的机会越来越多,年长的雇员往往挣得更多,然而,工资差距也在扩大。

代码语言:javascript
复制
sns.scatterplot(data=df, x='Age', y='TotalWorkingYears', hue='Attrition')
在这里插入图片描述
在这里插入图片描述

从散点图来看,与经验丰富的同行相比,刚开始职业生涯的人通常更容易辞职

按教育领域和工作角色划分的工作满意度

代码语言:javascript
复制
fig = px.bar(df, x='EducationField', y='JobSatisfaction', color='JobRole', barmode='group')
fig.update_layout(
 
xaxis_title='Education Field',
 
yaxis_title='Job Satisfaction',
 
title='Job Satisfaction by Education Field and Job Role')
在这里插入图片描述
在这里插入图片描述

相关矩阵的交互式热图

代码语言:javascript
复制
correlation_matrix = df.corr()
fig = px.imshow(correlation_matrix, color_continuous_scale='Viridis', title='Interactive Heatmap of Correlation Matrix')
fig.show()
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IBM HR Analytics 员工流失与绩效分析
  • 背景
  • 导入库
  • 输出前五行
  • 数据清洗
    • 检查空值
      • 删除不必要的列
      • 可视化
        • 商务旅行直方图
          • 离家的距离箱形图
            • 教育与数字公司的关系
              • 年龄和月收入散点图
                • 按教育领域和工作角色划分的工作满意度
                  • 相关矩阵的交互式热图
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档