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

news2024/11/28 16:45:10

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工作的公司数量
Over1818以上
OverTime加班
Percent SalaryHike百分比工资
PerformanceRating绩效评级
RelationshipSatisfaction关系满意度
StandardHours标准工时

导入库

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
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

输出前五行

df = pd.read_csv('/kaggle/input/ibm-hr-analytics-attrition-dataset/WA_Fn-UseC_-HR-Employee-Attrition.csv')
df.head()

在这里插入图片描述

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

数据清洗

检查空值

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

df.describe()

在这里插入图片描述

df.Age.unique()

在这里插入图片描述
我们可以看到,有些列可以删除,因为它们没有增加任何价值:

a.员工数量

b.员工人数

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

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

删除不必要的列


df= df.drop(['EmployeeCount','EmployeeNumber','Over18','StandardHours'],axis = 1)

可视化

商务旅行直方图

sns.histplot(data=df, x='BusinessTravel', element='step', color='purple', stat='percent')

在这里插入图片描述
我们可以看到大多数工作需要员工出差,但很少。大约20%的工作需要经常出差,10%没有出差。

离家的距离箱形图

sns.boxplot(data=df, y='DistanceFromHome', color='green')

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

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

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.计算每组的退出概率

probabilities = df.groupby('DistanceGroup').apply(lambda group: sum(group['Attrition'] == 'Yes') / len(group)).reset_index()
probabilities.columns = ['DistanceGroup', 'Probability']

3.绘制这些概率

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()

在这里插入图片描述
我们可以看到,与住在附近或合理距离的人相比,住得远的人戒烟的概率更高

教育与数字公司的关系


sns.barplot(data=df, y='NumCompaniesWorked', x='Education', palette='Set3')

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

年龄和月收入散点图


sns.scatterplot(data=df, x='Age', y='MonthlyIncome')

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

sns.scatterplot(data=df, x='Age', y='TotalWorkingYears', hue='Attrition')

在这里插入图片描述
从散点图来看,与经验丰富的同行相比,刚开始职业生涯的人通常更容易辞职

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

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')

在这里插入图片描述

相关矩阵的交互式热图


correlation_matrix = df.corr()
fig = px.imshow(correlation_matrix, color_continuous_scale='Viridis', title='Interactive Heatmap of Correlation Matrix')
fig.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/843712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

陪诊小程序开发|陪诊系统定制|数字化医疗改善就医条件

健康问题这几年成为人们关注的焦点之一,然而看病却是一个非常麻烦的过程,特别是对于那些身处陌生城市或者不熟悉就医流程的人来说。幸运的是现在有了陪诊小程序下,为您提供便捷的助医服务,使得就医过程得更加简单和轻松。 陪诊系统…

国联易安网页防篡改保护系统“渠道招募”启动啦!

作为业内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全的领军企业,国联易安网页防篡改保护系统基于“高效同步”、“安全传输”两项技术,具备了独特的“五重防护”新特性,支持网页的全自动发布、网页监控、报警和自…

webpack基础知识十:与webpack类似的工具还有哪些?区别?

一、模块化工具 模块化是一种处理复杂系统分解为更好的可管理模块的方式 可以用来分割,组织和打包应用。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体(bundle) 在前端领域中,并非只有webpack这一款…

c51单片机16个按键密码锁源代码(富proteus电路图)

注意了:这个代码你是没法直接运行的,但是如果你看得懂,随便改一改不超过1分钟就可以用 #include "reg51.h" #include "myheader.h" void displayNumber(unsigned char num) {if(num1){P10XFF;P10P11P14P15P160;}else if…

js修改img的src属性显示变换图片到前端页面,img的src属性显示java后台读取返回的本地图片

文章目录 前言一、HTML 图像- 图像标签&#xff08; <img>&#xff09;1.1图像标签的源属性&#xff08;Src&#xff09;1.2图像标签源属性&#xff08;Src&#xff09;显示项目中图片1.3图像标签源属性&#xff08;Src&#xff09;显示网络图片 二、图像标签&#xff08…

韦东山Linux驱动入门实验班(6)LED驱动---设备树

前言 &#xff08;1&#xff09;在韦东山Linux驱动入门实验班&#xff08;5&#xff09;LED驱动—驱动分层和分离&#xff0c;平台总线模型我们已经讲解了如何将驱动程序和硬件程序进行剥离。但是大佬们感觉这样还不行&#xff0c;他们认为要专门弄一个结构存储硬件信息&#x…

树,森林的遍历,以及其与二叉树遍历之间的关系

树和森林的的遍历 树的遍历 先根遍历 以下列树为演示 首先将树转化成二叉树&#xff08;孩子兄弟表示法&#xff1a;就是每个节点的左边连着它的左孩子&#xff0c;右边连自己右边的第一个兄弟&#xff09; 然后把转化为的二叉树进行先序遍历&#xff0c;中序遍历 进行先序…

【c语言初级】c++基础

文章目录 1. C关键字2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.2 C函数重载的原理--名字修饰采用C语言编译器编译后结果 1. C关键字 C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想…

Spring Cloud Alibaba官方网站

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 官方网站 SCA&#xff08;Spring Cloud Alibaba&#xff09;为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有核心组件&#xff0c;使您可以轻松地…

LeetCode 周赛上分之旅 #38 结合排序不等式的动态规划

⭐️ 本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架&#xff0c;你的思考越抽象&#xff0c;它能覆盖的问题域就越广&#xff0c;理解难度…

思维能力的学习

前言 在工作中&#xff0c;随着工作时间的增长&#xff0c;我们与他人的差异不是知识本身的差异&#xff0c;主要是思维方面的差异&#xff0c;所以我们需要培养自己的思维能力。 思维能力的学习 思维是一个具备内在框架和逻辑的系统工程&#xff0c;思维覆盖了学习、认知、问…

43..利用fsolve函数解对应lambda下的方程组(matlab程序)

1.简述 fsolve的基本用法 : x fsolve(fun,x0) 其中fun应为函数句柄&#xff0c;x0为搜索的种子&#xff0c;即预估的fun0的解的大致位置。 函数句柄的定义方式主要有两种&#xff1a; 1.定义函数文件&#xff0c;使用操作符 定义function文件root2d.m, 如下&#xff1a; …

nvm下载node导致npm报错无法使用

有个依赖库需要更新下node&#xff0c;用nvm下载后项目跑不起来了&#xff0c;npm -v 还报错 其实一开始是npm下载不来&#xff0c;然后换了淘宝镜像后还是报错 然后就只能手动下载下了 进入node.js官网 https://nodejs.org/en/download 下载后注意要安装在你nvm目录中&#x…

httpd+Tomcat(jk)的Web动静分离搭建

动静分离是指将动态请求和静态请求分别交给不同的服务器来处理&#xff0c;可以提高服务器的效率和性能。在Java Web开发中&#xff0c;常见的动态请求处理方式是通过Tomcat来处理&#xff0c;而静态请求则可以通过Apache服务器来处理。本文将详细讲解如何结合Apache和Tomcat来…

MySQL的数据插入总结(不存在就插入,存在就更新)

MySQL的数据插入总结(不存在就插入&#xff0c;存在就更新) 1. on duplicate key update 当在insert语句后面带上ON DUPLICATE KEY UPDATE 子句&#xff0c;而要插入的行与表中现有记录的惟一索引或主键中产生重复值&#xff0c;那么就会发生旧行的更新&#xff1b;如果插入的…

高性能计算集群使用

一、PuTTY的下载与安装 PuTTY是一款开源的连接软件&#xff0c;是 SSH、Telnet、Rlogin 和 SUPDUP 网络协议的客户端程序。 下载网址&#xff1a;Download PuTTY - a free SSH and telnet client for Windows 安装好后连接自己的服务器 输入用户名和密码&#xff0c;回车登录…

前端安全XSS和CSRF讲解

文章目录 XSSXSS攻击原理常见的攻击方式预防措施 CSRFCSRF攻击原理常见攻击情景预防措施&#xff1a; CSRF和XSS的区别 XSS 全称Cross Site Scripting&#xff0c;名为跨站脚本攻击。为啥不是单词第一个字母组合CSS&#xff0c;大概率与样式名称css进行区分。 XSS攻击原理 不…

【数据结构】单链表OJ题(二)

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、链表分割 &#x1f4a1;方法一&#xff1a; 二、链表的回文 &#x…

5个可以创意灵感的AI绘画工具

当设计灵感耗尽&#xff0c;陷入创作瓶颈时&#xff0c;人工智能艺术生成器可能会为您提供新的启示。这些基于深度学习和发展“神经网络”的工具可以将输入的文本描述或图像转换成各种风格的艺术作品&#xff0c;并提供丰富的风格参数和材料库&#xff0c;让您可以自由调整和创…