加州房价预测 · 回归分析全流程实战(手写 Stacking 集成) 预览图

加州房价预测 · 回归分析全流程实战(手写 Stacking 集成)

地理聚类造特征、手写两层 Stacking 融合、网格搜索调参,图表与实验报告自动落盘

源码/项目包 v1.0 # Python# 机器学习# 数据分析

这个项目解决什么问题

房价预测是回归问题的"第一课",但网上大多数教程止步于"调个 API、打印一个 RMSE"。本项目把重点放在特征怎么造、模型怎么比、参数怎么调这三个真正拉开差距的环节,并把全部过程产物(图表、对比表、实验报告)自动保存下来,可直接作为实验报告素材。

核心亮点

  • 地理聚类特征:不满足于直接使用经纬度——用 KMeans 将地理位置聚成"区域簇",并通过轮廓系数自动搜索最优簇数,模型误差随之下明显的下降。前后对比数据都在 outputs/ 里,课程汇报时一目了然。
  • 手写两层 Stacking 集成:基模型出预测、元模型做融合,OOF(折外预测)全流程自己实现,而不是调一个现成的 StackingRegressor——你知道它为什么有效,也能讲清楚。
  • GridSearchCV 系统调参:对最优模型做网格搜索,调参前后的对比图直观展示收益。
  • 一键实验报告:跑完 main.py,自动生成 Markdown 实验报告(含结果表和图表索引),写报告时直接取材。

效果预览

区域房价地理分布——颜色越深房价越高,海湾地区的聚类特征价值一眼可见:

地理分布

四种模型 RMSE 对比,手写 Stacking 集成取得最优成绩:

模型对比

特征重要性排序,收入中位数果然是硬通货:

特征重要性

预览图基于模拟数据演示实际运行效果,真实数据运行结果以你下载的数据集为准。

你将学到

  • 回归问题的完整建模范式:EDA → 特征工程 → 模型对比 → 调参 → 集成
  • 聚类特征(无监督为有监督服务)的构造与验证方法
  • Stacking 集成的原理与手写实现
  • 如何让实验"可复现、可追溯、可写进报告"

适合谁

需要完成回归方向毕业设计、或想系统补齐"特征工程 + 模型融合"实战经验的学习者。难度 ★★☆,代码注释齐全,跑通一遍即可理解全部流程。


交付内容:完整可运行源码、README.md(逐步运行方法与实现说明)、requirements.txt。

数据集:第三方数据受原始授权限制不随包分发,按 README.md 里的官方链接下载放入 data/ 即可跑通全流程。

许可:个人使用,可用于自己的学习、课程实验与研究报告,请勿转售或公开传播。

Python 3
pandas
numpy
scikit-learn
XGBoost
matplotlib
seaborn
Streamlit

环境与步骤

pip install -r requirements.txt
pip install -r requirements.txt
python main.py        # 全流程 + 图表 + 实验报告
streamlit run app.py  # (可选)交互式预测页面

注意事项

  • 数据集不随包提供:先按 README.md 的链接下载放入 data/,再执行下面的命令。

Q:数据集要自己下载吗?放哪里?

A:要。加州房价是 Kaggle 上的公开数据(camnugent/california-housing-prices),受原始授权限制不随包分发。下载得到的 housing.csv 放进项目 data/ 目录,再执行 python main.py 就是完整流程。

Q:跑完会得到哪些东西?

A:outputs/ 下一次性生成:EDA 图表、地理聚类前后的 RMSE 对比、四个模型的对比表与图、网格调参对比图,外加一份 experiment_report.md 实验报告(含结果表和图表索引),写课程报告时直接照着取材。

Q:手写 Stacking 和直接调现成的 StackingRegressor 有什么区别?

A:这里的两层堆叠是自己写的:基模型用 KFold 出折外(OOF)预测以避免数据泄漏,元模型再做融合,每一步为什么这么做都写在注释里。被追问“集成学习怎么防泄漏”时,这份代码能直接摊开讲。

Q:一定要装 Streamlit 吗?

A:不装。app.py 的交互式预测页是可选演示,用 streamlit run app.py 单独启动;建模主流程只依赖 pandas / scikit-learn / XGBoost。

购买评价(0)

暂无评价,购买后第一个来评价吧
相关商品
🍪 隐私提示 我们仅收集提供服务所必需的信息(详见《隐私政策》),不出售、不追踪。
¥49
立即购买