该项目是一个二手车交易价格预测比赛。参赛者需要使用给定的训练集和测试集数据集,通过构建合适的机器学习模型,预测二手车的交易价格。
更多比赛详情,请点击此处。
该项目是一个二手车交易价格预测比赛,参赛者需要使用给定的训练集和测试集数据集,通过构建合适的机器学习模型,预测二手车的交易价格。
在该项目中,我们使用了两种基于梯度提升树的机器学习算法:LightGBM 和 XGBoost。我们还进行了特征工程和模型调参等一系列操作,以提高预测效果。
最终,我们获得了较好的预测结果。
数据集主要包含以下特征:
- name:汽车交易名称
- regDate:汽车注册日期
- model:车型编码
- brand:汽车品牌
- bodyType:车身类型
- fuelType:燃油类型
- gearbox:变速箱
- power:发动机功率
- kilometer:汽车已行驶公里数
- notRepairedDamage:汽车有尚未修复的损坏
- regionCode:地区编码
- seller:销售方
- offerType:报价类型
- creatDate:汽车上线时间
- price:二手车交易价格
以下是本项目的结构目录:
- Code: 本项目的所有代码存放在此处。
- data:包含训练集和测试集的数据文件。
- submission:存放生成的提交结果文件。
- venv:Python 虚拟环境,用于管理项目所需的依赖项。
- readme.md:本项目的说明文件,包含项目概述、使用说明、项目结构等信息。
- requirements.txt:Python 依赖项的列表,方便其他用户在不同的环境中快速安装所需的库。
- 报告.docx:向Teacher提交的课程报告。
本项目使用 Python 3 语言编写,主要使用了以下相关库:
- numpy
- pandas
- lightgbm
- sklearn
LightGBM流程主要分为以下几个步骤:
-
数据读入。
-
数据预处理。
1)使用对数变换对 'price' 进行处理;
2)用众数填充缺失值;
3)处理异常值;
4)将 ‘notRepairedDamage’ 中的缺失值替换为 None;
5)对可分类的连续特征进行分桶;
6)对日期数据进行处理。
-
数据统计和特征组合。
1)为部分属性列的数据生成新的特征;
2)计算行驶路程与功率的最大值、最小值、中位数和均值等。
-
使用 LightGBMRegressor 作为模型,进行训练和预测。
1)对数据进行五折交叉检验;
2)最终通过将五次模型训练得到的结果平均作为最终预测结果,并将结果保存到文件中供提交。
-
数据读入。
-
数据预处理。
1)使用对数变换对 'price' 进行处理;
2)用众数填充缺失值;
3)处理异常值;
4)将 ‘notRepairedDamage’ 的值为 '-' 的行替换为 0,表示汽车经历过维修;
5)对可分类的连续特征进行分桶;
6)对日期数据进行处理。
-
数据统计和特征组合。
1)为部分属性列的数据生成新的特征;
2)计算行驶路程与功率的最大值、最小值、中位数和均值等。
-
使用 XGBRegressor 作为模型,进行训练和预测。
1)对数据进行五折交叉检验;
2)最终通过将五次模型训练得到的结果平均作为最终预测结果,并将结果保存到文件中供提交。