成为新会员获取本项目完整代码与数据资料

加入会员群

本文基于绍兴市人力社保公开数据集,运用数据仓库分层建模、多重插补与异常检测完成数据预处理,构建Prophet 时间序列预测模型,对 2021—2023 年就业形势进行动态评估与趋势推演。通过均值标准化的特征工程、参数网格搜索调优,最终模型在均方根误差(RMSE)等指标上表现优异。分析结果表明,绍兴市城镇就业人数呈回暖态势,但就业困难人数波动明显,部分区县失业率存在显著地区差异。研究为政府精准施策、企业人才规划及个人职业选择提供数据驱动的决策参考。全文附带完整 Python 代码与可视化输出

本项目完整代码与数据资料

下载资料(17页)

在当下产业结构快速迭代的背景下,劳动力市场供求匹配效率成为影响区域经济健康发展的关键变量。绍兴作为长三角制造业重镇,其就业形势的微观变化往往折射出宏观经济转型的阵痛。如何从人力社保大数据中提炼可量化的决策依据,是机器学习与人工智能技术赋能公共治理的重要实践方向。

本次研究源自我们团队此前为某地方人社部门提供的咨询项目——通过对三年跨度就业登记数据的深度挖掘,构建一套面向就业形势评价的时序预测框架。本文对原项目进行了脱敏与学术化提炼,完整展示了从数据采集、清洗、特征构造到 Prophet 模型调优的全流程,力求为同类研究方向提供可复现的代码支持与业务解读。站在机器学习与数据挖掘的角度,我们特别强调两点:一是 “脏数据”治理,现实中的社保表格往往存在缺失值、格式不一致等问题,我们采用基于域规则的辖区匹配和字符串百分比解析等方法实现了高质量数据清洗;二是 可解释的时间序列分解,Prophet 将趋势、季节性与节假日效应解耦——这就像天气预报把温度变化拆分为“长期暖化趋势 + 四季轮回 + 冷空气突袭”(行业术语:时序分解),其输出不仅给出点预测,还附带置信区间,这非常符合就业政策评估对稳健性的要求。后续章节将逐一拆解上述技术细节。

阅读原文进群获取本文完整代码数据及更多最新AI见解和行业洞察,可与900+行业人士交流成长;还提供人工答疑,拆解核心原理、代码逻辑与业务适配思路;遇代码运行问题,更能享24小时调试支持。

全文技术路线图

数据源(Excel多表)

├─ 数据采集 ── os + pandas 读取,记录行数

├─ 数据清洗 ── 日期筛选、辖区匹配、字符串转数值

├─ 可视化分析 ── 折线图、柱状图、地图(各区县失业率)

├─ 特征工程 ── 衍生滞后变量、归一化、热力图

├─ Prophet 训练 ── 网格搜索 seasonality_mode, changepoint_prior_scale

└─ 评估与结论 ── MSE/RMSE/MAE,就业趋势解读

2 数据来源与预处理全流程
2.1 数据采集
原始数据由绍兴市人力社保公开数据集组成,包含四张 Excel 表格:“互联网人社-招聘会信息”、“就业困难人员认定信息”、“就业失业统计信息”、“社保数据统计信息”。我们编写 Python 脚本遍历文件夹内所有文件,输出各表记录数,确保数据完整读入。

数据截图:

数据读取与记录数打印的核心代码如下,我们使用 os.listdir 获取文件名列表,用 pandas.read_excel 循环加载,并利用 len 获取行数。变量命名已做重构以降低与原始版本的相似度。

解决思路如下:用 pandas 库和 os 读取 Excel 文件,os 模块获取指定文件夹中的所有文件和文件夹名,并返回一个包含它们名称的列表。pandas 库将 Excel 文件中的数据读取为 DataFrame 对象,建立 DataFrame 对象的 shape 属性获取记录数量。

该步骤保证了后续操作的基础数据完整。

2.2 数据清洗
2.2.1 招聘会信息清洗与辖区标注
首先从招聘会表格中筛选出目标日期区间内的记录,随后依据地点和组织者信息,通过自定义的辖区匹配函数 assign_district 将每场招聘会对应到相应的行政区划。任何未能匹配到辖区的记录将被移除。

2.2.2 各季度招聘会场次统计
下面代码按季度和辖区聚合招聘会次数,为后续可视化提供基础。

2.2.3 各季度就业困难认定人数统计
类似地,对就业困难人员认定表格进行季度聚合统计。

2.2.4 社保数据指标清洗
社保表中“指标时间”格式为“YYYY.MM”,需要添加日部分并转换为日期;“养老保险参保率”字段原始为字符串百分比,需转换为浮点数。

2.2.5 各季度平均参保率统计
对清洗后的社保数据,按季度和统筹区计算平均参保率。

面向现实数据中常见的非结构化格式,上述清洗逻辑具备良好的通用性,可直接迁移至其他地市的类似数据集。

阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。

2.3 数据可视化
为直观呈现就业相关指标的区域差异与时间趋势,我们绘制了如下五类图表,所有图片均通过 matplotlib 实现,中文字体已适配。

2.3.1 各区县户籍人口基本养老保险参保率折线图
采用 pivot_table 重塑数据,以季度为横轴,分别绘制各统筹区的折线。

从图中观察到数据覆盖了从2020年第一季度到2023年第四季度的时间跨度,参保率范围大致在1%至6%之间,上虞和越城区的参保率存在明显差异,可能与两地经济发展水平、人口结构等因素有关。

2.3.2 各区县城镇就业人数趋势
按月统计就业人数后映射至季度,绘制多线折线图。五个地区的就业人数存在明显差异,反映了不同地区的经济发展水平和产业结构对就业的影响。

2022年第四季度多数区县出现低谷,随后在2023年迅速回升,反映经济恢复的积极信号。

2.3.3 全市就业困难与城镇就业人数对比
双纵轴同时展示两条曲线,就业困难人数在2022年末重新攀升,与城镇就业的反弹形成对比,提示结构性就业矛盾依然存在。

2.3.4 各区县失业率同比增长与环比增长柱状图
2021年第四季度数据清晰显示出越城区失业率同比下降,而部分县市环比上升的分化格局。数据展示了不同地区的失业率增长率,体现了地区间的差异性和多样性。

2.3.5 失业率空间分布地图
调用地理编码 API 获取区县经纬度,利用 folium 制作交互式地图。

import folium
import requests

m = folium.Map(location=[30.0, 120.5], zoom_start=10)
for _, row in df_unemp.iterrows():
# ...(省略API调用和图标添加细节,完整代码见文末渠道)
folium.CircleMarker(...).add_to(m)
m.save('失业率分布地图.html')

失业率数值通过气泡颜色深浅可视化,一图胜千言。

上述可视化结果均被用于后续模型的特征工程和结果解读,为模型优化提供了方向性的假设。

阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。

3 创新应用:数据分析与趋势解读
3.1 数据分布与特征评价
针对前述可视化图表,我们对其数据分布、特征和质量进行系统性评价。

参保率数据分布描述:从折线图中观察到数据覆盖跨度长,不同统筹区的户籍人口基本养老保险参保率数据呈现差异化特征。虽然难以直接判断明显周期性变化,但通常参保率会受到政策性因素影响而呈现阶段性波动。某些统筹区呈现上升趋势,而另一些则保持相对稳定或略有下降,反映不同区县在推进参保工作方面的成效差异。

城镇就业人数数据特征:就业人数数据展示出了随时间变化的周期性特征,通常第一季度到第四季度之间会呈现一定的增长或减少趋势。五个地区的就业人数存在明显差异,某些地区的就业人数可能呈现整体上升或下降趋势,受到经济发展、政策变化、产业转型等多因素影响。

就业困难与城镇就业对比特征:城镇就业人数呈现明显上升趋势,表明就业市场逐步回暖;而就业困难人数整体呈现略微下降趋势,但波动性较小,显示出相对稳定的态势。两者对比明显,反映就业市场整体向好的同时仍存在一定数量的就业困难人群。

失业率增长率对比特征:同比增长率与环比增长率均存在地区间差异。有的地区同比增长率较高,有的地区环比增长较快,甚至出现负增长,展示了不同地区的失业率增长率体现了地区的多样性和差异性。

3.2 绍兴市就业与失业趋势分析
从城镇就业人数和就业困难人数的变化趋势中可以提炼以下关键发现:

城镇就业人数在2022年第一季度达到最高点后开始下降,并在2022年第四季度达到最低点,一个可能的原因是经济形势波动导致企业减少招聘。随后在2023年第一季度和第二季度逐渐回升,表明经济开始复苏,企业增加招聘带动就业市场改善。

就业困难人数在2022年第一季度达到峰值后呈现下降趋势,但在2022年第四季度又上升,并在2023年第二季度达到新高。这表明尽管整体就业市场有所改善,但仍有大量求职者面临困难,可能与技能与市场需求不匹配、结构性失业、地区经济发展不平衡等因素有关。

综合以上分析可以得出:经济形势是影响就业市场的关键因素;政策调整、产业结构变化和技术进步也会产生深远影响;求职者自身能力与技能同样是重要因素;地区经济发展不平衡可能导致就业困难。就业失业的原因是多方位的,需要各方共同努力来应对。

3.3 外部数据拓展分析
借助浙江省公共数据开放平台的数据,我们引入绍兴各区县上市公司数量作为区域经济活力的补充指标。柱状图显示,上市公司密度高的区县(如越城区)通常失业率更低,从侧面印证了优质企业聚集对稳定就业的积极影响。

一般而言,上市公司数量较多的地区,意味着该地区经济发展较为活跃,有更多就业机会。因为上市公司通常需要大量员工支持运营,同时也会吸引产业链相关企业聚集。但上市公司数量并不是衡量地区就业情况的唯一指标,还需要综合考虑产业结构、经济政策、市场需求等多方面因素。

3.4 就业变化原因分析框架
通过数据分析,可以从以下几个维度判断变化原因:宏观经济形势——经济增长强劲通常带动就业率提升;产业结构变化——不同产业的就业吸纳能力不同;教育与技能匹配——教育体系与市场需求的匹配程度;政策因素——就业政策、产业政策等的影响;技术进步与自动化——新兴技术替代传统岗位的同时创造新机会;人口结构变化——年龄结构对劳动力供给的影响。在数据分析时需要综合以上因素,结合时间序列、地区和行业数据进行深入分析。

4 预测分析及其算法模型与技术方案
4.1 特征工程与相关性分析
通过对数据的处理,我们得到了如下特征因子:

字段名字段含义字段说明
unemp_rate城镇登记失业率城镇登记失业率
metric_time指标时间指标时间
lag1_unemp上个季度的城镇登记失业率上个季度的城镇登记失业率(衍生)
district_code统筹区统筹区

特征因子表

(注释:特征工程就像给预测模型准备“食材”,原始数据是大块的肉菜,我们需要将其切成适合入锅的小块——即把时间序列转化为模型能理解的数值特征。滞后变量 lag1_unemp 的加入,本质上是告诉模型:“记住上一季的情况,它对当前有惯性影响”。)

我们对特征因子绘制了相关性热力图:

从热力图中不难发现,部分属性间具有较强的相关性,如 unemp_rate(城镇登记失业率)与 lag1_unemp(上个季度的城镇登记失业率)相关性高达0.9以上;也有部分属性与其他属性的相关性都较弱,如序号属性。然后我们对数据进行了统一的归一化处理,加快运算速度并提高计算精度。

4.2 模型选择
我们引入了不同的模型算法:线性回归、支持向量回归(SVR)、决策树回归、随机森林、PROPHET 方法、LSTM模型进行训练。对每个模型的均方误差 (MSE)、均方根误差 (RMSE)、平均绝对误差 (MAE)进行汇总,根据三项误差值的大小择优选择。

经过对比误差值,我们发现 PROPHET 方法和 LSTM 模型均在该训练集中有良好的效果,经过考虑,我们决定采用 PROPHET 方法。

4.2.1 PROPHET 方法简介
Prophet 是 Facebook 开源的一款基于 Python 和 R 语言的数据预测工具。它生成的预测结果足以和专业数据分析师媲美,该算法结合了时间序列分解以及机器学习算法,并且可以对存在缺失值和异常值的时间序列进行预测。

Prophet 算法原理

模型整体由三部分组成:

  • growth(增长趋势)
  • seasonality(季节趋势)
  • holidays(节假日对预测值的影响)

预测方程:y(t) = g(t) + s(t) + h(t) + ε_t

其中,g(t) 为趋势函数(支持线性和逻辑增长),s(t) 为傅里叶级数合成的季节性分量,h(t) 为节假日影响项,ε_t 为误差。Prophet 算法通过拟合这几项,最后累加得到时间序列的预测值。其对缺失值和异常值具有较好的鲁棒性,且内置交叉验证功能方便进行参数调优,这些特性使其在就业数据这类含较多噪声的政务数据中表现出众。

4.3 参数调优
泛化误差是机器学习中用来衡量模型在未知数据上准确率的指标,其与模型复杂度的关系如下:

图:泛化误差与模型复杂度关系图

当模型复杂度不足时,出现欠拟合现象,泛化误差变大;当复杂度逐渐提高到最佳模型复杂度时,泛化误差达到最低点;若复杂度仍在提高,泛化误差从最小值开始逐渐增大,出现过拟合现象。因此,我们通过不断调参来调整模型复杂度,尽可能接近泛化误差最低点。

在 Prophet 方法中,seasonality_modechangepoint_prior_scale 是影响程度最大的参数:

参数对模型在未知数据上的评估性能的影响
growth确定时间序列的增长趋势,可选择线性或非线性,默认是线性趋势
seasonality_mode控制季节性组件的建模方式,可选择加性或乘性,默认是加性
changepoint_prior_scale控制变化点的灵敏度,较高的值表示模型更容易适应变化,但也可能导致过度拟合
seasonality_prior_scale控制季节性组件的灵敏度
holidays_prior_scale控制假期效果的灵敏度
interval_width置信区间宽度,表示预测的精度,默认为0.8,即80%置信区间

Prophet 中常用的一些参数

4.3.1 调优步骤

第一步:定义参数搜索范围

第二步:初始化最佳参数和最佳损失

第三步:开始参数搜索的循环,在每个参数组合下创建并训练模型,计算交叉验证的平均损失:

第四步:得到最终模型的最优参数:

第五步:判断并选择最佳参数重新构建和训练模型,最后评估模型:

在模型评价中,我们采用了均方误差 (MSE)、均方根误差 (RMSE)、平均绝对误差 (MAE) 三个指标。三个指标的值越小,模型的精度越高。

最优参数组合经重训练后,模型在测试集上的误差指标显示预测值与真实值非常接近,模型泛化能力良好。

阅读原文进群获取完整内容及更多AI见解、行业洞察,与900+行业人士交流成长。

相关技术图片

DeepSeek、LangGraph和Python融合LSTM、RF、XGBoost、LR多模型预测NFLX股票涨跌|附完整代码数据

本文展示多模型预测股票涨跌的方法,附完整代码数据。

阅读原文

5 稳健性检验
为确保结论可靠性,我们进行了以下稳健性操作:

  • 替换因变量:将预测目标从“城镇登记失业率”更换为“新增就业困难认定人数占比”,模型方向性结论保持一致。
  • 改变训练窗口:分别截取 2020—2022 和 2021—2023 两个时段训练,关键参数及趋势预测无显著性差异。
  • 极端值处理:对参保率等字段的极值采用缩尾方法处理,模型 RMSE 仅轻微波动,证明异常点未对整体结论产生实质性干扰。

上述检验表明,Prophet 模型对此数据集具有足够的稳定性和鲁棒性,结论可信度较高。

6 结论与建议
本文利用绍兴市 2020—2023 年人力社保四张核心报表,系统开展了数据清洗、可视化分析与 Prophet 时序预测。研究识别出绍兴市就业市场正经历“总量回暖、结构分化”的阶段,就业困难人群和部分欠发达区县仍需重点关注。具体而言:

城镇就业总量恢复显著,2023 年就业人数已超过 2021 年同期水平,得益于稳岗返还、职业技能培训等政策的持续发力。就业困难人数居高不下,且呈现“季节性波峰”特征,每年第一、四季度申报人数增多,反映部分灵活就业群体抵御经济波动的能力较弱。区域差距突出,越城区、柯桥区失业率持续低于全市均值,而新昌县、嵊州市等传统产业占比较高地区失业率下降缓慢,需定向产业升级。

针对上述发现,我们建议:人社部门可建立季度监测预警机制,利用 Prophet 自动滚动预测,提前介入岗位匹配;针对就业困难重点区域,推出产业合作模式,导入高技能岗位;加强职业培训与数字技能提升,缓解结构性失业。

本研究为区域性就业形势动态评估提供了一套低成本、可复现的 Python 分析框架,未来可接入更多实时数据源(如网络招聘平台数据、企业社保基数变动等),进一步提升预测精度和时效性。

9 总结与展望
本文就目前就业市场供需结构失衡的现状,进行预测和分析,使用绍兴市人力社保公开数据集作为基础数据,通过数据清洗、特征工程、机器学习等手段建立就业形势评价模型,分析绍兴市 2021 年至 2023 年的就业形势变化。数据来源于绍兴市公共数据开放平台,包括“互联网人社-招聘会信息”、“就业困难人员认定信息”、“就业失业统计信息”、“社保数据统计信息”四张数据表。

通过编程预测,我们深入挖掘了这些数据的内在关联,建立预测模型分析就业趋势和变化,构建了完整的数据分析流程。借助 Prophet 时间序列预测算法,我们发现了就业市场中的潜在规律和趋势,为政府部门和企业提供决策支持。

绍兴市作为中国经济发展的重要区域之一,通过对其就业形势的深入分析,可以为其他地区提供借鉴和参考。预测模型的建立不仅可以帮助政府部门更好地制定就业政策,还可以帮助企业做出更明智的人才招聘和培养决策,为劳动者提供更多就业机会,促进就业市场的稳定和健康发展。

作者声明:本文作者为数据分析领域从业者,拥有 5 年行业数据治理与建模经验,所持观点仅代表个人学术探讨。文中代码与环境均为可公开获取的开源工具,欢迎读者交流与复现。