赛题来自:datacastle

任务

从给定的影响员工离职的因素和员工是否离职的记录,建立一个逻辑回归模型预测有可能离职的员工

数据

数据主要包括影响员工离职的各种因素(工资、出差、工作环境满意度、工作投入度、是否加班、是否升职、工资提升比例等)以及员工是否已经离职的对应记录。

主要字段说明

  1. Age:员工年龄
  2. Attrition:员工是否已经离职,1表示已经离职,2表示未离职,这是目标预测值;
  3. BusinessTravel:商务差旅频率,Non-Travel表示不出差,Travel_Rarely表示不经常出差,Travel_Frequently表示经常出差;
  4. Department:员工所在部门,Sales表示销售部,Research & Development表示研发部,Human Resources表示人力资源部;
  5. DistanceFromHome:公司跟家庭住址的距离,从1到29,1表示最近,29表示最远;
  6. Education:员工的教育程度,从1到5,5表示教育程度最高;
  7. EducationField:员工所学习的专业领域,Life Sciences表示生命科学,Medical表示医疗,Marketing表示市场营销,Technical Degree表示技术学位,Human Resources表示人力资源,Other表示其他;
  8. EmployeeNumber:员工号码;
  9. EnvironmentSatisfaction:员工对于工作环境的满意程度,从1到4,1的满意程度最低,4的满意程度最高;
  10. Gender:员工性别,Male表示男性,Female表示女性;
  11. JobInvolvement:员工工作投入度,从1到4,1为投入度最低,4为投入度最高;
  12. JobLevel:职业级别,从1到5,1为最低级别,5为最高级别;
  13. JobRole:工作角色:Sales Executive是销售主管,Research Scientist是科学研究员,Laboratory Technician实验室技术员,Manufacturing Director是制造总监,Healthcare Representative是医疗代表,Manager是经理,Sales Representative是销售代表,Research Director是研究总监,Human Resources是人力资源;
  14. JobSatisfaction:工作满意度,从1到4,1代表满意程度最低,4代表满意程度最高;
  15. MaritalStatus:员工婚姻状况,Single代表单身,Married代表已婚,Divorced代表离婚;
  16. MonthlyIncome:员工月收入,范围在1009到19999之间;
  17. NumCompaniesWorked:员工曾经工作过的公司数;
  18. Over18:年龄是否超过18岁;
  19. OverTime:是否加班,Yes表示加班,No表示不加班;
  20. PercentSalaryHike:工资提高的百分比;
  21. PerformanceRating:绩效评估;
  22. RelationshipSatisfaction:关系满意度,从1到4,1表示满意度最低,4表示满意度最高;
  23. StandardHours:标准工时;
  24. StockOptionLevel:股票期权水平;
  25. TotalWorkingYears:总工龄;
  26. TrainingTimesLastYear:上一年的培训时长,从0到6,0表示没有培训,6表示培训时间最长;
  27. WorkLifeBalance:工作与生活平衡程度,从1到4,1表示平衡程度最低,4表示平衡程度最高;
  28. YearsAtCompany:在目前公司工作年数;
  29. YearsInCurrentRole:在目前工作职责的工作年数
  30. YearsSinceLastPromotion:距离上次升职时长
  31. YearsWithCurrManager:跟目前的管理者共事年数;

测试数据主要包括350条记录,30个字段,跟训练数据的不同是测试数据并不包括员工是否已经离职的记录;

通过由训练数据所建立的模型以及所给的测试数据,得出测试数据相应的员工是否已经离职的预测。

预处理

这里还是借助google colab 平台来练习

import pandas as pd
data = pd.read_csv('pfm_train.csv')
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1100 entries, 0 to 1099
Data columns (total 31 columns):
Age                         1100 non-null int64
Attrition                   1100 non-null int64
BusinessTravel              1100 non-null object
Department                  1100 non-null object
DistanceFromHome            1100 non-null int64
Education                   1100 non-null int64
EducationField              1100 non-null object
EmployeeNumber              1100 non-null int64
EnvironmentSatisfaction     1100 non-null int64
Gender                      1100 non-null object
JobInvolvement              1100 non-null int64
JobLevel                    1100 non-null int64
JobRole                     1100 non-null object
JobSatisfaction             1100 non-null int64
MaritalStatus               1100 non-null object
MonthlyIncome               1100 non-null int64
NumCompaniesWorked          1100 non-null int64
Over18                      1100 non-null object
OverTime                    1100 non-null object
PercentSalaryHike           1100 non-null int64
PerformanceRating           1100 non-null int64
RelationshipSatisfaction    1100 non-null int64
StandardHours               1100 non-null int64
StockOptionLevel            1100 non-null int64
TotalWorkingYears           1100 non-null int64
TrainingTimesLastYear       1100 non-null int64
WorkLifeBalance             1100 non-null int64
YearsAtCompany              1100 non-null int64
YearsInCurrentRole          1100 non-null int64
YearsSinceLastPromotion     1100 non-null int64
YearsWithCurrManager        1100 non-null int64
dtypes: int64(23), object(8)
memory usage: 266.5+ KB

可以看到没有缺失值

这里有数值特征还有类别特征,需要把类别特征统一为数值型,这里先看看不同特征对应的离职率,以观察特征的相关性

1、年龄分布

data[['Age','Attrition']].groupby(['Age']).mean().plot.bar()

可以看到十几二十的年轻人比四十多岁的中年人较容易离职

2、出差频率分布

data[['BusinessTravel','Attrition']].groupby(['BusinessTravel']).mean().plot.bar()

这里看到出差越多离职的概率越大

其他特征也可以同样获得分布图

接下来是去除相关性不大(该属性下不同的值离职率差别不大)的特征,保留剩余的特征利用逻辑回归、神经网络、决策树来判别。代码待补充~

超好用的 pandas 之 groupby

数据挖掘实战:员工离职预测(训练赛)相关推荐

  1. 数据挖掘竞赛-员工离职预测训练赛

    员工离职预测 简介 DC的一道回归预测题.是比较基础的分类问题,主要对逻辑回归算法的使用.核心思路为属性构造+逻辑回归. 过程 数据获取 报名参与比赛即可获得数据集的百度网盘地址,这个比赛时间很久,随 ...

  2. 机器学习-员工离职预测训练赛

    [数据来源]DC竞赛的员工离职预测训练赛 一共两个csv表格,pfm_train.csv训练(1100行,31个字段),pfm_test.csv测试集(350行,30个字段) [字段说明] Age:员 ...

  3. 天池竞赛员工离职预测训练赛

    组员:欧阳略.陶奇辉.王曙光.吴轩毅 数据来源:天池大数据竞赛员工离职预测训练赛中的数据 大致数据截图如下 根据所给数据,我组利用Pycharm编程源代码截图如下 最终,我组预测准确率为0.89,基本 ...

  4. 数据挖掘竞赛-美国King County房价预测训练赛

    美国King County房价预测训练赛 简介 DC上的一个回归题(正经的回归题). 比较简单. 时间原因(暂时没什么时间看国内旧赛),看了一下网上的解答,改善了一下神经网络就提交了. 过程 数据获取 ...

  5. 吃鸡排名预测挑战赛 空气质量预测 英雄联盟大师预测 手机行为识别 员工离职预测 猫十二分类体验赛

    1.吃鸡排名预测挑战赛 https://aistudio.baidu.com/aistudio/competition/detail/155/0/introduction 2.空气质量预测https: ...

  6. kaggle员工离职预测——SVC

    一.比赛说明 比赛地址:https://www.kaggle.com/c/bi-attrition-predict 问题描述 数据包括员工的各种统计信息,以及该员工是否已经离职,统计的信息包括工资.出 ...

  7. 员工离职预测(logistic)(R语言)

    员工离职预测(logistic) 出于工作需要及个人兴趣,学习数据分析及R语言是差不多2年前,第一篇更新的文章为m久前做的员工离职预测,当时做这个项目的主要是为了学习logistic算法,数据来源为D ...

  8. 数据分析 回归问题: 美国King County房价预测训练赛

    这是DC竞赛网的一道基础回归问题, 美国King County房价预测训练赛 竞赛详细信息:美国King County房价预测训练赛 任务:从给定的房屋基本信息以及房屋销售信息等,建立一个回归模型预测 ...

  9. r语言员工离职_使用R机器学习进行员工离职预测系列(一)

    最近一直觉得,其实机器学习的门槛并不高,以R语言的角度,甚至稍微学过一点,就可以针对相关数据进行各种算法模型的建立和测试. 而真正有难度的地方一是算法优化部分,二是和对于模型评价的部分,这两个部分往往 ...

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

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

最新文章

  1. WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建
  2. Java中迭代列表中数据时几种循环写法的效率比较
  3. Java发邮件-QQ服务器认证
  4. [Java基础]线程基础与实现多线程
  5. 基于easyui开发Web版Activiti流程定制器详解(一)——目录结构
  6. 可以直接进行运算么_WORD办公技巧:如何直接在WORD中进行加法、乘法运算?
  7. OpenShift 4 - 部署Mirror Registry并复制Image
  8. WebStorm中Node.js项目配置教程(1)——创建项目
  9. oracle 存档终点修改,Oracle 归档模式与非归档模式的切换
  10. 吉林大学计算机学院刘衍衍教授,周柚-吉林大学计算机科学与技术学院
  11. Linux将字符串转化为float,C语言中如何将字符串转换成float和double类型
  12. cpu使用率100%,内存占用不足30%,system进程 pId=4
  13. Android xml 画上半圆 矩形,Android 半圆矩形的实现
  14. uni-app分分钟解决苹果X以上型号黑线条兼容问题
  15. dateframe取某列数据_DataFrame数据选取全攻略
  16. IDEA添加JQuery代码提示
  17. 服务器电源系统,服务器电源系统于新一代数据中心设计的基础意义
  18. 192.168.49.1登录_192.168.49.1路由器登录页面打不开
  19. 包,内部类,常用类,集合
  20. RK3288 编译不过遇到的问题

热门文章

  1. java 微信公众号发红包_【微信支付】现金红包开发者文档
  2. 【解决方案】微信公众号文章加载很慢,图片加载不出来,或者weixin.qq.com这个域名都加载不出来
  3. 尴尬,刚夸完就被罚,因未及时报告Log4j2安全漏洞,阿里云被处罚
  4. 在python中定义函数时不需要声明函数参数的类型_python定义函数时默认参数注意事项...
  5. linux中用来保存组账户的文件,Linux账户管理的几个文件
  6. c++贪吃蛇源代码 完整版
  7. 说说在JAVA中使用Redis,以及Redis分布锁
  8. TypeScript基础入门之Symbols
  9. 至高心法 - SpringCloud Alibaba (二)Nacos 服务注册与配置中心
  10. 纯电动汽车架构设计(一) :电动车架构设计核心与前悬架选择