第一次写博客,欢迎各位大佬指正!
数据集:通过网盘分享的文件:员工离职预测-数据
链接: https://pan.baidu.com/s/1_HRjgi8kddClgYwTBjradA 提取码: veb9
目录
一、项目简介
目前社会上呈现出一种公司招不到人,大批失业人员的矛盾现象,且大部分公司的离职率居高不下,很多入职没多久就辞职,所花费的培训招聘等资源都浪费了。为了弄清楚公司员工离职原因,通过某一家企业员工离职的真实数据来对离职率进行分析建模。
本项目主要功能包括:
1.数据预处理:机器学习基本概念、数据的读取方式、了解数据的基本信息、处理缺失值、可视化分析。
2.文本特征选择与处理:通过pandas方法获取对应特征和标签、降维、数据基本划分、特征缩放、卡方检验。
3、模型训练与评估:逻辑回归预测、逻辑评估、svm预测、svm评估、决策树预测、决策树评估、基于决策树的bagging的算法预测、基于随机森林优化预测。
二、代码实现
2.1.数据准备
1.导入数据(这里导入的文件格式是.csv,如果是.xlsx文件只需要将pd.read_csv改为pd.read_excel)
# 读取训练集数据
train_data = pd.read_csv(r'D:\data\HR_comma_sep.csv')
train_data
2.查看前五行数据
train_data.head(5)
3.查看后五行数据
train_data.tail(5)
因变量 | 变量名 | 变量名翻译 |
自变量 | left | 是否已经离职 |
satisfaction_level | 对公司的满意度 | |
last_evaluation | 绩效评估 | |
number_project | 参加过的项目 | |
average_montly_hours | 平均每月工作的时长 | |
time_spend_company | 工作年限 | |
Work_accident | 是否发生过工作差错 | |
promotion_last_5years | 五年内是否升职 | |
sales | 职业 | |
salary | 薪资水平 |
4.查看数据描述性统计
train_data.describe()
这些描述性统计数据可以帮助我们初步了解员工的工作情况和离职相关因素的分布情况,为进一步的离职预测模型构建和分析提供基础。例如,满意度水平较低、工作时间较长、晋升机会少等因素可能与离职有一定的关联,后续可以通过更深入的数据分析和建模来确定这些因素对离职的具体影响程度和关系。
5.查看数据基本信息
train_data.info()
可以从图中看出,0-7的数据类型都是float和int型,sales和salary是object型,所以要对这两个标签进行转换,再看没有缺失值,所以不用对缺失值进行填充。
2.2 可视化分析
1.缺失值可视化
我们也可以通过可视化分析,直观的查看数据集是否有缺失值。可以看出,没有缺失值。
#查看缺失值,可以从矩阵图看出没有缺失值
msno.matrix(train_data.sample(train_data.shape[0]), figsiz