这是一个用于预测苏州六区(姑苏、吴中、相城、高新、工业园区、吴江)房价的机器学习工具。系统基于历史成交数据训练模型,支持按小区预测未来房价走势。
项目地址:GitHub: wenyuhaokikika/suzhou-housing-prices
预测原理
系统使用历史成交价数据,通过机器学习模型预测房价。主要流程如下:
- 数据准备:收集苏州六区的历史成交价数据
- 特征工程:提取时间、区域、面积等特征
- 模型选择:对比 Ridge、RandomForest、GradientBoosting 三种模型
- 模型验证:时间感知的 70/15/15 训练/验证/测试集划分 + TimeSeriesSplit 5 折交叉验证
- 预测输出:按小区输出预测价格
模型选择与评估
经过对比实验,最终选用 Ridge 回归 作为预测模型。在测试集上的表现:
- RMSE:约 264 元/平方米
- MAE:约 213 元/平方米
- R²:约 0.9985
- MAPE:约 1.18%
Ridge 模型在保持高精度的同时,具有较好的泛化能力和可解释性。
技术栈
- FastAPI:高性能的 Python Web 框架,自带 OpenAPI 文档
- scikit-learn:机器学习模型训练与预测
- SQLite:存储历史数据和预测结果
- 简洁前端:原生 HTML/CSS/JS,无框架依赖
本地运行
# 克隆仓库
git clone https://github.com/wenyuhaokikika/suzhou-housing-prices.git
cd suzhou-housing-prices
# 安装依赖
pip install -r requirements.txt
# 启动服务
uvicorn main:app --reload
# 访问
# 预测页面:http://127.0.0.1:8000/predict
# API 文档:http://127.0.0.1:8000/docs
预测 API
获取模型评估指标:
GET /api/predict/metrics
按小区预测房价:
GET /api/predict/{community_id}
触发模型训练:
POST /api/predict/train
数据说明
仓库内包含的是 Demo 数据,用于演示系统功能。Demo 数据基于公开信息模拟生成,不代表真实成交记录。如需真实数据,请自行获取并导入。
声明
本工具仅供学习和研究使用。预测结果基于历史数据和统计模型,不构成任何投资建议。房价受多种因素影响,实际走势可能与预测存在偏差。
欢迎参与
如果你对房价预测或机器学习感兴趣,欢迎:
- ⭐ Star 这个项目
- 提交 Issue 反馈问题或需求
- 发起 Pull Request 贡献代码