使用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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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设计目的…