机器学习+城市规划第十一期:地理加权回归(GWR)空间可视化实战:三张地图一目了然!
📍 引言
GWR(地理加权回归)是空间建模领域常用的一种方法,它考虑了变量与地理位置之间的关系,帮助我们揭示不同位置上变量作用强弱的空间差异。但相比模型本身,GWR 的可视化更具“说服力”与“直观性”。
在城市规划、地理信息科学、空间经济等领域中,我们不仅要“建模”,还要“看清空间差异”。
本次课程对于实战 GWR 空间可视化,重点解读以下三张图:
- ✅ 局部回归系数图(GWR Coefficients)
- 🟥 残差空间分布图(Residuals)
- 📊 局部决定系数图(Local R²)
🧠 可视化的意义是什么?
GWR 模型在每个地理位置拟合一套独立的回归系数,因此输出的结果具有空间属性,我们可以把模型结果直接映射到地图中!
这类空间可视化可以解答如下问题:
关键问题 | 可视化图 |
---|---|
哪些地方某变量影响强? | 局部系数图 |
哪些地方模型预测不准? | 残差图 |
模型在不同区域拟合效果如何? | 局部 R² 图 |
🌐 地理加权回归输出的空间文件
GWR 模型输出的 .geojson
文件是一个空间矢量数据集,每一行代表一个观测点(含坐标),附带字段如:
GWR_coef_X
: 解释变量 X 的局部回归系数GWR_resid
: 模型在该点的残差local_R2
: 局部决定系数(解释率)
你可以把它看成带“地理坐标”的 Excel 表格,非常适合用 geopandas
+ matplotlib
进行绘图。
🧪 可视化代码详解
以下是完整的 Python 可视化代码,对于之前我们的两次模型实战,基于gwr_tools工具包生成了一个geojson文件,下面对这个文件进行可视化。
# ===== 1. 导入依赖 =====
import geopandas as gpd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文
plt.rcParams['axes.unicode_minus'] = False # 负号正常
# ===== 2. 读取 GWR 输出的 GeoJSON =====
gdf = gpd.read_file("gwr_result.geojson")
# ===== 3. 通用绘图函数 =====
def plot_map(gdf, column, title, filename, cmap="coolwarm"):
fig, ax = plt.subplots(figsize=(10, 8))
gdf.plot(column=column,
cmap=cmap,
legend=True,
scheme="quantiles",
markersize=35,
ax=ax,
edgecolor='k')
ax.set_title(title, fontsize=14)
ax.axis("off")
plt.tight_layout()
plt.savefig(filename, dpi=300)
plt.show()
print(f"图像保存为 {filename}")
📈 三张核心图解读
1️⃣ 局部回归系数图(GWR_coef_X
)
plot_map(gdf,
column="GWR_coef_X",
title="GWR 局部回归系数空间分布",
filename="gwr_coef_map.png")
🧠 含义解释:
- 每个点的颜色表示:解释变量
X
在该位置的回归系数值 - 正值(红色):
X
对Y
有正向影响,数值越大,影响越强 - 负值(蓝色):
X
对Y
有抑制作用
📍 用途:
- 辅助城市局部因子分析(如:收入对骑行率影响在哪些地区更强?)
2️⃣ 残差图(GWR_resid
)
plot_map(gdf,
column="GWR_resid",
title="GWR 残差空间分布",
filename="gwr_resid_map.png",
cmap="bwr")
🧠 含义解释:
- 红色:模型预测高估,残差为正
- 蓝色:模型预测低估,残差为负
- 越接近 0,说明拟合效果越好
📍 用途:
- 判断模型是否在某些区域系统性失效
- 找出“模型盲区”或异常区域
3️⃣ 局部决定系数图(local_R2
)
if "local_R2" in gdf.columns:
plot_map(gdf,
column="local_R2",
title="GWR 局部R方空间分布",
filename="gwr_r2_map.png",
cmap="YlGnBu")
🧠 含义解释:
- 表示在该位置模型解释了多少方差
- 数值区间:0~1,越接近 1 拟合效果越好
📍 用途:
- 评估 GWR 在不同区域的拟合能力
- 如果某地 R² 明显偏低,说明变量在该区作用不明显,应考虑添加新解释变量
✅ 总结与建议
可视化图 | 作用 | 推荐色带 |
---|---|---|
GWR_coef | 看变量空间影响 | coolwarm |
GWR_resid | 看预测误差方向 | bwr |
local_R2 | 看模型拟合能力 | YlGnBu |
💬 结语
空间分析的核心不只是建模,而是通过可视化让空间变得可感知、可沟通、可决策。
在城市规划、空间回归、空间经济等领域,不妨用 GWR + 可视化,一图胜千言!
@原创声明:本教程由课题组内部教学使用,利用CSDN平台记录,不进行任何商业盈利。