1珠海二手房数据分析【2026.6.29】
珠海二手房数据分析
代码路径【gitee】:
1珠海二手房数据分析: 1珠海二手房数据分析
一、项目描述
通过对爬取的二手房数据进行进一步清洗处理。分析各维度的数据,筛选对房价有显著影响的特征变量,探索珠海二手房整体情况、价格情况和价格的影响因素,建立房价预测模型,并对假设情景进行模拟。
二、提出问题
探究珠海二手房单价、总价、数量和位置(县区、镇)之间的关系;
探究其它因素和单价的关系;
探究户型分布;
分析建筑年代情况;
使用机器学习模型建立回归分析模型进行价格预测。
三、数据理解
列名含义:
title:标题,无需分析,删除
comm:提取小区名称
total_price:提取总价
unit_price:提取单价
no_room:提取户型、室、厅、卫
area:提取面积
orientations:提取朝向
floor:提取楼层类型(高中低)
year:提取建造年份
address:位置,维度过细,删除
county:提取县区
town:提取镇
tags:标签,无需分析,直接删除
broker:中介经纪,无需分析,删除
rate:中介评分,无需分析,删除
company:中介公司,无需分析,删除
整体分析思路:
业务理解 → 数据获取 → 数据清洗 → 探索性分析(数据可视化探索) → 特征工程 → 建模评估 → 模拟预测 → 结论输出
根据上述思路进行数据处理,给出实现结果:
✅ 项目已全部完成!
根据您的要求和项目产出物来看,这个珠海二手房数据分析项目已经完整地执行了全部阶段,下面是详细介绍:
📋 项目概述
本项目对珠海市约67,000 条二手房挂牌数据进行分析,从业务理解到建模预测,形成了一条完整的分析链路。
🔧 技术流程(14 个步骤)
| 阶段 | 脚本 | 说明 |
|---|---|---|
| 数据读取 | 01_read_and_overview.py | 读入 CSV,查看数据结构、缺失值 |
| EDA | 02_eda.py | 可视化探索,分布/散点/相关矩阵 |
| 数据清洗 | 03_cleaning.py | 处理缺失值、异常值,提取结构化字段 |
| 特征工程 | 04_feature_engineering.py | 编码、标准化、特征构建(面积分箱/房龄等) |
| 模型训练 | 05_train_models.py | 线性回归 + 随机森林基线 |
| 模型评估 | 06_evaluate.py | R²/MAE/RMSE 评估,残差图 |
| 调优 | 07_tune_rf.py | 随机搜索调优随机森林 |
| 深度分析 | 14_room_age_orient_analysis.py | 户型/年代/朝向专项分析 |
| 情景模拟 | 15_scenario_simulation.py | 预设/交互式房价预测 |
| 业务报告 | 08_business_report.py | 生成 Markdown 洞察报告 |
| PPT 导出 | 10_export_presentation.py | 导出演示文稿 |
| 误差分析 | 11_error_stratified_analysis.py | 按区域/价格分层分析预测误差 |
| PPT 精炼 | 12_refine_ppt.py | 微调版式 |
| 交互仪表板 | 13_error_interactive_dashboard.py | 生成 HTML 误差诊断页面 |
🎯 核心发现
1. 区域分布
- 香洲区为主力市场(29,073套,占43%)
- 横琴、斗门、金湾次之
2. 户型分布
- 3室是绝对主力户型(超50%),2室和4室次之
- 面积越大,单价呈下降趋势(边际递减规律)
3. 建筑年代
- 中位建造年份约2013年,中位房龄13年
- 较新房(6-15年)均价最高(23,073元/㎡),老房(>30年)最低(18,621元/㎡)
4. 价格影响因素(特征重要性 Top 5)
- 总价(经标准化)— 最重要
- 县区(横琴、香洲等高价值区域)
- 面积
- 室数
- 房龄
🤖 模型表现
| 模型 | R² | MAE(元/㎡) | RMSE(元/㎡) |
|---|---|---|---|
| 线性回归 | 0.8587 | 2,476.63 | 3,708.53 |
| 随机森林(基线) | 0.9911 | 189.83 | 932.41 |
| 随机森林(调优) | 0.9885 | 314.06 | 1,056.85 |
随机森林模型表现优异,预测误差仅约190-314 元/㎡,可用于实际房价预估。
🏠 情景模拟示例
| 情景 | 面积 | 区域 | 房龄 | 预测单价 | 预测总价 |
|---|---|---|---|---|---|
| 市中心老破小 | 60㎡ | 香洲 | 25年 | 22,055 | 132.3万 |
| 横琴新区豪宅 | 140㎡ | 横琴 | 3年 | 35,951 | 503.3万 |
| 斗门刚需三房 | 95㎡ | 斗门 | 8年 | 12,699 | 120.6万 |
📦 产出物清单
- ✅ 清洗后数据集(
cleaned_full.csv) - ✅ 训练/测试特征集(
features_train.csv/features_test.csv) - ✅ 训练好的模型文件(
.joblib) - ✅ 评估报告(evaluation_report.md)
- ✅ 业务洞察报告(business_insights.md)
- ✅ PPT 演示文稿(
business_insights_refined.pptx) - ✅ 情景预测结果(scenario_predictions.csv)
- ✅ 交互式误差诊断页面(
error_diagnostics.html) - ✅ 各类可视化图表(15+ 张)
总结:项目从"业务理解 → 数据清洗 → 探索分析 → 特征工程 → 建模评估 → 情景模拟 → 结论输出"完整闭环均已实现,所有分析和建模任务均已完成!
结果图片展示
以下是项目生成的14 张图片的逐一介绍:
📊 EDA 探索性分析(4 张)
1. dist_unit_price.png — 单价分布直方图
展示珠海二手房**单价(元/㎡)**的整体分布形态。可以直观看到价格的集中区间、偏态程度以及是否有极端高/低价异常值。
2. dist_total_price.png — 总价分布直方图
展示二手房**总价(万元)**的分布情况,反映市场上主流总价段在哪里。
3. scatter_area_unitprice.png — 面积 vs 单价散点图
横轴面积、纵轴单价,每个点代表一套房(随机采样10%)。可以看出面积越大、单价越低的负相关趋势,以及不同面积段的价格离散程度。
4. corr_matrix.png — 数值特征相关性热力图
展示总价、单价、面积、室数、建造年份、房龄等数值字段之间的皮尔逊相关系数。红色=正相关,蓝色=负相关,数值越接近 ±1 关系越强。
5. box_unitprice_by_county_top10.png — Top10县区单价箱线图
按县区分组的单价箱线图,直观比较横琴、香洲、斗门、金湾等区域的单价水平、中位数和离散度。横琴和香洲通常明显高于其他区域。
🤖 模型评估(3 张)
6. eval_rf_pred_vs_true.png — 真实值 vs 预测值散点图
随机森林模型在测试集上的表现。横轴真实单价、纵轴预测单价,点越贴近红色对角线(y=x)说明预测越准。偏离对角线的点代表预测误差较大的样本。
eval_rf_pred_vs_true_chinese.png
7. eval_rf_residuals.png — 残差分布直方图
残差 = 真实值 − 预测值。理想情况应呈以 0 为中心的正态分布,代表模型无系统性偏差。偏左或偏右说明模型倾向于高估或低估。
eval_rf_residuals_chinese.png
8. feature_importance_top20.png — 特征重要性 Top20 条形图
展示随机森林模型中对房价预测贡献最大的前 20 个特征。通常总价、面积、县区(横琴/香洲)排在前列,帮助理解哪些因素真正驱动房价。
另有中文字体版本 eval_rf_pred_vs_true_chinese.png 和 eval_rf_residuals_chinese.png 作为备用。
🏠 户型深度分析(2 张)
9. room_type_analysis.png — 户型综合分析(三合一)
三张子图并列:
- 左图:室数分布柱状图(3室最多,超50%)
- 中图:不同室数 vs 单价箱线图(室数越多单价越低)
- 右图:不同室数 vs 面积箱线图(室数和面积正相关)
10. room_ting_wei_dist.png — 厅/卫分布
两张子图分别展示厅数分布(2厅最常见)和卫数分布(1-2卫为主)。
🏗️ 建筑年代分析(1 张)
11. building_age_analysis.png — 年代综合分析(四合一)
四张子图:
- 左上:建造年份分布直方图(中位年份约2013年)
- 右上:房龄分布直方图
- 左下:房龄 vs 单价散点图 + 红色趋势线(房龄越大单价越低)
- 右下:新房/较新/中等/老房四个年龄段的单价箱线图
🧭 朝向分析(1 张)
12. orientation_analysis.png — 朝向分布与价格
- 左图:各朝向房源数量柱状图(南向占据绝对主导)
- 右图:不同朝向的单价箱线图,可看出南北通透等朝向是否有溢价
📋 总结一览
| 图片 | 所属阶段 | 核心信息 |
|---|---|---|
| dist_unit_price.png | EDA | 单价整体分布 |
| dist_total_price.png | EDA | 总价整体分布 |
| scatter_area_unitprice.png | EDA | 面积与单价关系 |
| corr_matrix.png | EDA | 数值特征相关性 |
| box_unitprice_by_county_top10.png | EDA | 区域价格对比 |
| eval_rf_pred_vs_true.png | 评估 | 预测准确度 |
| eval_rf_residuals.png | 评估 | 误差分布 |
| feature_importance_top20.png | 评估 | 特征重要性排名 |
| room_type_analysis.png | 深度分析 | 户型-价格-面积关系 |
| room_ting_wei_dist.png | 深度分析 | 厅卫分布 |
| building_age_analysis.png | 深度分析 | 年代-价格四维分析 |
| orientation_analysis.png | 深度分析 | 朝向-价格关系 |
error分析html界面
error_diagnostics.html — 交互式误差诊断仪表盘
这个文件是一个可在浏览器中打开的交互式网页,由 13_error_interactive_dashboard.py 脚本生成,用于深入分析模型预测误差的来源和分布。
📊 包含哪三部分内容?
| 模块 | 内容 | 交互方式 |
|---|---|---|
| 误差统计表 | 按县区展示样本量、MAE、RMSE | 可搜索、排序、分页(DataTables) |
| 真实值 vs 预测值散点图 | 每个点代表一套房,颜色区分县区 | 悬停查看详情、缩放、拖拽 |
| 残差分布直方图 | 预测误差的整体分布形态 | 查看偏差和离散程度 |
| 县区 MAE 柱状图 | 水平柱状图,一眼看出哪个区误差最大 | 悬停查看精确数值 |
🔍 你能用它做什么?
快速定位模型弱点区域
- 从表格可以看到:高新区 MAE 最高(410 元/㎡),高栏港区最低(26 元/㎡)
- 说明模型对高新区房源预测不太准,可能需要补充该区域特征
检查预测偏差
- 散点图越贴近对角线(y=x),预测越准
- 如果某个区域点的颜色明显偏离对角线,说明该区域存在系统性偏差
发现异常值
- 直方图中远离 0 的"长尾"就是预测严重偏差的样本
- 可以据此排查数据质量问题(如挂牌价异常)
指导模型优化方向
- 针对高误差区域(横琴、高新区、香洲),可以考虑引入更多地理特征(如学区、商圈距离)来改善预测
