dr0006 / SecondWheel

此为机器学习课程的课程设计,阿里云天池-->二手车交易价格预测

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

天池二手车价格预测

题目

该项目是一个二手车交易价格预测比赛。参赛者需要使用给定的训练集和测试集数据集,通过构建合适的机器学习模型,预测二手车的交易价格。

更多比赛详情,请点击此处

项目介绍

该项目是一个二手车交易价格预测比赛,参赛者需要使用给定的训练集和测试集数据集,通过构建合适的机器学习模型,预测二手车的交易价格。 在该项目中,我们使用了两种基于梯度提升树的机器学习算法:LightGBM 和 XGBoost。我们还进行了特征工程和模型调参等一系列操作,以提高预测效果。
最终,我们获得了较好的预测结果。

MAE: 473.3349762655072

MAE: 528.190

数据说明

数据集主要包含以下特征:

  • 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. 数据读入。

  2. 数据预处理。

    1)使用对数变换对 'price' 进行处理;

    2)用众数填充缺失值;

    3)处理异常值;

    4)将 ‘notRepairedDamage’ 中的缺失值替换为 None;

    5)对可分类的连续特征进行分桶;

    6)对日期数据进行处理。

  3. 数据统计和特征组合。

    1)为部分属性列的数据生成新的特征;

    2)计算行驶路程与功率的最大值、最小值、中位数和均值等。

  4. 使用 LightGBMRegressor 作为模型,进行训练和预测。

    1)对数据进行五折交叉检验;

    2)最终通过将五次模型训练得到的结果平均作为最终预测结果,并将结果保存到文件中供提交。

  5. 数据读入。

  6. 数据预处理。

    1)使用对数变换对 'price' 进行处理;

    2)用众数填充缺失值;

    3)处理异常值;

    4)将 ‘notRepairedDamage’ 的值为 '-' 的行替换为 0,表示汽车经历过维修;

    5)对可分类的连续特征进行分桶;

    6)对日期数据进行处理。

  7. 数据统计和特征组合。

    1)为部分属性列的数据生成新的特征;

    2)计算行驶路程与功率的最大值、最小值、中位数和均值等。

  8. 使用 XGBRegressor 作为模型,进行训练和预测。

    1)对数据进行五折交叉检验;

    2)最终通过将五次模型训练得到的结果平均作为最终预测结果,并将结果保存到文件中供提交。

About

此为机器学习课程的课程设计,阿里云天池-->二手车交易价格预测


Languages

Language:Jupyter Notebook 100.0%