当前位置:   article > 正文

基于Python的计算机职位数据分析与薪资预测【随机森林、XGBoost、catboost】

基于Python的计算机职位数据分析与薪资预测【随机森林、XGBoost、catboost】

目录

第1章 绪  论

1.1 论文研究主要内容

1.1.1研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.3 研究目的

第2章 研究方法与相关理论

2.1 研究方法

2.2 相关技术理论基础

2.2.1 爬虫介绍

2.2.2 随机森林算法

2.2.3 XGBoost算法

2.2.4 CatBoost算法

第3章 数据获取与可视化展示

3.1 数据采集

3.2 数据预处理

3.3 数据可视化分析

3.3.1 薪资及岗位需求分析

3.3.2 岗位发布时间及行业分析

3.3.3 岗位所需经验相关分析

3.3.4 岗位福利分析

3.3.5 不同公司及行业与薪资关系

第4章 薪资预测模型的构建和结果分析

4.1 建模准备

4.2 模型评价指标

4.3 构建模型

4.3.1 构建CatBoost模型

4.3.2 构建其他回归模型

4.4 对比构建的三种模型

第5章 总结与分析

5.1 本研究创新之处

5.2 本研究不足之处

参考文献

致  谢


需要本项目的可以私信博主,提供部署和远程讲解

项目介绍

本研究旨在探索大数据领域内热门岗位的薪资预测问题,为就业市场提供深入见解。我们从前程无忧网站上获取了关于14种计算机专业岗位的数据,这些岗位包括BI工程师、C++开发工程师、iOS开发工程师、Java开发工程师、Linux、Python、Spark、Web前端开发、数据分析工程师、数据库工程师、测试工程师、深度学习工程师、算法工程师和运维工程师。本研究利用Python编写的数据爬虫程序,结合Selenium和XPath技术,成功采集了14000条数据,涵盖27个字段。这些数据经过细致的预处理和多维度分析,为模型建立和薪资预测奠定了坚实的基础。

在研究过程中,采集到的数据经过了详细的预处理,包括数据清洗和特征工程。在分析中,我们提炼出15个关键分析结论,深入探讨了各岗位的招聘趋势、技能需求和薪资标准等方面的规律和特点。研究进一步对特征进行了处理,包括去除无关变量和对文本数据的编码处理,从而构建了完整有效的特征工程。

在薪资预测的实现上,研究采用了多种机器学习算法进行比较,包括CatBoost、随机森林和XGBoost。考虑到薪资数据的特殊性,即存在固定的上下限,我们创新性地采用了自定义的评估函数。该评估方法不仅考虑了预测薪资是否落在实际薪资的上下限范围内,还依据超出部分的残差值进行评估。经过细致的对比分析,最终发现CatBoost模型在本次薪资预测任务中表现最为出色。最后,研究通过可视化手段直观展示了薪资预测的结果,使分析更加易于理解和应用。

研究结果不仅展示了CatBoost模型在薪资预测方面的有效性,还为计算机行业的求职者和雇主提供了实用的薪资指导。此外,本研究的方法论和发现对于人力资源管理、职业规划以及薪酬体系的优化具有重要的参考价值。

第1章 绪  论

1.1 论文研究主要内容

1.1.1研究背景

在当今快速发展的信息时代,大数据技术正在以前所未有的速度和规模改变着各行各业。随着信息技术的飞速发展,数据的生成和积累达到了前所未有的高度。特别是在互联网和数字化浪潮的推动下,各类数据源源不断地产生并积累起来,这为我们提供了前所未有的分析和应用机会。在这一背景下,如何从海量数据中挖掘有价值的信息,已成为学术界和产业界共同关注的焦点。

 

1.1.2 研究意义

本研究旨在探索大数据背景下热门岗位的薪资预测问题,其研究意义主要体现在以下几个方面。

首先,从理论层面来看,本研究有助于丰富和完善大数据分析与机器学习在薪资预测领域的应用研究。大数据技术和机器学习算法在数据分析和预测中的应用已经成为当前研究的热点,然而,将其具体应用于薪资预测,特别是细分到具体岗位的薪资预测,仍然有较大的研究空间。本研究通过深入分析和对比多种机器学习算法,旨在探索出最适合薪资预测的模型和方法,为后续研究提供参考和借鉴。

 

1.2 国内外研究现状

在大数据和互联网技术迅速发展的背景下,利用数据爬虫技术和数据可视化技术对招聘信息进行分析和预测已成为研究热点。郑灿伟等人基于Scrapy框架对互联网招聘信息进行了可视化技术研究,通过网络爬虫从招聘网站爬取大量招聘岗位数据,并结合数据预处理、数据分析和可视化技术,实现了招聘信息的智能化分析,为高校毕业生求职提供了方向性指导,并帮助高校根据市场需求调整人才培养方案[1]。

 

1.3 研究目的

在当前大数据与人工智能迅猛发展的时代,招聘市场的动态变化和求职者需求的多样化使得传统的招聘信息处理方式显得力不从心。尤其是在信息技术、互联网和大数据分析技术的推动下,企业招聘与求职者匹配的智能化需求愈发迫切。因此,本论文旨在通过大数据爬虫技术、数据分析与可视化技术,对国内外主要招聘网站的招聘信息进行系统化采集、处理与分析,提供科学、系统且精准的招聘信息分析与预测,为企业和求职者提供数据支持和决策依据。

第2章 研究方法与相关理论

2.1 研究方法

本研究的总体路线遵循了系统化和逐步深入的框架,旨在通过综合运用数据采集、预处理、多维度分析、机器学习建模和模型评估的方法,实现对计算机领域热门岗位薪资水平的精准预测。这个研究过程不仅涉及技术层面的探索,更是对当前就业市场趋势的全面分析。

首先,进行数据收集。鉴于前程无忧网站上涵盖了丰富的职位信息和薪资数据,本研究采用了Python编写的数据爬虫程序,结合Selenium和XPath技术,高效地收集数据。这些数据覆盖了计算机领域内14个热门岗位,如BI工程师、C++开发工程师、iOS开发工程师等,涉及的信息包括但不限于岗位名称、工作地点、学历要求、经验要求和薪资范围等27个字段,总计达到14000行有效数据。这一步骤是确保研究有效性的基础,因为高质量的原始数据是准确分析和预测的前提。

接下来是数据预处理阶段。鉴于原始数据中可能存在的噪声、缺失值和异常值,本研究对数据进行了细致的清洗和处理。这包括了缺失值的处理、异常值的识别和剔除,以及数据的标准化处理,以保证后续分析的准确性和可靠性。此外,对于文本类数据,本研究还进行了特征提取和编码处理,如将职位描述转换为可量化的数据,从而为机器学习模型的训练做好准备。

数据预处理之后,本研究进入了多维度数据分析阶段。在这一阶段,我们通过统计分析方法来探索不同变量之间的关系,如教育背景、技能要求与薪资之间的相关性。此外,通过探索性数据分析(EDA)方法,我们还分析了市场的就业趋势、薪资分布等关键指标。这些分析不仅为后续建模提供了重要的洞见,也为理解当前就业市场的动态提供了有价值的信息。

在深入的数据分析基础上,研究进一步转向机器学习模型的构建和训练。本研究比较了多种算法,包括CatBoost、随机森林和XGBoost等,以确定最适合薪资预测的模型。这一阶段的关键在于选择和调优那些能够准确反映薪资决定因素的模型。在模型训练过程中,我们采用交叉验证等方法来优化模型参数,并避免过拟合的问题。

模型构建之后,本研究的重点转移到模型评估和验证上。本研究考虑了预测薪资是否落在实际薪资的上下限范围内,还依据超出部分的残差值来评估模型的性能。通过这种方法,我们能够更准确地评价模型在实际应用中的表现。此外,本研究还对比了不同模型的性能,以确定在薪资预测任务上效果最佳的模型。

最后,研究的重点是将模型应用于实际情境,并进行成果的呈现。我们将模型应用于不同类型的岗位、不同地区和不同规模的企业,以评估其广泛的适用性和实用价值。同时,通过可视化手段直观地展示了薪资预测的结果,使得模型的分析更加易于理解和应用。

2.2 相关技术理论基础

2.2.1 爬虫介绍

爬虫技术在当前的数据驱动社会中,已经成为获取和分析海量网络信息的重要工具。爬虫,亦称网络爬虫或网络蜘蛛,是一种按照既定规则自动访问网页并获取网页内容的程序。其原理和应用范围广泛,在学术研究、商业分析、信息检索等多个领域都具有重要意义。爬虫技术的核心在于其能够高效地遍历和抓取互联网中的公开数据,从而为后续的数据处理和分析奠定基础。

2.2.2 随机森林算法

随机森林算法作为一种集成学习方法,在数据挖掘和机器学习领域中有着广泛的应用。......

2.2.3 XGBoost算法

XGBoost(Extreme Gradient Boosting)算法是一种提升树模型,它在机器学习领域尤其是在回归和分类问题中表现出色。.......

 

2.2.4 CatBoost算法

CatBoost(Categorical Boosting)是一种基于决策树的梯度提升算法,旨在处理包含大量分类特征的数据集,尤其在应对分类特征时表现出色。......

第3章 数据获取与可视化展示

3.1 数据采集

为了深入分析国内就业市场的现状,本研究采用了网络爬虫技术,从著名的在线招聘平台前程无忧获取关键职位信息。在此过程中,主要使用了Python编程语言,结合Selenium库和XPath技术。

Selenium库被选为主要工具,其优势在于能够高效模拟用户的浏览行为,如自动翻页、点击和处理动态加载的内容。爬虫程序首先自动访问前程无忧网站,并导航到指定的招聘信息页面。

通过编写特定的XPath表达式,我们能够准确地从网页的HTML文档中提取出职位名称、公司名称、薪资范围、工作地点和学历要求等关键信息。所有这些数据都被整理为结构化格式,便于后续的分析和处理。

考虑到前程无忧网站界面的不定期更新,我们的爬虫程序在设计上特别注重灵活性和鲁棒性。为适应可能的网页结构变化,我们选择使用JSON格式来存储提取的数据。作为一种简洁高效的数据交换格式,JSON易于阅读和解析,使得爬虫在面对网页细微调整时更加灵活。

在此次数据采集中,我们特别关注了计算机领域内的14个热门职位,共收集了约14000条记录,每条记录包含27个不同的特征。这些数据涵盖了就业市场中的多个关键方面,为我们提供了一份全面而详尽的职位信息数据库,如图3.1所示。

图3.1 数据采集

3.2 数据预处理

在此研究中,对从前程无忧网站搜集的数据进行适当的预处理工作至关重要,这确保了数据的质量,并为之后的分析和建模打下坚实的基础。本研究在处理数据方面采取了一系列策略,旨在提高数据的准确性、完整性和一致性。

首先,对数据集进行了全面的清理和整理。我们剔除了那些对研究目的无关或可能导致误解的变量。例如,职位描述中的非结构化文本信息由于难以进行量化分析,因此被排除在外。同时,为了方便后续的分析,我们还对特征名称进行了重新命名,使其更加直观和一致。

接着,针对数据集中存在的缺失值,我们采取了相应的处理措施。由于缺失数据可能对分析造成偏差,我们细致地审查了所有空白字段,并根据每个特征的特性制定了处理策略。对于一些关键字段,如薪资范围,我们使用了数据插补技术,例如应用平均值或中位数来填补空缺。对于其他次要字段,我们则考虑将含有缺失值的记录直接移除。

特别地,薪资字段接受了额外的关注和处理。考虑到薪资数据的复杂性和多样性,我们不仅对这些数据进行了清洗,还建立了新的薪资计算和范围字段。具体来说,我们将各种形式的薪资信息统一转化为年薪范围,并确保所有的薪资数据转换为统一的货币单位,以保持数据的一致性和可比性。这一步骤对于后续薪资预测模型的准确性和有效性至关重要。处理后的结果如图3.2所示。

图3.2 薪资预处理结果

此外,为了进一步增强数据分析的效能,我们对数据中的分类变量执行了编码转换。例如,变量如工作地点和学历要求被赋予了数值代码,使其能够顺利地融入后续的机器学习过程中。预处理前、后的数据如图3.3、图3.4所示。

图3.3 预处理之前的数据

图3.4 预处理之后的数据

最后,通过删除某时段整行缺失的列和清洗后,得到最后的数据集为11155条数据,如图3.5所示。

图3.5 预处理之后的最终数据

3.3 数据可视化分析

在初步收集数据并进行了详细的预处理后,本研究为数据可视化分析打下了基础。在这一阶段,对薪资水平、学历要求、公司类型、工作经验和岗位福利等多个方面进行了全面的分析。这种横向与纵向的数据探究旨在深入挖掘不同职位特征下的分布规律,既为求职者提供方便,也为招聘方带来价值参考。

3.3.1 薪资及岗位需求分析

不同地区、公司、职位对不同的岗位需求量是不一样的,如何把控好所面试的岗位在哪些方面的条件比较受欢迎是非常重要的。不同地区的职位分布见图3.6。

图3.6 不同地区的职位分布

根据图3.6,我们可以看出某些地区对特定职位的需求明显高于其他地区。例如,像上海、北京、深圳这样的主要城市,职位数量远远超过其他地区。这一现象可能反映了这些城市在相关行业中的发展水平较高,对专业人才的需求也更为强烈。相比之下,一些地区的职位数量相对较少,这可能与当地的经济发展水平、产业结构以及公司总部的地理分布有一定关系。

此外,这种分布还可能.........

后续的也省略,有需要可以私信博主

图3.7 不同学历的薪资分布

 

图3.8 不同公司类型与规模的职位数量分布

 

3.3.2 岗位发布时间及行业分析

由于招聘者需要在前程无忧网站上发布公司所需的人才和要求,他们必须考虑最佳发布时间,即HR在线时间最长的时候。如果发布信息时HR在线,求职者可以立即看到并快速投递简历,从而迅速获得回应。此外,分析不同行业的人才需求量有助于招聘者和招聘方在供需之间找到平衡。一天中每小时的职位发布分布如图3.9所示。

图3.9 一天中各小时职位分布的数量

 

图3.10 不同公司规模的职位发布情况

 

图3.11 不同行业所需人才量

 

3.3.3 岗位所需经验相关分析

图3.12 工作经验与薪资水平分析

 

3.3.4 岗位福利分析

图3.13 福利词云展示

图片来源:自制

图3.14 福利热门词频率可视化

 

3.3.5 不同公司及行业与薪资关系

图3.15 不同公司规模的薪资分布情况

 

图3.16不同行业的薪资水平分布

第4章 薪资预测模型的构建和结果分析

4.1 建模准备

为了深入探究不同行业、职位和环境因素对薪资的影响,并提升职业规划的准确性,本研究采用了三种模型进行薪资预测分析。

......

图4.1 模型结构化数据

在构建模型的过程中,筛选相关特征是一个至关重要的步骤。首先,我们剔除了一些与模型目标无直接关联的变量,以避免它们对模型准确性产生潜在干扰。被移除的变量包括:['职位标题','薪资','发布时间','网页等级排名','职位等级排名','公司名称','福利描述','薪资_分割','薪资下限','薪资上限']。图4.1展示了模型的结构化数据。

........

4.2 模型评价指标

在回归模型的性能评估领域,众多方法被广泛应用。本研究聚焦于回归问题,选取了包括可解释方差、均方根误差、平均绝对误差、均方误差以及R²等指标,并结合测试集上的表现,以此来判断模型的优劣。

可解释方差(EUAR)用于衡量自变量对因变量的解释程度。其值越大,表明自变量对因变量的解释能力越强,即两者之间存在较强的关联。可解释方差的计算公式为

        
               (4-1)

其中,y是真实值,y是预测值,Var 表示方差。这个指标衡量的是预测值与真实值之间差异的分散程度相对于真实值自身分散程度的比例。值越接近1,表示模型预测的分散程度与真实数据的分散程度越接近。

平均绝对误差(MAE)表示预测值与实际值之间绝对误差的平均值,用于评估模型的预测精度。MAE 值越小,表示模型的预测能力越强。与其他评估指标相比,MAE 对异常值和噪声数据的影响较小。其公式为


                  (4.2)

其中,n是样本数量,yi是第i个样本的真实值, yi是第i个样本的预测值。

均方误差(MSE)是评估回归模型预测精度的常用指标之一。它计算了预测值与实际值之间差距的平方的平均值。MSE 值越小,表示模型的预测能力越强。但需注意,MSE 对异常值较敏感。此外,MSE还有一个优点,就是在数学上比MAE更容易处理,因为误差平方后,可以更方便地进行求导和优化。其公式为

                
                     (4.3)

其中, n表示样本数量, yi是第i个样本的真实值,yi是第i个样本的预测值。该公式计算了所有样本的预测值与实际值之间差值的平方的平均值,从而得出模型在整个样本集上的均方误差。

R²用于评估回归模型的预测能力和解释能力,表示模型能够解释样本输出值变化的百分比。R²的值越接近 1,表示模型的拟合效果越好。其计算公式为

                
                     (4.4)

其中, n是样本数量,yi是第i个样本的真实值,yi是第i个样本的预测值,y是真实值的平均值。R2的值越接近1,说明其对数据的拟合表示效果越好。

这些指标从不同角度评估模型的性能,可以根据具体的应用场景和需求选择合适的评价指标。

4.3 构建模型

4.3.1 构建CatBoost模型

CatBoost在训练过程中能够很好地展示其训练进展,通过迭代次数可以观察模型效果的趋势。此外,CatBoost可以处理文本数据,这意味着我们无需对其进行特征编码也能进行模型训练。即使在未调参的情况下,CatBoost的训练效果也是相当出色的。

表4.1 CatBoost模型的训练指标

算法模型

MAE

MSE

RMSE

CatBoost模型

0.67

3642.37

29336381.81

5416.31

4.3.2 构建其他回归模型

随机森林模型的MSE、RMSE、MAE和R²分别.......

表4.2 两种模型的训练指标

算法模型

MAE

MSE

RMSE

XGBoost模型

0.59

4327.43

36705473.30

6058.50

随机森林回归模型

0.63

3866.59

33491441.98

5787.18

通过一系列对比实验,................

4.4 对比构建的三种模型

在回归模型的训练结果中,评估指标主要包括R²、均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)。根据表4.1的数据,CatBoost模型在薪资预测任务中表现出色,特别是在准确度和误差控制方面。较高的R²值表明该模型能够很好地拟合数据,而较低的误差指标则说明了其预测结果的可靠性。这些结果强调了CatBoost在处理此类预测问题时的有效性,为未来类似的数据分析提供了有力的参考。

表4.3 三种模型的训练指标

算法模型

MAE

MSE

RMSE

CatBoost模型

0.67

3642.37

29336381.81

5416.31

XGBoost模型

0.59

4327.43

36705473.30

6058.50

随机森林回归模型

0.63

3866.59

33491441.98

5787.18

基于特定的薪资分布,我们通过回归指标对不同模型进行评估。然而,在实际应用中,我们的薪资预测是基于网站数据进行的,这些数据的薪资范围有上下限。实际上,只要预测结果落在这个范围内,其命中率便可以达到100%。

图4.2 自定义评估结果展示

图4.3 Catboost残差图

图4.4 预测可视化展示

图4.3是残差图,代表了其模型的拟合程度,具有较好的效果。图4.4分别是薪资的实际平均值和上下限值以及模型所预测的数值,通过可视化可知,模型所预测的值绝大部分都落入了我们的上下限中,说明模型的效果是比较好的。

第5章 总结与分析

5.1 本研究创新之处

1. 多维度数据采集与处理

.......

2. 详尽的特征工程

......

3. 多模型比较与自定义评估

.......

4. CatBoost模型的应用与优化

.......

5. 数据可视化与结果展示

.......

6. 实用性与应用前景

.......

7. 未来研究方向

.......

5.2 本研究不足之处

1. 数据样本局限性

......

2. 特征选择的局限

......

3. 模型泛化能力

.......

4. 评估方法的局限

........

每文一语

成长需要时间

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号