机器学习+城市规划第十一期:地理加权回归(GWR)空间可视化实战:三张地图一目了然!

发布于:2025-05-18 ⋅ 阅读:(23) ⋅ 点赞:(0)

机器学习+城市规划第十一期:地理加权回归(GWR)空间可视化实战:三张地图一目了然!

📍 引言

GWR(地理加权回归)是空间建模领域常用的一种方法,它考虑了变量与地理位置之间的关系,帮助我们揭示不同位置上变量作用强弱的空间差异。但相比模型本身,GWR 的可视化更具“说服力”与“直观性”

在城市规划、地理信息科学、空间经济等领域中,我们不仅要“建模”,还要“看清空间差异”。

本次课程对于实战 GWR 空间可视化,重点解读以下三张图:

  1. ✅ 局部回归系数图(GWR Coefficients)
  2. 🟥 残差空间分布图(Residuals)
  3. 📊 局部决定系数图(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 在该位置的回归系数值
  • 正值(红色)XY 有正向影响,数值越大,影响越强
  • 负值(蓝色)XY 有抑制作用

📍 用途:

  • 辅助城市局部因子分析(如:收入对骑行率影响在哪些地区更强?)

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平台记录,不进行任何商业盈利。