安徽合肥 中国人民大学 概率论与数理统计专业100000
摘 要:通过爬虫技术采集到BOSS直聘网站上数据分析和算法两类岗位的招聘信息,经过文本清洗、分词和向量化后,使用随机森林算法分别对两类岗位进行建模调参,选出最佳的模型参数后对模型特征分析。随机森林算法对岗位薪资预测,不仅能帮助求职者基于自身禀赋查询合理的薪资范围,而且提供影响薪资变化的关键因子,帮助其能更有目标和针对性的提升技能,助力更长远的发展晋升。
关键词:文本向量化;Word2Vec;薪资预测;随机森林算法
Salary Analysis and Prediction of Jobs Based on Data Analysis and Algorithm of Online Recruitment
Gao Jingjing
(School of Statistics, Renmin University of China, Beijing 100000)
【Abstract】The recruitment information of data analysis and algorithm positions on the BOSS direct recruitment website is collected through crawler technology. After text cleaning, word segmentation and vectorization, the random forest algorithm is used to model the two positions and adjust the parameters, and select the best one. After the model parameters, the model characteristics are analyzed. The random forest algorithm's job salary prediction can not only help job seekers to query a reasonable salary range based on their own endowments, but also provide key factors that affect salary changes, help them to improve their skills more targeted and targeted, and facilitate longer-term development and promotion .
【Key words】Text Vectorization;Word2Vec;Salary Prediction;Random Forest Algorithm
0引言
人才市场的渠道不畅通和信息不对称是供需问题的关键,企业的招聘信息不能及时、有效、完整的传递给求职者,求职者很难根据实际情况提升自身的技能以适应需求市场的变化,提升匹配率。网络招聘平台成本低、时效性强、覆盖面广、信息反馈及时、经济便捷,已经成为招聘市场的主流方式。但网络招聘信息的数量级非常大,一般求职者只能通过关键字搜索或平台相似度推荐的方法,关注居住地城市的少量的招聘信息,存在严重的信息茧房问题,无法从宏观整体上把控市场行情,难以确定合理的薪资范围、匹配适宜的技能工具,后续的学习提升难以聚焦落地。薪资分析预测关键在于对非结构化文本数据处理,常用的方法有清人工编码、独热编码、TF-IDF、Word2Vec[10-11]等方法。国内也有不少对薪资预测的研究,刘睿伦、章胤等人[1-2]都使用K-means算法对对数据类岗位进行聚类分析,发现企业偏好有经验的求职者,职位技能要求整体高于计算类岗位。黄山等人[3]用Apriori算法挖掘岗位招聘信息,得出城市、学历、经验和薪资都有较高的相关性。朱婷婷[5]对比不同类型岗位在学历、经验和技能等方面的差异,在多个模型对比出随机森林效果最佳。宋倩楠[8]通过随机森林分析了运营物流行业的薪资影响因此,随机森林算法在高纬矩阵上表现较好。彭义春等人[9]使用随机森林、SVM等算法对招聘网站IT类岗位的薪资进行了回归预测。本文通过爬取BOSS直聘的数据分析和算法岗位的招聘信息,使用Word2Vec对结巴中文分词的岗位详情进行特征抽取和向量化,使用随机森林算法对数据分析和算法岗位进行建模预测,帮助求职者找到合理的薪资范围、影响薪资变化的关键因子,帮助其能更有目标和针对性的提升技能,助力更长远的发展晋升。
1数据采集及文本向量化
1.1 BOSS直聘数据采集
本文于2022年6-8月两个月的时间,通过爬取了BOSS直聘网站的数据分析和算法两类岗位10个主要城市的1.75万条有效数据,主要包括结构化文本、非结构化文本(招聘详情)和薪资数。包括数据分析7013条,算法10453条,建模之前会使用重采样技术使得样本均衡。从城市来看,相比于传统岗位,数据类岗位火热起来的时间不长,数据类岗位主要集中在大城市,北京、上海、深圳最多,其次是杭州、广州,其余的5个城市均不足1000条。
图 1 BOSS直聘招聘网站采集的数据
Fig.1 Data collected by BOSS direct recruitment website
1.2 文本向量化处理
采集到招聘数据分为结构化数据和非结构化数据两大类,其中结构化数据包括:结构化的文本、数值;非结构化的文本是岗位关键技能和岗位详情。其中,结构化的文本使用One-Hot独热编码方法进行向量化,而非结构化文本在使用结巴分词后,用Word2Vec稠密向量化。
One-Hot编码是对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征,并且这些特征互斥,每次只有一个激活,因此数据会变成稀疏的。Word2Vec是把每个词语转成50-300维的向量,Goole官方提供的一般是用300维(本文也使用300维),有了词向量就可以进行各种计算,如词语相似度计算、近义词等;也可以通过求均值或其他方法降维后用于各种算法。Word2Vec通过Embedding层将One-Hot编码转化为低维度的连续值(稠密向量),并且其中意思相近的词映射到向量空间中相近的位置。从而解决了One-Hot词汇鸿沟和维度灾难的问题。
2 使用随机森林分类算法进行薪资预测
2.1 建模思路及算法简介
对岗位详情文本信息,通过清洗处理、中文分词和Word2Vec向量化后,与One-Hot编码的结构化特征合并拼接成完整特征。基于网络招聘岗位薪资的千位数是整数的特性,通过薪资标签分组把回归预测转化成更贴近实际情况的多分类问题。由于两类岗位薪资组间差异性较大,因此对数据分析和算法分别建立了薪资预测的随机森林模型,探索薪资的影响因素。
图 2 数据分析及算法岗位的薪资分布
Fig.2 Salary distribution of data analysis and algorithm positions
随机森林是非常具有代表性的Bagging集成算法,它的所有基评估器都是决策树,分类树组成的森林就叫做随机森林分类器。单个决策树的准确率越高,随机森林的准确率也会越高,因为装袋法是依赖于平均值或者少数服从多数原则来决定集成的结果的。随机森林具备节点分裂特征选择随机性,无需在建模前做特征筛选,可使用全部变量进行建模。
装袋法Bagging是一种在原始数据集上通过有放回抽样重新选出i个新数据集来训练分类器的集成技术。它使用训练出来的分类器的集合来对新样本进行分类,然后用多数投票或者对输出求均值的方法统计所有分类器的分类结果,结果最高的类别即为最终标签。
图 3 随机森林Bagging算法的训练过程
Fig.3 The training process of random forest bagging algorithm
2.2 随机森林算法建模调参
n_estimators 是随机森林中树木的数量,即基评估器的数量。参数对随机森林模型的精确性影响是单调的,n_estimators越大,模型的效果往往越好。但是相应的,任何模型都有决策边界,n_estimators达到一定的程度之后,随机森林的精确性往往不在上升或开始波动,并且n_estimators越大,需要的计算量和内存也越大,训练的时间也会越来越长。对于这个参数,是希望在训练难度和模型效果之间取得平衡。
图 4 数据分析岗位n_estimators的学习曲线
Fig.4 Learning curve of n_estimators for data analysis job
图 5 算法岗位n_estimators的学习曲线
Fig.5 Learning curve of n_estimators for algorithm job
由于数据集维度较高、树模型又是天生容易过拟合,因此需要是剪枝参数增加模型的泛化能力。然后通过网格搜索十折交叉验证确定最佳的参数组合,最终确认在数据分析岗位的数据中,森林中树的数量n_estimators =110,数的最大深度max_depth = 25时,模型效果最好;而算法岗位的数据中,n_estimators =180, max_depth =32时,模型效果最好。
表 1 随机森林模型参数及结果
Tab.1 Random Forest Model Parameters and Results
指标 | 数据分析 | 算法 | 意义 |
criterion | gini | gini | 不纯度的衡量指标,有基尼系数gini和信息熵两种选择 |
n_estimators | 110 | 180 | 随机森林中建立的决策树的数目 |
oob_score | True | True | 是否使用袋装法中的袋外样本评估模型的好坏 |
bootstrap | True | True | 构建决策树时是否有放回的抽样 |
max_depth | 25 | 32 | 决策树生长的最大深度 |
min_samles_split | 5 | 10 | 再分支时需要的最小样本数 |
Accuracy | 0.821 | 0.847 | 准确率,正样本被分配正确的概率 |
micro-F1 | 0.806 | 0.835 | 同时兼顾了分类模型的精确率和召回率,是模型精确率和召回率的一种调和平均 |
obb_score | 0.651 | 0.693 | 袋外样本得分 |
2.3 模型特征分析
随机森林模型可以计算每个节点处的信息增益,获得特征对应的重要性,如果信息增益越大,则此特征就越重要。从结构化的5个指标来看,岗位级别都是很重要的影响因素,算法中城市和经验的重要性要高于数据分析,是数据分析门槛和成熟度都相对高因此差异更小。除了新兴产业和前沿行业,算法和数据分析二者的差异不大。从学科专业开看,数据分析偏向统计学和数学,而算法更强调数学和计算机。从工具技能来看,二者差异比较大,但相似性也不少,比如SQL、数据仓库、数据采集加工和预处理、python、机器学习等算法。
图 6 数据分析岗位特征重要性评分 Fig.6 Data analysis job importance scoreof feature | 图 7 算法岗位特征重要性评分 Fig.7 Algorithm Jobs importance score of feature |
3 结束语
在当前的经济下行、疫情反复、失业总量增长、结构性失衡等问题下,数据类岗位也出现了供大于求得的局面,学历、技术和项目门槛都日益提高。对于新入行或者应届生来说,没有足够的项目经验,冷启动是一个很难的事。因此需要加强对数学原理推导和拆包实现的能力,在数据分析语言上至少要掌握Python,同时具备R语言能力更好。至少学会一门编程语言及数据库原理。如果选择算法方向,尽量要深造到研究生学历,并选择一或两个垂直方向,切勿多而不精;不仅要紧跟学术和科研发展,还要了解企业落地实施,在学习算法和框架上也要兼顾发展,避免以后到职场水土不服。可以多参加企业也比较认可Kaggle、阿里云天池、华为云大赛平台的公开比赛。不管是数据分析还是算法类岗位,都呈现出日益专业,走向垂直细分的趋势,数据工具及思路方法逐渐成为一种通用工具,需要跟具体的领域、展业或项目深入结合,成为具备工具和解决方案的复合型人才,才有更好的发展前景。求职者应该紧跟行业发展动态和职位需求变化,结合自身的情况,选择适合的垂直领域深挖。
参考文献
[1]刘睿伦, 叶文豪, 高瑞卿,等. 基于大数据岗位需求的文本聚类研究[J]. 数据分析与知识发现, 2017, 1(12):9.
[2]章胤,赵文慧,包恒钥,等.基于k-means和关联度分析的网络招聘信息数据挖掘[J].软件工程,2017,20(5):10-14.
[3]黄山,刘学锋,毛建华,等.基于关联规则的大数据领域人才需求分析[J].工业控制计算机,2017,30(8):78-80.
[4]刘畅. 基于Web文本挖掘的数据分析岗位需求研究[J]. 中国管理信息化, 2018, 21(10):4.
[5]朱婷婷.数据类岗位的人才需求和薪资预测[D].武汉:中南财经大学,2018
[6]张俊峰, 魏瑞斌. 国内招聘类网站的数据类岗位人才需求特征挖掘[J]. 情报杂志, 2018, 37(06): 176-182.
[7]潘博,张青川,于重重,等.Doc2vec在薪水预测中的应用研究[J].计算机应用研究,2018,35(1):155-157.
[8]宋倩楠.云南省物流人才岗位薪资影响因素分析[D].昆明:云南大学,2019
[9]彭义春,张捷,覃左仕. 基于随机森林算法的职位薪资预测[J]. 智能计算机与应用,2021,11(10):67-72.
[10]MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word rep resentations in vector space[J]. Computer Science, 2013: 1301-3781.
[11]Le Q,Mikolov T. Distributed representations of sentences and documents [C]. International Conference on Machine Learning. 2014: 1188-1196.
作者简介:高敬敬(1987.07-)女,安徽合肥人,硕士学历,无职称,主要研究方向:机器学习,自然语言,BI智能可视化