機器學習+城市規劃第十五期:時空地理加權回歸(STGWR)

機器學習+城市規劃第十五期:時空地理加權回歸(STGWR)

引言

隨著城市化進程的加速,城市規劃面臨越來越多復雜的挑戰。在傳統的城市規劃中,通常會考慮到地理位置的影響,但往往忽略了時間維度。而在現代城市的規劃與管理中,時間維度的作用變得至關重要,尤其是在處理動態變化的環境數據(如交通流量、環境污染等)時,時間和空間的聯動性不容忽視。

時空地理加權回歸(STGWR)是一種結合了空間加權回歸與時間序列分析的強大方法。它通過在空間和時間兩個維度上引入加權機制,可以更加精細地描述和分析地理區域內的時空變化規律。通過這種方法,城市規劃者能夠更好地把握區域性變化規律,制定出更精準的動態規劃策略。

1. 時空地理加權回歸(STGWR)的原理

1.1 原理簡介

時空地理加權回歸(STGWR)是在傳統地理加權回歸(GWR)的基礎上發展而來的,它將空間和時間兩大因素結合起來。在STGWR模型中,數據不僅根據空間位置進行加權,還根據時間戳進行加權,使得模型能夠同時反映出空間異質性時間動態性

  • 空間加權:通過地理位置的空間加權,考慮不同地點的數據對回歸結果的影響程度。
  • 時間加權:在考慮時間維度時,模型會對不同時間段的數據加以區分,使得模型能捕捉到時間變化對規劃任務的影響。

這種方法結合了時間與空間的變化規律,能夠使得模型對不同時間點、不同地理位置的數據做出動態調整和反應。

1.2 STGWR模型的特點

  • 時空雙重加權:STGWR不僅僅關注空間上鄰近區域的影響,還能夠根據時間序列的變化來調整權重。
  • 區域性和時效性:可以解決區域差異和時間差異的雙重問題,適用于動態和變化較大的城市數據分析。
  • 靈活性:可以處理大規模的空間和時間數據,適應城市規劃中的復雜需求。

1.3 STGWR的優勢

  • 精確性:能夠同時考慮空間和時間兩個維度,提高了預測結果的準確性。
  • 動態性:能夠隨著時間的變化調整模型的參數,適應城市的快速變化。
  • 個性化:可以根據不同區域和時間段的需求,進行精細化的規劃決策。

1.4 STGWR可以解決的城市規劃問題

  • 交通規劃:通過對交通流量隨時間和空間的變化進行建模,幫助優化交通路線和管理方案。
  • 環境監測:分析空氣污染、溫度、濕度等因素隨時間和地點的變化,進行環境質量預測與管理。
  • 城市資源分配:根據時間和空間的變化,合理分配城市公共資源(如水電供應、公共衛生服務等)。
  • 災害應對:監測和預測災害(如洪水、地震等)對不同區域在不同時段的影響,提供決策支持。

1.5 適用的場景

  • 城市交通流量預測:分析不同時間段的交通流量變化,優化交通信號和道路規劃。
  • 城市環境監控:實時監控空氣質量、溫度等環境數據的時空變化,及時響應污染問題。
  • 突發事件應急管理:通過監測不同時段、不同區域的資源消耗情況,及時調整應急響應策略。

2. 時空地理加權回歸(STGWR)的實現

為了幫助大家更好地理解STGWR的實現,下面我將展示一個簡單的代碼示例。該代碼實現了一個時空地理加權回歸模型,并提供了示例數據,使得用戶可以直接復現這一模型。

2.1 示例數據結構

假設我們有以下數據結構,用于描述城市中的每個地理位置在不同時段的特征:

緯度經度時間標簽因變量自變量1自變量2
30.123120.4562021-01-015005.23.1
30.124120.4572021-01-014504.92.8
30.123120.4562021-01-025205.43.2
30.124120.4572021-01-024705.12.9

在這個示例中,我們包含了以下幾列數據:

  • 緯度:數據點的地理緯度。
  • 經度:數據點的地理經度。
  • 時間標簽:數據點的時間標簽,用于表示數據所處的時間。
  • 因變量:我們要預測的目標變量,例如某個區域的交通流量、空氣質量指數等。
  • 自變量:與因變量相關的因素,如溫度、濕度、道路數量、建筑物密度等。

2.2 STGWR代碼實現

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from scipy.spatial.distance import cdist
import matplotlib.pyplot as plt# 示例數據
data = {'latitude': [30.123, 30.124, 30.123, 30.124],'longitude': [120.456, 120.457, 120.456, 120.457],'time': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02'],'dependent_var': [500, 450, 520, 470],'independent_var_1': [5.2, 4.9, 5.4, 5.1],'independent_var_2': [3.1, 2.8, 3.2, 2.9],
}df = pd.DataFrame(data)# 標準化數據
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['independent_var_1', 'independent_var_2']] = scaler.fit_transform(df[['independent_var_1', 'independent_var_2']])# Haversine距離函數
def haversine(lat1, lon1, lat2, lon2):R = 6371  # 地球半徑(公里)phi1, phi2 = np.radians(lat1), np.radians(lat2)delta_phi = np.radians(lat2 - lat1)delta_lambda = np.radians(lon2 - lon1)a = np.sin(delta_phi / 2) ** 2 + np.cos(phi1) * np.cos(phi2) * np.sin(delta_lambda / 2) ** 2c = 2 * np.arctan2(np.sqrt(a), np.sqrt(1 - a))return R * c# 計算地理坐標之間的距離矩陣
def compute_distance_matrix(coords):return cdist(coords, coords, metric='euclidean')# 時空加權回歸
def stgwr(df, bandwidth):coords = df[['latitude', 'longitude']].to_numpy()time = pd.to_datetime(df['time']).astype(int)  # 將時間轉化為整數表示# 計算空間距離dist_matrix = compute_distance_matrix(coords)# 計算時間加權time_diff = np.abs(time.values[:, None] - time.values) / (10000000000)  # 將時間差轉換為秒# 計算權重矩陣(空間與時間加權)spatial_weights = np.exp(-dist_matrix ** 2 / (2 * bandwidth ** 2))temporal_weights = np.exp(-time_diff ** 2 / (2 * bandwidth ** 2))weights = spatial_weights * temporal_weights# 自變量和因變量X = df[['independent_var_1', 'independent_var_2']].valuesy = df['dependent_var'].values# 進行回歸分析model = LinearRegression()model.fit(X, y, sample_weight=weights.flatten())return model, model.predict(X)# 設置帶寬(可以調整)
bandwidth = 1.0# 執行時空地理加權回歸
model, predictions = stgwr(df, bandwidth)# 輸出回歸結果
print("回歸系數:", model.coef_)
print("預測值:", predictions)

2.3 數據示例與解釋

該代碼首先定義了一個簡單的城市數據集,其中包含了四個數據點,每個數據點包含了經緯度時間標簽因變量和若干自變量。我們通過標準化處理自變量數據后,使用Haversine距離來計算空間距離,并計算每個數據點在時間和空間上的權重。

總結

時空地理加權回歸(STGWR)是一種非常適合于城市規劃領域的模型,它可以幫助我們有效地分析和預測城市中的動態變化。通過考慮時間和空間的雙重維度,STGWR不僅能夠捕捉空間異質性,還能夠反映出時間變化對城市規劃的影響。在實際應用中,STGWR可廣泛應用于交通流量預測、環境監測、資源調度等多個場景。

希望通過本期的講解,大家能夠深入理解STGWR的原理及應用,并能夠將其運用到實際的城市規劃任務中。

原創聲明:本教程由課題組內部教學使用,利用CSDN平臺記錄,不進行任何商業盈利。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83290.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用虛擬機安裝macos系統之后進入Boot Manager頁面

安裝教程:在VMware中安裝macos系統教程 在VMware中安裝macos系統時啟動后進入Boot Manager界面,通常是由于虛擬機的固件類型設置于鏡像不兼容所致。 解決辦法:虛擬機默認使用UEFI啟動模式,但是部分macos鏡像需要切換到BIOS模式才…

基于API的Redis緩存實現

1.使用Redis API 進行業務數據緩存管理 編寫一個進行業務處理的類ApiCommentService,使用Autowired注解注入Redis API中常用的RedisTemplate(類似于Java基礎API中的JdbcTemplate); 然后在數據查詢、修改和刪除三個方法中,根據業…

前沿論文匯總(機器學習/深度學習/大模型/搜廣推/自然語言處理)

文章目錄 1 前言2 大模型/自然語言處理2.1 FreeAL:在大模型時代實現無需人工的主動學習2.2 COLD:中文攻擊性語言檢測基準2.3 將詞匯的對比信息融入詞嵌入以實現反義詞-同義詞區分2.4 LogRAG:基于檢索增強生成的半監督日志異常檢測2.5 RankRAG…

PP-OCRv5 ubuntu20.04 OCR識別服務

目錄 說明 使用 效果 下載 說明 PP-OCRv5 ubuntu20.04 OCR識別服務 使用 1、下載后解壓 2、進入目錄、運行程序 效果 1、瀏覽器訪問 2、接口調用 下載 方式1 源碼下載 方式2 通過網盤分享的文件:lw.PP_OCRService.tar.gz 鏈接: https://pan.baidu.com…

VScode打開后一直顯示正在重新激活終端 問題的解決方法

一、問題 本人打開“.py”文件后,同時會出現以下兩個問題。 1、VScode一直循環在”正在重新激活終端“ 2、日志顯示intellicode報錯: Sorry, something went wrong activating IntelliCode support for Python. Please check the “Python” and “VS I…

uniapp 實現騰訊云音視頻通話功能

uniapp 深度集成騰訊云音視頻通話功能實戰指南 一、技術架構解析 騰訊云音視頻解決方案采用IM信令控制層TRTC媒體傳輸層的雙架構設計,實現核心能力解耦: #mermaid-svg-DKBpT4CVDkqU1IBw {font-family:"trebuchet ms",verdana,arial,sans-ser…

linux常見問題之截取文件指定行數

linux常見問題之截取文件指定行數 一、命令概述 在處理大文本文件時,我們打開該文件會非常不方便,比如服務器上的日志文件,于是我們常常需要提取特定的行進行分析。Linux 系統中提供了多個強大的命令行工具,可以幫助我們高效地完…

微前端 - Native Federation使用完整示例

這是一個極簡化的 Angular 使用angular-architects/native-federation 插件的微前端示例,只包含一個主應用和一個遠程應用。 完整示例展示 項目結構 federation-simple/ ├── host-app/ # 主應用 └── remote-app/ # 遠程應用 創建遠程應用 (remote…

無服務器架構的企業級應用深度解析:Serverless技術選型與成本模型

?? 目錄 引言:無服務器架構的興起無服務器架構核心概念主流Serverless平臺技術對比企業級應用場景分析成本模型深度分析私有化部署與云端服務對比決策框架構建最佳實踐與建議未來發展趨勢結論引言:無服務器架構的興起 在云計算快速發展的今天,無服務器架構(Serverless)…

內網有貓和無線路由器,如何做端口映射從而實現外網訪問

內網貓和無線路由器端口映射配置指南 端口映射(Port Forwarding)是將外網請求引導到內網特定設備和端口的技術,常用于遠程訪問、搭建服務器等場景。以下是配置方法: 基本原理 貓(調制解調器)&#xff1a…

Spring boot應用監控集成

Spring Boot應用監控集成記錄 背景 XScholar文獻下載應用基于Spring Boot構建,需要接入Prometheus監控系統。應用已部署并運行在服務器上,需要暴露metrics端點供Prometheus采集。 初始狀態 應用信息 框架: Spring Boot 2.x部署端口: 10089服務器: L…

安寶特案例丨又一落地,Vuzix AR眼鏡助力亞馬遜英國倉庫智能化升級!

Vuzix M400智能眼鏡近日落地亞馬遜(英國)倉庫,通過解放雙手、免提操作優化物流效率。 安寶特&VuzixAR智能眼鏡解決方案為亞馬遜倉庫提供實時決策支持、無縫對接員工-主管-企業管理系統,并加速了新員工培訓流程,優…

ui框架-文件列表展示

ui框架-文件列表展示 介紹 UI框架的文件列表展示組件,可以展示文件夾,支持列表展示和圖標展示模式。組件提供了豐富的功能和可配置選項,適用于文件管理、文件上傳等場景。 功能特性 支持列表模式和網格模式的切換展示支持文件和文件夾的層…

使用QMediaPlayer開發音樂播放器

編譯完成的程序下載:【免費】使用QMediaPlayer開發音樂播放器資源-CSDN文庫 完整源碼:使用QMediaPlayer開發音樂播放器源碼資源-CSDN文庫 需求分析: 1.本地音樂播放器 核心播放功能 支持常見音頻格式本地播放MP3、WAV、FLAC 等 2.播放控制:播放 / 暫停 / 停止 / 上一曲…

Linux-07 ubuntu 的 chrome 啟動不了

文章目錄 問題原因解決步驟一、卸載舊版chrome二、重新安裝chorme三、啟動不了,報錯如下四、啟動不了,解決如下 總結 問題原因 在應用中可以看到chrome,但是打不開(說明:原來的ubuntu系統出問題了,這個是備用的硬盤&a…

【Redis】緩存雪崩、緩存擊穿、緩存穿透

目錄 1、緩存雪崩【1】定義【2】原因【3】解決方案[1]差異化過期時間[2]多級緩存[3]熔斷降級[4]緩存永不過期異步更新 2、緩存擊穿【1】定義【2】原因【3】解決方案[1]互斥鎖[2]邏輯過期[3]熱點數據加載 3、緩存穿透【1】定義【2】原因【3】解決方案[1]緩存空對象[2]布隆過濾器…

【論文閱讀筆記】萬花筒:用于異構多智能體強化學習的可學習掩碼

摘要 在多智能體強化學習(MARL)中,通常采用參數共享來提高樣本效率。然而,全參數共享的流行方法通常會導致智能體之間的策略同質,這可能會限制從策略多樣性中獲得的性能優勢。為了解決這一關鍵限制,我們提出…

vue2 , el-select 多選樹結構,可重名

人家antd都支持,elementplus 也支持,vue2的沒有,很煩。 網上其實可以搜到各種的,不過大部分不支持重名,在刪除的時候可能會刪錯,比如樹結構1F的1樓啊,2F的1樓啊這種同時勾選的情況。。 可以全…

golang循環變量捕獲問題??

在 Go 語言中,當在循環中啟動協程(goroutine)時,如果在協程閉包中直接引用循環變量,可能會遇到一個常見的陷阱 - ??循環變量捕獲問題??。讓我詳細解釋一下: 問題背景 看這個代碼片段: fo…

【一文看懂Spring循環依賴】Spring循環依賴:從陷阱破局到架構涅槃

🌪? Spring Boot循環依賴:從陷阱破局到架構涅槃 循環依賴如同莫比烏斯環上的螞蟻,看似前進卻永遠困在閉環中。本文將帶你拆解Spring中這一經典難題,從臨時救火到根治重構,構建無懈可擊的依賴體系。 🔥 一、…