/SalaryPredict

基于机器学习(KNN、决策树、RF、梯度提升、多层感知机)对毕业生薪资预测

Primary LanguageJupyter Notebook

🔮 基于机器学习的毕业生薪资预测

Machine Learning Python


📊 项目概述

本项目基于ModelWhale平台的数据集(包含数值与文本特征),采用多种机器学习算法对毕业生薪资进行预测。通过系统的数据预处理、特征工程和模型优化,实现了对薪资水平的有效预测。


🧩 实验流程

🔍 一、数据预处理与特征工程

1. 特征筛选

  • 根据预测任务针对性筛选相关特征与标签变量

2. 缺失值处理

  • 采用多种策略处理数据中的缺失值

3. 文本特征处理

  • 句子嵌入表示:使用轻量级嵌入模型将文本转换为向量表示
  • One-Hot编码:对分类字段进行独立热编码处理

4. 数据降维

  • 使用PCA主成分分析降低特征维度,避免维度灾难
  • 提升计算效率,增强模型泛化能力

5. 区间数据量化

  • 将区间格式数据(如"3-5年")转换为区间平均值
  • 实现定性数据的定量化处理

6. 样本不平衡分析

  • 分析数据分布,处理可能存在的样本不平衡问题

🧠 二、模型选择与超参数优化

1. 机器学习算法

项目采用五种主流机器学习方法进行预测:

算法 简称 特点
K-最近邻 KNN 基于实例的学习
决策树 DT 可解释性强
随机森林 RF 集成学习,抗过拟合
梯度提升树 GBDT 逐步优化,预测精度高
多层感知机 MLP 深度学习基础

2. 超参数优化

  • 采用网格搜索(Grid Search) 方法系统性地寻找最优超参数组合
  • 确保模型性能达到最优状态

📈 三、模型评估策略

1. 交叉验证

  • 采用重复10次的10折交叉验证
  • 有效减轻数据划分偶然性带来的影响
  • 确保评估结果的稳定性和可靠性

2. 评估指标

使用三种回归评估标准全面衡量模型性能:

  • MAE(平均绝对误差):衡量预测值与真实值之间的平均绝对差异
  • RMSE(均方根误差):强调较大误差的惩罚
  • (决定系数):解释模型对数据变异的解释程度

🏆 实验结果

📊 模型性能对比表

Model MAE RMSE Ranking
🥇 GBDT 5393.54 7623.94 0.6341 1
🥈 MLP 5723.27 8018.72 0.5952 2
🥉 RF 6501.94 8768.36 0.5161 3
4️⃣ KNN 5549.68 8500.56 0.5449 4
5️⃣ DT 6715.07 9713.16 0.4056 5

🎯 关键发现

  1. GBDT表现最佳:梯度提升树在三个指标上均取得最优结果
  2. 树模型整体优势:集成树模型(GBDT、RF)优于单一树模型(DT)
  3. 神经网络竞争力:MLP表现出色,仅次于GBDT
  4. 模型选择重要性:不同算法间性能差异显著,凸显模型选择的重要性

📁 项目结构

salary-prediction/
│
├── job.csv               # 数据文件
├── SalaryPredict.ipynb   # Jupyter笔记本(富含注释说明)
├── REPORT                # 设计报告
└── README.md             # 项目说明

🔮 未来工作

  • 尝试深度学习模型

📧 如有问题或建议,欢迎提交Issue或Pull Request!


用数据洞察未来,用算法预测价值