基于机器学习的二手汽车交易价格分析与可视化

目录

一、项目整体思路

二、数据采集:先把真实数据拿到手

三、数据清洗:把杂乱数据整理成可分析数据

四、销量分析:哪些品牌和地区更活跃

五、价格分析:车价差异到底来自哪里

六、购车成本与排放标准:不只看售价

七、特征工程:把类别信息变成模型能读懂的变量

八、机器学习建模:四类算法同台对比

九、模型结果对比

十、项目亮点与可扩展方向

每文一语


基于机器学习的二手汽车交易价格分析与可视化

Python / Pandas / MySQL / 可视化分析 / LightGBM 价格预测

关键词:二手车价格预测、数据清洗、特征工程、机器学习、Optuna、模型对比

|----------|--------------------------------------|
| 数据规模 | 原始采集约15万条,清洗后保留29689条有效记录 |
| 核心字段 | 品牌、车型、年份、里程、城市、环保标准、售价、首付、新车含税价 |
| 分析内容 | 品牌销量、地区热力、价格分布、里程关系、排放标准、词云展示 |
| 建模算法 | 线性回归、MLP、SVR、LightGBM,LightGBM最终效果最好 |

项目效果预览

做二手车数据项目,不能只跑一个模型,也不能只画几张图,关键是把真实交易数据从采集、清洗、入库、分析到价格预测串成一条完整链路。车辆售价背后叠加了品牌、年份、里程、城市、排放标准、新车价格和市场流通热度等多种因素。把这些因素拆开看,可以看到市场结构;放进模型里,又能得到更接近实际交易逻辑的估价方案。

这套项目围绕"二手汽车交易价格分析与可视化"展开,数据来自淘车车二手车交易平台。前期通过自动化脚本批量获取车辆信息,后续使用 Python 完成数据清洗、字段整理、可视化分析和多模型预测。整个流程比较适合放在毕业设计、课程设计、数据分析实战项目中展示,因为它既有业务场景,也有数据处理过程,还有机器学习模型对比结果,完整度比较高。

项目最终保留了 29689 条有效车辆记录,核心字段包括品牌、车型、年份、里程、城市、环保标准、售价、首付、新车含税价等。围绕这些字段,可以分别完成市场销量分析、地区价格分析、品牌车型分析、购车成本分析、排放标准分析以及二手车价格预测。相较于只展示一个训练脚本,这类"数据分析 + 可视化 + 机器学习"的组合更容易体现工作量和技术闭环。

一、项目整体思路

二手车定价难点不在于"能不能给出一个价格",而在于价格影响因素太多,且不同因素之间并不是简单线性关系。例如,同样是 2020 年上牌的车辆,大众、奔驰、比亚迪和宝马的价格水平完全不同;同样是低里程车辆,城市、车型、排放标准不同,价格也会出现明显差异。人工估价依赖经验,平台报价又容易受到地区供需和商家策略影响,因此用数据方法做辅助分析比较有价值。

项目按四条线展开:数据采集负责获取车辆信息;数据治理完成去重、缺失值处理和字段规范;可视化分析从品牌、年份、地区、里程、首付和排放标准观察市场规律;价格预测则对比线性回归、MLP、SVR 和 LightGBM,筛选更适合该场景的算法。

从展示效果看,这个项目的优势是每一步都有图、有代码、有结果,不是停留在理论描述上。读者能直观看到数据是怎么来的、数据清洗后长什么样、各类图表揭示了哪些规律、模型预测效果是否可靠。对于学生项目来说,这种结构比单纯讲算法更容易让人理解,也更容易在答辩或项目展示中讲清楚。

二、数据采集:先把真实数据拿到手

数据采集部分使用 Python 请求平台接口,模拟正常浏览器访问,向接口发送 POST 请求并解析返回结果。接口返回的数据中包含车辆标题、品牌、车型、年份、行驶里程、城市、环保标准、售价、首付、新车含税价等信息。为了保证采集过程稳定,脚本加入分页循环、请求头设置、Cookie 配置和间隔控制,避免短时间内高频访问导致请求失败。

采集脚本的重点不是写得多复杂,而是要把关键字段稳定保存下来。每条车辆信息会被转成结构化字典,再统一写入 CSV 文件。对于"万公里""万元"等带单位的字段,需要在后续处理中进一步转成数值,便于统计和建模。采集阶段获取了约 15 万条车辆记录,但由于页面刷新、重复车源等原因,原始数据中存在大量重复项,所以不能直接拿来分析。

这个部分说明数据有明确来源、采集过程和落盘结果,后续可视化和模型训练都建立在这一步之上。

图 1 数据来源页面效果

图 2 数据采集运行过程

图 3 原始采集结果片段

三、数据清洗:把杂乱数据整理成可分析数据

原始数据拿到之后,第一步是把多个 CSV 文件合并成一个完整的数据集。合并后的数据共有 150071 条记录和 10 个字段,随后使用去重方法删除重复车源,最终保留 29689 条有效记录。这个变化非常明显,也说明二手车平台在分页抓取过程中会出现重复数据,如果不清洗,后面做销量统计和模型训练都会被重复样本干扰。

缺失值主要集中在车型和环保标准两个字段,其中车型缺失 122 条,环保标准缺失 2410 条。为了不直接删除这些样本,项目采用填充方式处理,车型填充为"未知车型",环保标准填充为"未知标准"。这样既保留了样本量,也避免模型训练或统计分析时出现空值报错。

清洗过程中还加入了序号字段,并重新调整列顺序,使数据结构更直观。清洗后的数据保存为 data.csv,再写入 MySQL,后续可以继续做可视化调用、模型训练或系统化扩展。这个阶段看似基础,但对数据项目非常关键:数据质量越稳定,后面的分析结果越可信。

图 4 数据合并与去重过程

图 5 缺失值填充处理

图 6 清洗后数据结果

图 7 MySQL数据库存储效果

四、销量分析:哪些品牌和地区更活跃

销量分析先从品牌维度展开。整体销量中,大众位居第一,达到 3425 辆,明显高于本田的 1541 辆和丰田的 1527 辆。别克、宝马、奔驰、吉利、哈弗、奥迪、比亚迪等品牌也进入销量前十。这个结果比较符合二手车市场的常见认知:大众、本田、丰田这类主流品牌保有量大、维修成本低、用户认可度高,所以流通性更强。

从年度趋势看,二手车销量从 2008 年之后整体上升,2014 年以后增长速度更明显,2020 年达到阶段高峰,之后出现回落。这个变化可以结合市场环境理解:早期二手车消费习惯逐步形成,平台化交易提升了流通效率;后期新能源车市场快速扩张,对传统燃油二手车形成一定冲击。

地区维度也很有看点。山东省交易量最高,达到 4754 辆,河南、河北等人口大省交易量也比较突出。沿海发达地区虽然消费能力较强,但二手车交易量不一定绝对领先,可能与新车消费偏好、限牌限购政策、车辆迁入规则等因素有关。把品牌、年份和地区放在一起看,市场活跃度的层次会更加清楚。

图 8 2021年品牌销量Top10

图 9 品牌总销量Top10

图 10 各省份销量汇总热力图

图 11 年度销量变化趋势

继续下钻到具体车型,大众品牌中速腾、高尔夫、朗逸、迈腾等车型表现靠前;宝马品牌中 3 系、5 系和 X1 更受欢迎。车型层面的分析比品牌分析更接近真实购车场景,因为消费者最终比较的往往不是"大众和宝马",而是"速腾、朗逸、3 系、5 系、X1"这些具体车型。

图 12 大众品牌热门车型Top10

图 13 宝马品牌热门车型Top10

五、价格分析:车价差异到底来自哪里

价格分析是这个项目最核心的展示部分。品牌平均价格 Top15 中,新能源品牌和豪华品牌整体价格更高,部分车型均价超过 20 万元。车型榜单里,奔驰 S 级平均售价达到 84.68 万元,明显高于普通家用车。这类结果说明二手车并不是简单按年份折旧,品牌定位、车型级别和市场认可度会显著影响残值。

地区价格也存在明显差异。北京、浙江、福建等经济较发达地区的平均售价更高,甘肃、青海等地区相对较低。这种差异通常与当地消费能力、车源结构、豪华车型占比、金融政策以及购车需求有关。对于商家来说,地区差异可以辅助制定跨区域流通策略;对于消费者来说,也能帮助判断某一城市的报价是否偏高。

年份与售价的关系比较符合直觉:车龄越新,售价整体越高;车龄增加后,价格逐步下降。但图中也能看到一些例外,一些老年份豪华车型仍然保持较高价格,说明高端品牌、稀缺车型和旗舰车型的残值逻辑与普通家用车不同。

图 14 品牌平均价格Top15

图 15 各省份平均售价分布

图 16 平均售价最高车型Top10

图 17 年份与售价关系

图 18 主要品牌售价分布

里程与售价之间呈明显负相关。一般来说,行驶里程越高,车辆磨损越大,价格越低。图中按照环保标准进行了区分,可以看到国六车型整体售价更高,国四、国五车型价格相对较低。这里不仅是车况问题,也包含政策影响:不同排放标准关系到迁入、上牌和未来流通空间,因此会被市场提前反映到价格里。

市场整体价格主要集中在 5-20 万元区间,说明普通家用车仍然是二手车交易主力。高端车虽然单价高,但数量占比有限。主要城市售价分布图进一步展示了一线城市和部分经济活跃城市的价格中位数更高,二三线城市则更偏向经济型车源。

图 19 里程与售价散点关系

图 20 二手车市场价格分布

图 21 主要城市售价分布

六、购车成本与排放标准:不只看售价

买二手车不能只看车辆售价,还要关注首付、新车含税价和后续流通政策。售价与首付基本呈正相关,价格越高,首付金额越高。新车含税价分布集中在 10-30 万元之间,这与主流二手车价格区间相互印证,说明样本中大多数车辆属于大众消费能够覆盖的范围。

首付城市 Top10 可以展示不同地区购车金融成本的差异。上海、厦门、西宁等城市平均首付较高,可能与当地车辆结构、金融方案和消费者购车习惯有关。这个角度适合在项目中作为补充亮点,因为很多二手车价格预测项目只关注售价,没有进一步展示购车成本。

图 22 售价与首付关系

图 23 新车含税价分布

图 24 平均首付最高城市Top10

排放标准是二手车流通中非常重要的变量。样本中,国六标准车辆占比最高,约 52.03%;国五车辆占比约 35.5%。国四及以下车辆占比明显减少,说明市场正在向更高环保标准集中。车辆年份、环保标准和售价放在一起看,可以发现国六、国五车型更多集中在近年份车辆中,售价也相对更高。

除了结构化字段,项目还使用词云展示车辆标题中的高频信息。"手动""自动""两驱""双离合""CVT""1.5L"等关键词出现较多,说明车源标题里最常见的信息集中在变速箱、驱动形式、排量和年款上。这些内容虽然看起来只是描述文本,但如果进一步做 NLP 特征提取,也可以为价格预测提供更多信息。

图 25 环保标准销量分布

图 26 年份、环保标准与售价关系

图 27 汽车标题关键词词云

图 28 平均里程最少品牌Top10

七、特征工程:把类别信息变成模型能读懂的变量

建模前需要处理品牌、车型、城市、环保标准等类别型字段。直接把中文文本放进模型是不合适的,项目采用均值编码思路:先计算不同类别对应的平均售价,再按价格水平进行排序并赋值。这样处理后,品牌、城市、车型和环保标准都可以变成数值变量,同时又保留了它们与价格之间的强弱关系。

用于价格预测的核心特征包括年份、里程、新车含税价、品牌、城市、车型和环保标准,目标变量是车辆售价。标题字段主要用于展示和词云分析,建模时会剔除;首付字段与售价相关性过强,也会根据任务目标进行处理,避免模型学到过于直接的关联。

这一步非常适合在项目说明中重点展示,因为很多模型效果差并不是算法不够强,而是特征工程处理不到位。类别变量编码、训练测试集划分、标准化处理、评价指标设置,这些环节共同决定了模型最后能不能跑出可信结果。

图 29 原始建模数据展示

图 30 编码后的建模数据展示

八、机器学习建模:四类算法同台对比

价格预测部分分别使用线性回归、MLP 多层感知机、SVR 支持向量回归和 LightGBM 四种算法。线性回归作为基础模型,优点是简单、解释性强,但面对二手车价格这种非线性关系时,拟合能力有限。实验结果中,线性回归 MSE 为 7.3208,RMSE 为 2.7057,MAE 为 1.8950,R² 为 0.85,可以作为一个可解释的基准。

MLP 能学习更复杂的非线性关系,训练前需要对数据进行标准化。优化后,MLP 的 MSE 降至 3.0242,RMSE 为 1.7390,MAE 为 1.1667,R² 达到 0.94,效果明显优于线性回归。不过神经网络对参数、学习率、隐藏层结构和迭代次数比较敏感,训练成本也更高。

SVR 使用 RBF 核函数进行非线性拟合,标准化同样是必要步骤。SVR 的 MSE 为 3.4221,RMSE 为 1.8499,MAE 为 1.1847,R² 为 0.93,整体优于线性回归,但略低于 MLP。它在小规模数据上表现不错,但面对较大数据量时训练速度和参数敏感性会成为限制。

图 31 线性回归模型预测效果

图 32 MLP模型代码展示

图 33 MLP模型预测效果

图 34 SVR模型预测效果

LightGBM 是这组模型中表现最好的算法。它基于梯度提升决策树,能够较好处理非线性关系和特征交互,并且训练效率高。项目中先使用默认参数训练,再使用 Optuna 进行超参数优化。优化过程采用交叉验证,以 R² 作为主要目标,搜索叶子节点数量、特征采样率、数据采样率、正则化系数等参数。

优化后的 LightGBM 在测试集上取得 MSE 2.1060、RMSE 1.4512、MAE 1.0147、R² 0.96 的结果。相比线性回归,误差大幅下降;相比 MLP 和 SVR,LightGBM 在预测精度和训练效率之间取得了更好的平衡。对于二手车这类多字段、非线性、包含类别影响的数据场景,LightGBM 是比较合适的选择。

图 35 LightGBM模型预测效果

九、模型结果对比

把四个模型放在一起看,结论会比较清楚:线性回归适合做基础参照,说明年份、里程、新车价格等变量确实对售价有解释能力;MLP 和 SVR 能捕捉非线性关系,预测效果明显提升;LightGBM 在误差、拟合度和效率上综合表现最好,适合作为最终定价预测模型。

|----------|---------|----------|---------|--------|--------------|
| 模型 | MSE | RMSE | MAE | | 说明 |
| 线性回归 | 7.3208 | 2.7057 | 1.8950 | 0.85 | 基准模型,解释性强 |
| MLP | 3.0242 | 1.7390 | 1.1667 | 0.94 | 非线性拟合能力较好 |
| SVR | 3.4221 | 1.8499 | 1.1847 | 0.93 | 核函数拟合,训练成本偏高 |
| LightGBM | 2.1060 | 1.4512 | 1.0147 | 0.96 | 综合效果最优 |

表 1 四类价格预测模型指标对比

这个模型对比部分适合重点讲:不是直接说某个算法好,而是把多个模型放在相同切分和相同指标口径下比较。RMSE、MAE 和 R² 都能直观说明模型效果。

十、项目亮点与可扩展方向

这个项目的亮点可以概括为三点:数据链路完整,覆盖采集、落盘、清洗、入库和可视化;分析维度丰富,兼顾销量、地区、车型、年份、里程、首付、环保标准和文本关键词;模型对比清晰,用统一指标说明不同算法的优劣。

后续可以扩展多平台数据,增加车况、维修保养、过户次数、保险记录等字段;模型层面继续尝试 XGBoost、CatBoost、Stacking,也可以把标题文本转成 NLP 特征,提高解释能力。

如果继续做成系统,可以增加一个 Web 页面:用户输入品牌、车型、年份、里程、城市和排放标准后,系统返回参考估价、相似车源区间和影响因素提示。

每文一语

用好数据和模型,复杂问题也能变清晰。

相关推荐
Luminbox紫创测控1 小时前
AM1.5G光谱在LED太阳模拟器中的工程实现:光谱匹配与均匀性优化(A+级指标)
人工智能·测试工具·5g·安全性测试
“码”力全开1 小时前
解耦安防黑盒:基于 Docker 容器化与 GB28181/RTSP 双协议架构的 AI 边缘计算视频平台(全源码交付)
人工智能·docker·架构
析稿AI写作1 小时前
AI视频创作实战:用飙算工具箱实现图转视频与文字成片,个人开发者的多模态效率方案
人工智能·音视频
赛博三把手1 小时前
「2026 最新推荐」AI 大模型 API 中转站 | 国内直连 ChatGPT/Claude/Gemini 稳定优质的 API 接口服务
人工智能·github·ai编程
zzzzzz3101 小时前
shadcn/improve:让最强模型当架构师,便宜模型当码农
机器学习·程序员·github
AI服务老曹1 小时前
解耦安防黑盒:基于 Docker 的国标 GB28181 与 RTSP 统一接入 AI 视频管理平台架构设计(附源码交付与边缘计算实践)
人工智能·docker·音视频
初中就开始混世的大魔王1 小时前
7 Fast DDS-持久化服务
c++·人工智能·中间件·自动驾驶·信息与通信
Smilecoc1 小时前
决策树(一):决策树基本原理
算法·决策树·机器学习
云边有个稻草人1 小时前
时序智能新范式:TimechoAI 大模型赋能工业时序数据全链路分析
人工智能·apache iotdb·时序大模型·timechoai·企业级时序数据解决方案·工业时序数据分析·时序 ai 赋能