使用GIS中基于森林的分類與回歸模型來估算房屋價值

“基于森林的分類與回歸”,它可以幫助分析師有效地設計、測試和部署預測模型。

基于森林的分類與回歸應用了 Leo Breiman 的隨機森林算法,這是一種用于分類和預測的流行監督機器學習方法。該工具允許分析師輕松整合表格屬性、基于距離的要素和解釋柵格來構建預測模型,并擴展預測模型,使其可供所有 GIS 用戶使用。

為了展示基于森林的分類與回歸模型的潛力,我們解決了數據科學界的一個熱門問題:預測房屋售價。讓我們來看一個基礎練習,構建一個融入空間因素的模型,以幫助改進加州房屋售價的預測。

預測加州房價

我們將首先使用 Kaggle 上流行的加州住房數據集,其中包含加州的各個地區以及每個地區房屋的一系列聚合屬性。

將顯示縮放圖像

僅通過查看上表很難做出任何有意義的事情,因此讓我們繪制每個區域的地圖,并用每個地點的平均房屋銷售價值來表示:

將顯示縮放圖像

加州各地區房屋銷售價值

在這張地圖中,每個點都代表加利福尼亞州某個區域的質心。顏色范圍代表該區域內所有房屋的平均售價。藍色代表低售價,黃色代表中等售價,紅色代表最高售價。

僅從這張地圖來看,您是否注意到了任何一般模式?

您可能會注意到,價格較高的房屋通常位于最大的都市區附近。您還可能會注意到,價格較高的房屋通常位于海岸線附近。ArcGIS Pro 中的快速探索性圖表可幫助我們探索這些模式:

將顯示縮放圖像

房屋中位價按距離海洋的分布

讓我們查看所提供表格中的其余數據。每條記錄包含該區域內所有房屋的一些基本數據點:

將顯示縮放圖像

每個區域的房屋中位價是我們要預測的變量,這些屬性對于幫助估計每個價值可能很重要。

我們將首先參考 Aurélien Geron 在其著作《使用 Scikit-Learn 和 TensorFlow 進行機器學習》中提供的示例,該書主要使用非空間因素(即上表中所示的屬性)構建了一個隨機森林模型。我們將此模型與第二個模型進行比較,在該模型中,我們開始引入其他 GIS 圖層,以評估每個區域與感興趣地點的距離如何幫助該模型在估算房屋中位價時有所改進。

非空間模型

我們的第一個模型將遵循使用 Scikit-Learn 和 TensorFlow 進行機器學習的示例,對每個道記錄使用以下特征:

  • 中位數收入
  • 住房平均年齡
  • 客房總數
  • 臥室總數
  • 人口
  • 家庭
  • 靠近海洋

讓我們打開基于森林的分類和回歸工具并開始吧:

第一個參數指定要執行的運行類型。對于此基礎探索,我們希望評估模型診斷(即預測性能),并在引入和測試因子組合時監測變化。因此,我們將此參數保留為“僅訓練”。

我們將指定輸入訓練特征,使用“median_house_value”屬性傳遞加利福尼亞州各區域的 GIS 圖層作為預測變量,然后在“解釋訓練變量”參數部分中,通過選擇輸入數據中相應的列來指定模型將使用哪些屬性。完成后,您的地理處理工具輸入應如下所示:

執行模型后,該工具會構建一個森林,用于建立解釋變量與指定要預測的變量之間的關系。有關此工具工作原理的更多信息,請務必閱讀此內容。

一旦工具完成運行,您應該收到有關模型性能的詳細診斷:

對主要變量重要性的評估可以大致了解哪些因素對模型有幫助(中位數收入和海洋距離非常重要)。現在,讓我們記下 R 平方值:0.706(實際執行時可能會略有不同)。

請注意:要創建一個每次運行都不會發生變化的模型,可以在隨機數生成器環境設置中設置種子。模型中仍然會存在隨機性,但該隨機性在每次運行之間保持一致。

空間模型

既然我們已經嘗試了主要使用非空間因素的房屋銷售價值估算方法,那么讓我們來探索一下,隨著引入基于距離的訓練特征,模型會發生怎樣的變化。目標是計算每個地塊與一系列與房價相關的潛在重要特征之間的距離。為了進行簡單的探索性練習,我們引入了高爾夫球場、學校、醫院、休閑區和墓地等點要素類。我們還將引入加州海岸線的折線要素類。

為了計算所有這些距離,您可以構思一個腳本來迭代每個記錄并運行一些鄰近函數來確定每個幾何記錄之間的距離……或者您可以簡單地打開基于森林的分類和回歸工具并將每個要素類拖放到解釋訓練距離要素參數中:

加載完每個距離要素后,我們就可以運行該工具了。此時我們的參數如下所示:

請隨意嘗試您自己的潛在解釋訓練因素!舉個簡單的例子:您能否找到一個公共交通站點位置的數據集,將其導入 ArcGIS Pro 項目,并將這些位置加載到“解釋訓練距離要素”參數中?這個因素會如何改變您的模型?

一旦工具運行,我們就可以評估我們的診斷并與原始模型進行比較:

新的回歸診斷結果的 R 平方為 0.763。有趣的是,一個主要考慮距離因素的基礎模型的表現比主要考慮房屋非空間特征(例如浴室數量等)的原始模型略好。總而言之,這證明了“位置、位置、位置”這句格言的真實性!

該工具的運行還將提供輸入數據的模型輸出:

將顯示縮放圖像

由于我們基本上是基于已知值的記錄進行預測,因此這本身并沒有什么用處,但它有助于了解基于距離的特征如何影響模型性能。更棒的是,能夠以如此快速直觀的方式將現有的額外 GIS 數據整合到模型的鄰近性考量中,這非常有用。

注意:基于森林的分類與回歸的另一個重要方面是,候選解釋因素中的多重共線性效應不會妨礙您創建有效的模型。為了了解隨機森林如何緩解多重共線性問題,我建議您進一步探索工具文檔和其他隨機森林文檔。

結論和資源

執行分析以預測任何事件或值必然是一項探索性、迭代性、混亂且耗時的工作。為了支持這些工作流程,我們需要能夠快速整合空間數據、支持測試、快速評估結果并允許重復操作直至獲得滿意結果的工具。

基于森林的分類和回歸擴展了強大的隨機森林機器學習算法的實用性,它不僅能夠考慮模型中的屬性數據,還能考慮基于距離的訓練特征和解釋柵格,以便在分析中利用位置。

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

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

相關文章

《 java 隨想錄》| LeetCode鏈表高頻考題

前言:這是專門針對java語言講解的算法解析(題目順序大致參考《代碼隨想錄》)思維導圖操作鏈表刪除節點刪除鏈表中 D 節點時,只需將其前驅節點 C 的 next 指針指向 D 的下一個節點 E。添加節點?先讓 新節點 F 的 next 指針 指向 C…

學習嵌入式的第三十一天-數據結構-(2025.7.23)網絡協議封裝

今天的內容主要是網絡協議以及常用工具的介紹。協議頭與數據封包/拆包數據封包示例:MAC|IP|TCP|hello| ———————————— IP數據報IP頭信息默認20字節常用網絡測試工具telnetnetstatpingarpwiresharktcpdumpssh2secure crt工具安裝命令sudo ufw disable sud…

STL學習(十、常用排序、拷貝、替換算法)

目錄 一、常用排序算法 1.sort (1) 內置數據類型 (2)自定義數據類型 2. random_shuffle(iterator beg, iterator end) 3.merge 4.reverse 二、常用的拷貝和替換算法 1.copy(起始不如直接賦值) 2.replace 3.replace_if 4.swap 一、常用排序算法 1.sort 函數原型 s…

【Datawhale AI夏令營】科大訊飛AI大賽(大模型技術)/夏令營:讓AI理解列車排期表(Task3)

我沒招了jpgimport pandas as pd import requests import re import json from tqdm import tqdm from datetime import datetime, timedeltadef calculate_stop_duration(arrival_time_str, departure_time_str):"""計算列車停留時長,處理跨天和異常…

【前后端】node mock.js+json-server

JSON-Server 一個在前端本地運行,可以存儲json數據的server。前端開發可以模擬服務端接口數據,在本地搭建一個JSON服務,自己產生測試數據。 使用npm全局安裝json-server :npm install -g json-server可以通過查看版本號&#xff0…

疏老師-python訓練營-Day30模塊和庫的導入

浙大疏錦行 知識點回顧: 導入官方庫的三種手段導入自定義庫/模塊的方式導入庫/模塊的核心邏輯:找到根目錄(python解釋器的目錄和終端的目錄不一致) 作業:自己新建幾個不同路徑文件嘗試下如何導入 一.學習知識點 DAY30 …

神經網絡知識討論

AI 核心任務與數據類型:特征提取核心:AI 的核心是從原始輸入數據中提取特征,CV 是將圖像數據轉換為計算機可識別的特征,NLP 是將文本數據轉換為特征,數據挖掘是將結構化數據轉換為特征。數據類型特點:圖像數…

kotlin類型可為空,進行空安全的區別

定義一個可為空的變量b(String?),默認沒有?是不可以為空的 var b: String? "Kotlin" b null print(b) // 輸出 null默認不可為空 var a: String "Kotlin" a null // 編譯器報錯,null 不能被賦給不為空的變量空安全調用&#x…

Mysql事務基礎

事務是一個不可分割的數據庫操作序列,也是數據庫并發控制的基本單位,其執行的結果必須使數據庫從一種一致性狀態變到另一種一致性狀態。事務是邏輯上的一組操作,要么都執行,要么都不執行 事務的特點 A(Atomicity&#…

FastAPI入門:安裝、Pydantic、并發和并行

本系列參考FastAPI官方文檔:https://fastapi.tiangolo.com/zh/python-types/安裝 使用pip安裝: pip install fastapi此外還需要 ASGI 服務器,生產環境可以使用 Uvicorn 或者 Hypercorn。 ASGI服務器:異步服務網關接口,…

歡樂的周末 - 華為OD統一考試(JavaScript 題解)

題目描述 小華和小為是很要好的朋友,他們約定周末一起吃飯。 通過手機交流,他們在地圖上選擇了多個聚餐地點(由于自然地形等原因,部分聚餐地點不可達)。 求小華和小為都能到達的聚餐地點有多少個? 輸入描述 第一行輸入m和n,m代表地圖的長度,n代表地圖的寬度 第二行…

算法競賽階段二-數據結構(38)數據結構動態鏈表list

動態鏈表(List)的基本概念動態鏈表是一種線性數據結構,通過節點間的指針連接實現動態內存分配。與數組不同,鏈表的大小可隨需增減,插入和刪除操作的時間復雜度為 O(1)(已知位置時),但…

Qt 移動應用推送通知實現

推送通知是移動應用提升用戶粘性的核心功能——無論是即時消息提醒、活動推送還是狀態更新,都需要通過推送功能觸達用戶。Qt雖未直接提供跨平臺推送API,但可通過集成原生服務(如Firebase Cloud Messaging、Apple Push Notification service&a…

Word和WPS文字如何制作分欄試卷?想分幾欄分幾欄

使用Word和WPS文字制作試卷的時候,通常會使用A3大小的紙張,橫向布局。但是如果題目的題干、問題、選項文字太少,會帶來試卷上有較大的空白,既不美觀又浪費紙,解決辦法就是將試卷分欄,根據需要分成多欄&…

ubuntu 安裝vmware tools

VMware Workstation菜單欄->虛擬機->安裝VMware Tools 打開ubuntu內加載的光盤,復制VMwareTools-10.3.26-22085142.tar.gz,解壓出來 sudo ./vmware-install.pl #執行安裝軟件 VMware Tools 安裝完成以后重啟Ubuntu,重啟以后就可以直…

【實時Linux實戰系列】在實時應用中進行負載均衡

在實時應用中,負載均衡是確保系統能夠高效處理多個任務的關鍵技術。通過合理調度任務到不同的處理單元,負載均衡可以提高系統的整體性能,減少延遲,并提高資源利用率。在實時 Linux 系統中,負載均衡尤為重要&#xff0c…

bash的特性-命令和文件自動補全

一、前言在 Linux Shell 編程和日常使用中,Bash 的自動補全功能 是一個非常強大且實用的特性。它不僅可以節省輸入時間,還能有效減少拼寫錯誤,提升命令執行效率。本文將帶你全面了解 Bash 的自動補全機制,包括:? 命令…

Ubuntu系統 系統盤和數據盤擴容具體操作

Linux磁盤配置和需求,以下是完整的操作方案: 可以看到系統盤vda3 還有48GB 數據盤則是還有512GB沒有掛載使用,下面是完成數據擴容的具體操作 一、完成系統盤擴容(使用98GB空間) # 1. 擴展邏輯卷(LVM架構&am…

從0到1學Pandas(七):Pandas 在機器學習中的應用

目錄一、數據預處理1.1 特征提取1.2 數據標準化與歸一化1.3 特征編碼二、特征工程2.1 特征選擇?2.2 特征組合與衍生?2.3 缺失值處理策略?三、模型訓練與評估3.1 數據集劃分3.2 模型訓練與預測3.3 模型評估與調優四、Pipeline 構建4.1 自動化工作流4.2 模型部署與應用4.3 模型…

LangChain和LangGraph 里面的 `create_react_agent`有什么不同

這兩個函數雖然名稱相同,但來自不同的庫(LangChain 和 LangGraph),它們在實現和使用上有一些關鍵區別: 主要區別特性LangChain 的 create_react_agentLangGraph 的 create_react_agent所屬庫LangChainLangGraph設計目的…