1. 背景介绍
习近平总书记指出,人才是推动企业发展的关键,必须实施人才强国战略。在科技迅速进步的背景下,人才成为企业持续成长的核心。尽管如此,企业正面临人才留存的挑战。前程无忧的报告揭示了2023年员工离职率为17.9%。员工流失不仅意味着人员离开,还会给企业带来多方面的影响。因此,人力资源部门需提前了解员工离职原因,采取措施如改善工作环境、提升薪酬和职业发展机会,以降低流失率。随着机器学习和数据挖掘技术在企业管理中的应用,研究员工流失问题变得越来越重要。本文通过机器学习模型分析员工离职数据,旨在找出预测效果最佳的模型,并识别主要离职因素,以期为人力资源政策提供参考。
2. 相关文献综述
离职问题中的传统机器学习理论的应用研究。Sisodia在其研究中,基于人力资源数据集,采用了多种机器学习算法,包括支持向量机(SVM)、C5.0决策树、随机森林以及k最近邻等,构建了员工离职预测模型[1]。通过这些模型,他深入剖析了员工离职的各种潜在因素,并指出了企业需要针对这些因素进行优化,以降低员工离职率,提升企业的稳定性和竞争力。李芸在其研究中,针对国网电力公司的员工离职问题进行了深入探讨。她巧妙地运用了员工离职数据集,结合支持向量机(SVM)的多种核函数,成功构建了员工离职预测模型[2]。
离职问题中数据不平衡问题的相关研究。Gao在深入研究员工离职问题的基础上,通过改进模型,提出了一种改进的随机森林算法,该算法专门用于处理不平衡的员工离职数据。相较于传统的随机森林算法,这种改进版在应对离职数据不平衡时表现出色,其计算精度也得到了显著提升[3]。在实际应用中,这种算法有效地帮助企业和组织识别离职风险,提前采取措施以减少人才流失。万毅斌则针对员工离职数据中的不平衡问题,提出了一种改进的自适应模糊C均值聚类算法[4]。该算法结合了SMOTE采样算法和SVM算法的核技巧,提出了一种基于核空间的聚类过采样算法。这种算法不仅能够有效地处理不平衡数据,还能提高分类器的泛化能力。在此基础上,他进一步结合集成学习算法,提出了针对不同类型企业的综合离职预测模型。这种模型能够根据不同企业的特点和需求,提供个性化的离职预测方案,为企业的人力资源管理提供有力支持。
离职问题中数据可视化的相关研究。为更深入地了解员工离职问题的本质,从而为企业制定更有效的人力资源管理策略提供有力的支持,有学者通过数据可视化的方法直观展现相关的结果。陆亚琳深入研究了数据可视化技术在特征选择方面的应用。她首先通过精心挑选和整理大量的员工离职数据,运用数据可视化的方法,将这些数据以直观、易于理解的形式展现出来[5]。这种可视化技术不仅有助于快速识别离职员工的关键特征,还能够帮助企业更好地理解员工离职的潜在原因。在特征选择的基础上,陆亚琳进一步利用朴素贝叶斯和决策树这两种经典的机器学习算法来构建员工离职预测模型。她通过对比不同模型在离职预测方面的性能,发现朴素贝叶斯和决策树模型在预测员工离职方面具有较高的准确性。此外,她还从多个角度对员工离职预测模型进行了深入的分析与研究,包括模型的稳定性、可解释性以及在实际应用中的可行性等方面。Wild利用主成分分析对员工进行特征选择,通过降维技术将原始的高维数据转化为低维的主成分变量,从而更容易地揭示数据中的关键信息。在此基础上,他使用随机森林算法建立了员工离职模型,并通过实验验证了该模型的准确性。Wild的研究结果表明,基于主成分分析法的随机森林模型在员工离职预测方面具有更高的准确度[6]。这种模型不仅能够有效地识别出影响员工离职的关键因素,还能够为企业提供有针对性的建议,帮助企业更好地应对员工离职问题。
离职问题中各类机器学习混合模型的应用研究。Yunmeng在其研究中,巧妙地运用了K-Means算法对员工进行了细致的分类,随后使用决策树模型进行离职预测分析[7]。这一方法不仅提高了预测的准确性,还有助于企业更好地理解员工离职的潜在原因,从而制定出更为有效的员工离职管理策略。Yogesh通过运用多种模型进行了员工离职预测的研究,他使用了决策树、AdaBoost和随机森林等模型,通过比较不同模型的预测效果,为企业提供了更加全面的离职预测参考[8]。这些模型各自具有不同的特点和优势,能够从不同的角度揭示员工离职的复杂因素。此外,李强则在其研究中采用了更为先进的模型融合技术。他利用AdaBoost和Random Forest模型作为基础模型,通过Stacking模型融合的方式,构建了LRA员工离职预测模型。这种模型融合技术能够充分利用各个基础模型的优点,提高整体预测性能。同时LRA模型还能够帮助企业更准确地评估员工离职风险,为企业制定人力资源管理策略提供有力支撑[9]。
3. 数据处理
(一) 数据来源
本文使用的是Github平台中的员工离职预测数据集,来源于IBM Waton Analytics分析平台分享的真实数据。平台提供的训练数据主要包括1471条记录,共38个属性,个别数据的属性具体说明如表1所示。
Table 1. Summary table of data attributes
表1. 数据属性汇总表
序号 |
字段名 |
含义 |
说明 |
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)进行探索性分析,具体属性见表1。
数据分为三类:目标属性、连续属性和分类属性。文章首先用扇形图展示目标属性分布,了解员工离职比例。接着,用簇状柱形图比较不同月收入员工的离职率,识别高离职风险收入段。此外,使用百分比堆积图分析目标属性与连续、分类属性的关系,探究影响离职率的因素。通过这些分析,全面理解员工离职原因,为员工管理和薪酬策略提供决策支持,并指导数据预处理。
(三) 数据清理
数据清理是数据科学中确保模型性能的关键步骤,直接影响预测结果。我们用Jupyter notebook展示数据清理的有效方法。首先,识别并去除噪声和冗余信息,提高模型效率和准确性。其次,用Pearson相关系数法过滤数据,降低模型复杂度,增强泛化能力。最后,处理非数值型数据、数值型数据和不平衡数据,确保数据质量,为数据分析和模型训练打下坚实基础,构建性能优秀的机器学习模型。
4. 员工离职预测模型
(一) 特征选择
特征选择在机器学习中至关重要,它帮助模型识别并保留对预测结果有影响的特征,同时排除无关或冗余的特征,以优化模型性能。通过减少特征数量,特征选择可以降低模型复杂度,防止过拟合,提高泛化能力,并使模型更简洁易懂。此外,它还能提升训练速度,特别是在处理大规模数据集时。特征选择方法多样,包括统计、模型和机器学习方法。本项目采用递归特征消除(RFE),它通过递归减少特征集规模来评估特征重要性,适用于能够提供特征重要性排序的学习算法,如SVM和随机森林。RFE特别适用于特征数量多且存在多重共线性的情况,有助于消除冗余特征,增强模型泛化能力。
(二) 模型实现
机器学习算法是人工智能的关键部分,包含多种模型,各有其优势和应用场景。员工离职预测是企业人力资源管理的核心任务,准确预测有助于减少人才流失。随着机器学习技术的进步,多种算法被用于此预测。本项目采用决策树、逻辑回归、支持向量机和XGBoost构建员工离职预测模型。
1) 决策树模型的建立
决策树是一种监督学习算法,通过划分数据集构建树形结构进行分类或预测。每个节点代表属性测试,分支代表测试结果,叶节点代表预测结果。构建过程涉及选择最优特征以提高数据“纯净度”。随机森林是集成学习方法,通过多个决策树预测,每棵树在随机数据子集和特征子集上独立训练。对比正常数据和SMOTE处理后的数据在决策树和随机森林模型中的性能,结果包括召回率、准确率和Cohen’s Kappa系数,见表2。
Table 2. Decision tree model evaluation
表2. 决策树模型评估
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显示,随机森林在正常数据上更准确,在SMOTE数据上更可靠。这表明正常数据下随机森林性能更优,能有效学习信息。当数据不平衡时,SMOTE技术提升算法处理能力,增强可靠性。
2) 逻辑回归模型
逻辑回归是一种用于二分类问题的经典模型,尽管名称包含“回归”,但它实际上是一种分类算法。该模型旨在根据输入特征对样本进行分类,通过特征的线性组合和一个非线性激活函数将结果转换为概率值。
逻辑回归模型的数学表示如下:
(1)
其中,y表示预测的类别概率,X是输入特征矩阵,beta是模型的参数。sigmoid函数可以将线性组合的结果映射到0到1之间的概率值,一般采用如下形式的sigmoid函数:
(2)
逻辑回归模型通过最大化似然或最小化损失函数来确定参数beta。常用的损失函数是交叉熵,用于评估模型预测与实际类别的差异。对比正常数据和smote处理数据在逻辑回归模型中的表现,结果包括准确率、Kappa系数、召回率等,详见表3。
Table 3. Logistic regression model evaluation
表3. 逻辑回归模型评估
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中可以明显看出,在正常数据的情况下,逻辑回归模型表现更为出色。这一结果进一步证实了逻辑回归在处理分类问题时的有效性,尤其是在数据分布符合其假设条件时。
3) 支持向量机模型
支持向量机(SVM)是一种用于分类和回归的监督学习算法,旨在通过找到一个超平面来最大化不同类别间的间隔。在二分类问题中,SVM通过最大化间隔来分隔两个类别,其中最接近超平面的数据点(支持向量)决定了超平面的位置。对于非线性问题,SVM使用核技巧将数据映射到高维空间以实现线性可分。常见的核函数有线性核、多项式核和高斯核等。
为了训练高效的SVM模型,我们采取了严格的数据分割策略,将数据分为训练集、测试集和验证集,以评估模型表现并调整参数。在训练过程中,我们特别关注超参数C的选择,它影响模型的正则化程度和对误分类样本的惩罚。C值较大时,模型会减少训练集中的错误分类,但可能导致过拟合;而较小的C值可能减少模型复杂度,避免过拟合,但可能导致欠拟合。
将不同的核函数和C值组成四个模型对比,确认最优模型后对模型进行训练并可视化特征的系数以及评估性能、计算kappa系数,得到的数据如表4所示:
Table 4. SVM model evaluation
表4. 支持向量机模型评估
Model Name |
Accuaracy |
Kappa Score |
ROC AUC Curve value |
SVM |
83.9% |
0.19 |
0.58 |
在支持向量机模型中采用线性核函数,C值为0.01效果最好。
4) XGBoost模型
Table 5. XGBoost model evaluation
表5. 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系数以及召回率、准确率的值如表5所示。
总的来说使用smote数据集得到的XGBoost模型更优。
5. 总结
本文针对员工离职问题,以Github平台上提供的真实员工离职数据集为研究对象,在对数据进行初步处理之后,我们进一步进行了相关性分析。通过分析发现,员工的工作满意度、晋升机会、工作压力等因素与离职意向之间存在显著的相关性。这些发现为我们后续的特征构造提供了重要的参考。本文针对非数值型和数值型数据分别进行了处理。对于非数值型数据,本文采用了one-hot编码的方式进行转换,以便后续模型的训练。对于数值型数据进行归一化处理,以消除不同特征之间的量纲差异对模型的影响。考虑到数据不平衡问题,本文采用了smote过采样技术进行处理。通过对少数类样本进行过采样成功地使数据达到了平衡状态,从而避免了数据不平衡对模型性能的影响。
在构建员工离职预测模型时,本文采用了递归特征消除方法对特征进行了筛选,去除了冗余和无关的特征,提高了模型的泛化能力。随后,分别构建了决策树模型、逻辑回归模型、支持向量机模型和XGBoost模型,并对各个模型的性能进行了对比。实验结果显示,经过smote过采样技术处理过的数据代入XGBoost模型得到的模型性能最好。
当在深入研究本文所提供的观点后,我们可以发现确实存在一些不足之处,这些不足在一定程度上影响了模型的预测能力和方法的可靠性。以下是对这些不足的深入分析和进一步的探讨。首先,调参的困难是机器学习项目中常见的挑战之一。对于本文所涉及的项目,由于涉及的参数较多,仅仅对支持向量机模型的C值进行调整是远远不够的。参数的优化是一个复杂而耗时的过程,需要对算法有深入的理解和实践经验。在未来的工作中,可以尝试使用网格搜索、随机搜索或贝叶斯优化等调参方法,对其他算法的参数进行更细致的调整,从而充分发挥模型的预测能力。其次,数据来源单一和数据维度不充分也是本文的一个显著问题。仅仅依赖Github平台上提供的单一数据集来评估方法的有效性是不够全面的。在实际应用中,不同的数据集可能会表现出不同的特征和规律,因此,使用多个数据集进行对比实验是必要的。此外,数据维度的不足也可能导致模型无法捕捉到足够的信息,从而影响预测结果的准确性和可靠性。为了改进这一点,可以考虑增加一些其他相关指标,以丰富数据维度,进而提高模型的性能和稳定性。
总之,虽然本文在某些方面表现出了一定的不足,但这些不足也为后续的研究提供了改进的方向和思路。通过更深入的研究和实践,相信可以不断优化模型和方法,提高预测结果的准确性和可靠性,为相关领域的发展做出更大的贡献。
基金项目
重庆市研究生科研创新项目(YKJCX2321101)。