习近平总书记指出,人才是推动企业发展的关键,必须实施人才强国战略。在科技迅速进步的背景下,人才成为企业持续成长的核心。尽管如此,企业正面临人才留存的挑战。前程无忧的报告揭示了2023年员工离职率为17.9%。员工流失不仅意味着人员离开,还会给企业带来多方面的影响。因此,人力资源部门需提前了解员工离职原因,采取措施如改善工作环境、提升薪酬和职业发展机会,以降低流失率。随着机器学习和数据挖掘技术在企业管理中的应用,研究员工流失问题变得越来越重要。本文通过机器学习模型分析员工离职数据,旨在找出预测效果最佳的模型,并识别主要离职因素,以期为人力资源政策提供参考。
离职问题中的传统机器学习理论的应用研究。Sisodia在其研究中,基于人力资源数据集,采用了多种机器学习算法,包括支持向量机(SVM)、C5.0决策树、随机森林以及k最近邻等,构建了员工离职预测模型
离职问题中数据不平衡问题的相关研究。Gao在深入研究员工离职问题的基础上,通过改进模型,提出了一种改进的随机森林算法,该算法专门用于处理不平衡的员工离职数据。相较于传统的随机森林算法,这种改进版在应对离职数据不平衡时表现出色,其计算精度也得到了显著提升
离职问题中数据可视化的相关研究。为更深入地了解员工离职问题的本质,从而为企业制定更有效的人力资源管理策略提供有力的支持,有学者通过数据可视化的方法直观展现相关的结果。陆亚琳深入研究了数据可视化技术在特征选择方面的应用。她首先通过精心挑选和整理大量的员工离职数据,运用数据可视化的方法,将这些数据以直观、易于理解的形式展现出来
离职问题中各类机器学习混合模型的应用研究。Yunmeng在其研究中,巧妙地运用了K-Means算法对员工进行了细致的分类,随后使用决策树模型进行离职预测分析
(一) 数据来源
本文使用的是Github平台中的员工离职预测数据集,来源于IBM Waton Analytics分析平台分享的真实数据。平台提供的训练数据主要包括1471条记录,共38个属性,个别数据的属性具体说明如
序号 |
字段名 |
含义 |
说明 |
1 |
Age |
员工年龄 |
数值 |
2 |
Attrition |
员工离职状态 |
其中,0表示已离职,1表示未离职,这是目标预测值,即目标属性 |
3 |
Business Travel |
商务差旅频率 |
Travel Rarely表示不经常出差 Travel Frequently表示经常出差 Non Travel表示不出差 |
4 |
Department |
员工所在部门 |
Sales表示销售部 Research & Development表示研发部 Human Resources表示人力资源部 |
5 |
Distance From Home |
公司跟家庭住址的距离 |
从1到29,1表示最近,29表示最远 |
6 |
Education |
员工的受教育程度 |
从1到5,5表示教育程度最高 |
7 |
Eduration Field |
员工所学习的专业领域 |
Life Sciences表示生命科学 Technical Degree表示技术学位 Human Resources表示人力资源 Other表示其他 |
8 |
Environment Satisfaction |
员工对于工作环境的满意程度 |
从1到4,1的满意程度最低,4的满意程度最高 |
9 |
Job Role |
工作角色 |
Sales Executive是销售主管 Research Scientist是科学研究员 Laboratory Technician是实验室技术员 Manufacturing Director是制造总监 Healthcare Representative是医疗代表 Manager是经理 Sales Representative是销售代表 Research Director是研究总监 Human Resources是人力资源 |
10 |
JobSsatisfaction |
工作满意度 |
从1到4,1代表满意程度最低,4代表满意程度最高 |
11 |
Marital Status |
员工婚姻状况 |
Single代表单身 Married代表已婚 Divorced代表离婚 |
12 |
Monthly Income |
员工月收入 |
数值 |
13 |
Num Companies Worked |
员工曾经工作过的公司数 |
数值 |
14 |
Percent Salary Hike |
工资提高的百分比 |
数值 |
(二) 探索性分析
在该数据集中,拥有38个属性,涵盖了员工的多方面信息。这些属性中,最重要的是Attrition,这是目标属性,它揭示了员工的离职状态。Attrition的研究对于公司来说至关重要,因为它直接关系到公司的员工稳定性、工作效率和整体竞争力。
由于数据集中的“Employee Number”只是员工的唯一标识符,没有提供关于员工行为或态度的任何有价值的信息。因此在后续分析中删除这一属性。在剩余的属性中,月费率(MonthlyRate)、小时费率(HourlyRate)、日费率(DailyRate)这三个属性在本质上都是衡量员工薪酬的指标,只是时间单位不同。为了避免数据冗余和共线性,本文主要对月收入(MonthlyRate)进行探索性分析,具体属性见
数据分为三类:目标属性、连续属性和分类属性。文章首先用扇形图展示目标属性分布,了解员工离职比例。接着,用簇状柱形图比较不同月收入员工的离职率,识别高离职风险收入段。此外,使用百分比堆积图分析目标属性与连续、分类属性的关系,探究影响离职率的因素。通过这些分析,全面理解员工离职原因,为员工管理和薪酬策略提供决策支持,并指导数据预处理。
(三) 数据清理
数据清理是数据科学中确保模型性能的关键步骤,直接影响预测结果。我们用Jupyter notebook展示数据清理的有效方法。首先,识别并去除噪声和冗余信息,提高模型效率和准确性。其次,用Pearson相关系数法过滤数据,降低模型复杂度,增强泛化能力。最后,处理非数值型数据、数值型数据和不平衡数据,确保数据质量,为数据分析和模型训练打下坚实基础,构建性能优秀的机器学习模型。
(一) 特征选择
特征选择在机器学习中至关重要,它帮助模型识别并保留对预测结果有影响的特征,同时排除无关或冗余的特征,以优化模型性能。通过减少特征数量,特征选择可以降低模型复杂度,防止过拟合,提高泛化能力,并使模型更简洁易懂。此外,它还能提升训练速度,特别是在处理大规模数据集时。特征选择方法多样,包括统计、模型和机器学习方法。本项目采用递归特征消除(RFE),它通过递归减少特征集规模来评估特征重要性,适用于能够提供特征重要性排序的学习算法,如SVM和随机森林。RFE特别适用于特征数量多且存在多重共线性的情况,有助于消除冗余特征,增强模型泛化能力。
(二) 模型实现
机器学习算法是人工智能的关键部分,包含多种模型,各有其优势和应用场景。员工离职预测是企业人力资源管理的核心任务,准确预测有助于减少人才流失。随着机器学习技术的进步,多种算法被用于此预测。本项目采用决策树、逻辑回归、支持向量机和XGBoost构建员工离职预测模型。
1) 决策树模型的建立
决策树是一种监督学习算法,通过划分数据集构建树形结构进行分类或预测。每个节点代表属性测试,分支代表测试结果,叶节点代表预测结果。构建过程涉及选择最优特征以提高数据“纯净度”。随机森林是集成学习方法,通过多个决策树预测,每棵树在随机数据子集和特征子集上独立训练。对比正常数据和SMOTE处理后的数据在决策树和随机森林模型中的性能,结果包括召回率、准确率和Cohen’s Kappa系数,见
Model Name |
Accuaracy |
Kappa Score |
ROC AUC Curve value |
Decision tree with normal data |
84.23% |
0.25 |
0.61 |
Random forest with normal data |
87.72% |
0.26 |
0.59 |
Decision tree with smote data |
79.61% |
0.25 |
0.64 |
Random forest with smote data |
86.68% |
0.36 |
0.65 |
2) 逻辑回归模型
逻辑回归是一种用于二分类问题的经典模型,尽管名称包含“回归”,但它实际上是一种分类算法。该模型旨在根据输入特征对样本进行分类,通过特征的线性组合和一个非线性激活函数将结果转换为概率值。
逻辑回归模型的数学表示如下:
(1)
其中,y表示预测的类别概率,X是输入特征矩阵,beta是模型的参数。sigmoid函数可以将线性组合的结果映射到0到1之间的概率值,一般采用如下形式的sigmoid函数:
(2)
逻辑回归模型通过最大化似然或最小化损失函数来确定参数beta。常用的损失函数是交叉熵,用于评估模型预测与实际类别的差异。对比正常数据和smote处理数据在逻辑回归模型中的表现,结果包括准确率、Kappa系数、召回率等,详见
Model Name |
Accuaracy |
Kappa Score |
ROC AUC Curve value |
Logistic Regression with normal data |
88.04% |
0.42 |
0.67 |
Logistic Regression with smote data |
78.53% |
0.35 |
0.73 |
从
3) 支持向量机模型
支持向量机(SVM)是一种用于分类和回归的监督学习算法,旨在通过找到一个超平面来最大化不同类别间的间隔。在二分类问题中,SVM通过最大化间隔来分隔两个类别,其中最接近超平面的数据点(支持向量)决定了超平面的位置。对于非线性问题,SVM使用核技巧将数据映射到高维空间以实现线性可分。常见的核函数有线性核、多项式核和高斯核等。
为了训练高效的SVM模型,我们采取了严格的数据分割策略,将数据分为训练集、测试集和验证集,以评估模型表现并调整参数。在训练过程中,我们特别关注超参数C的选择,它影响模型的正则化程度和对误分类样本的惩罚。C值较大时,模型会减少训练集中的错误分类,但可能导致过拟合;而较小的C值可能减少模型复杂度,避免过拟合,但可能导致欠拟合。
将不同的核函数和C值组成四个模型对比,确认最优模型后对模型进行训练并可视化特征的系数以及评估性能、计算kappa系数,得到的数据如
Model Name |
Accuaracy |
Kappa Score |
ROC AUC Curve value |
SVM |
83.9% |
0.19 |
0.58 |
在支持向量机模型中采用线性核函数,C值为0.01效果最好。
4) XGBoost模型
Model Name |
Accuaracy |
Kappa Score |
ROC AUC Curve value |
XGBoost with normal data |
88.04% |
0.40 |
0.66 |
XGBoost with smote data |
88.31% |
0.44 |
0.68 |
XGBoost通过添加新的决策树来提升模型性能,尤其擅长处理复杂非线性问题。但有时它可能不足以达到最佳精度,因此我们采用堆叠技术,结合多个模型的预测结果来训练一个最终模型。本项目中,我们将决策树模型叠加在XGBoost之上,利用决策树来学习并优化XGBoost的预测模式,从而捕捉更多数据细节。
将正常数据和smote过采样技术处理过的数据代入XGBoost模型对比,得到的准确率、Kappa系数以及召回率、准确率的值如
总的来说使用smote数据集得到的XGBoost模型更优。
本文针对员工离职问题,以Github平台上提供的真实员工离职数据集为研究对象,在对数据进行初步处理之后,我们进一步进行了相关性分析。通过分析发现,员工的工作满意度、晋升机会、工作压力等因素与离职意向之间存在显著的相关性。这些发现为我们后续的特征构造提供了重要的参考。本文针对非数值型和数值型数据分别进行了处理。对于非数值型数据,本文采用了one-hot编码的方式进行转换,以便后续模型的训练。对于数值型数据进行归一化处理,以消除不同特征之间的量纲差异对模型的影响。考虑到数据不平衡问题,本文采用了smote过采样技术进行处理。通过对少数类样本进行过采样成功地使数据达到了平衡状态,从而避免了数据不平衡对模型性能的影响。
在构建员工离职预测模型时,本文采用了递归特征消除方法对特征进行了筛选,去除了冗余和无关的特征,提高了模型的泛化能力。随后,分别构建了决策树模型、逻辑回归模型、支持向量机模型和XGBoost模型,并对各个模型的性能进行了对比。实验结果显示,经过smote过采样技术处理过的数据代入XGBoost模型得到的模型性能最好。
当在深入研究本文所提供的观点后,我们可以发现确实存在一些不足之处,这些不足在一定程度上影响了模型的预测能力和方法的可靠性。以下是对这些不足的深入分析和进一步的探讨。首先,调参的困难是机器学习项目中常见的挑战之一。对于本文所涉及的项目,由于涉及的参数较多,仅仅对支持向量机模型的C值进行调整是远远不够的。参数的优化是一个复杂而耗时的过程,需要对算法有深入的理解和实践经验。在未来的工作中,可以尝试使用网格搜索、随机搜索或贝叶斯优化等调参方法,对其他算法的参数进行更细致的调整,从而充分发挥模型的预测能力。其次,数据来源单一和数据维度不充分也是本文的一个显著问题。仅仅依赖Github平台上提供的单一数据集来评估方法的有效性是不够全面的。在实际应用中,不同的数据集可能会表现出不同的特征和规律,因此,使用多个数据集进行对比实验是必要的。此外,数据维度的不足也可能导致模型无法捕捉到足够的信息,从而影响预测结果的准确性和可靠性。为了改进这一点,可以考虑增加一些其他相关指标,以丰富数据维度,进而提高模型的性能和稳定性。
总之,虽然本文在某些方面表现出了一定的不足,但这些不足也为后续的研究提供了改进的方向和思路。通过更深入的研究和实践,相信可以不断优化模型和方法,提高预测结果的准确性和可靠性,为相关领域的发展做出更大的贡献。
重庆市研究生科研创新项目(YKJCX2321101)。