Skip To Content

基于森林的分类与回归

注:

目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。

基于森林的分类与回归“基于森林的分类与回归”工具可使用 Leo Breiman 随机森林算法(一种监督式机器学习方法)的改编版本创建模型并生成预测 可以针对分类变量(分类)和连续变量(回归)执行预测。 解释变量可采用训练要素属性表中字段的形式。 除了基于训练数据对模型性能进行验证之外,还可以对要素进行预测。

工作流示意图

基于森林的分类与回归工作流示意图

使用 GeoAnalytics Tools 进行的分析

通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics ToolsArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别

示例

以下为工具的使用示例:

  • 给出有关海草是否存在的数据以及许多环境解释变量,除了距上游工厂和主要港口的距离之外,还可以根据对这些相同环境解释变量的预测来预测未来海草是否存在。
  • 可根据当年已售房屋的价格来预测房屋价值。 可使用已售房屋的售价以及有关卧室数量、距学校的距离、与主要高速公路的接近度、平均收入和犯罪计数的信息预测类似房屋的售价。
  • 给出有关儿童血铅水平及其房屋的征税宗地 ID 的信息,结合宗地属性(例如房屋年龄)、人口普查数据(例如收入和教育水平)和反映铅和铅化合物的毒物排放的国家数据集,可以预测没有血铅水平数据的宗地的铅暴露风险。 此类风险预测可能会告知该地区的政策和教育计划。

用法说明

该工具将创建数百棵树(称为决策树集成),从而创建可用于预测的模型。 将使用原始(训练)数据的随机生成部分创建每棵决策树。 每棵树可以生成自己的预测并对结果进行投票。 森林模型将考虑所有决策树的投票,以预测或分类未知样本的结果。 此功能非常重要,因为单棵树可能存在过度拟合模型的问题;但森林中的多棵树进行预测可解决与单棵树相关的过度拟合问题。

可以在两种操作模式下使用此工具。 探索不同的解释变量和工具设置时,可以使用训练模型以评估模型性能选项来评估不同模型的性能。 找到合适的模型后,可以使用拟合模型并预测值选项。 这是一个数据驱动工具,在大型数据集上性能最佳。 为获得最佳结果,应针对至少数百个要素对该工具进行训练。 该工具不适用于非常小的数据集。

输入训练要素可以是表格、点、线或面要素。 而且,此工具不能用于处理多部分数据。

如果要素的预测或解释字段中具有一个或多个空值或者空字符串值,则将从输出中排除该要素。 如果需要,可以使用计算字段对值进行修改。

该工具会生成各种输出。 生成的输出取决于操作模式,如下所示:

  • 训练模型以评估模型性能生成以下两个输出:
    • 输出已训练要素 - 包含创建的模型中使用的所有输入训练要素以及模型中使用的所有解释变量。 还包含用于训练模型的所有要素的预测,这对于评估所创建模型的性能非常有用。
    • 工具汇总消息 - 用于帮助您了解所创建模型的性能的消息。 这些消息包括有关模型要素、袋外误差、变量重要性以及验证诊断的信息。 要访问结果汇总,请单击 Map Viewer 经典版 中生成的图层下的显示结果 显示结果。 汇总信息也会添加到项目详细信息页面。
  • 拟合模型并预测值生成以下三个输出:
    • 输出已训练要素 - 包含创建的模型中使用的所有输入训练要素以及模型中使用的所有解释变量。 还将包含用于训练模型的所有要素的预测,这对于评估所创建模型的性能非常有用。
    • 输出预测要素 - 预测结果图层。 将预测应用于图层以使用从训练图层生成的模型进行预测(选择图层来预测值)。
    • 工具汇总消息 - 用于帮助您了解所创建模型的性能的消息。 这些消息包括有关模型要素、袋外误差、变量重要性以及验证诊断的信息。 要访问结果汇总,请单击 Map Viewer 经典版 中生成的图层下的显示结果 显示结果。 汇总信息也会添加到项目详细信息页面。

可以使用输出变量重要性表格参数创建一个表格,用于显示变量重要性的图表以进行评估。 消息窗口中还会报告前 20 个变量重要性值。 可以在内容窗格中的图层下方直接访问该图表。

解释变量可以来自字段,应包含各种值。 如果解释变量为分类变量,应选中分类复选框(将自动选中字符串类型的变量)。 尽管较小的类别数量可改善模型性能,但分类解释变量限于 60 个唯一值。 对于给定的数据大小,变量所包含的类别越多,则其影响模型的可能性越大,从而导致预测结果的有效性越低。

对解释变量进行匹配时,训练字段预测字段必须具有相同类型的字段(例如,训练字段中的双精度字段必须与预测字段中的双精度字段相匹配)。

基于森林模型不会进行外推;只能对模型训练所使用的值进行分类或预测。 使用在目标要素和变量范围内的训练要素和解释变量来训练模型。 如果类别存在于训练要素中不存在的预测解释变量中,则该工具将失败。

树数参数的默认值为 100。增加森林模型中的树数将使模型预测更加精准,但是将增加模型计算的时间。

要了解有关此工具工作原理的详细信息以及此实施所基于的 ArcGIS Pro 地理处理工具,请参阅基于森林分类和回归工作原理

局限性

基于森林的分类和回归的 GeoAnalytics 实施具有以下限制:

  • 支持要素数据集(点、线、面和表格)作为输入。 不支持栅格。
  • 支持训练单个图层和预测单个图层。 要将多个数据集合并为一个,请使用构建多变量格网从多变量格网丰富工具生成输入数据。

ArcGIS API for Python 示例

可通过 ArcGIS API for Python 获取基于森林的分类与回归工具。

本示例可构建模型并预测冰淇淋的销售情况。


# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS

# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Find the big data file share dataset you'll use for analysis
search_result = portal.content.search("", "Big Data File Share")

# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_SaleData")

# Look through the big data file share for ice cream sales data
icecream_sales = next(x for x in bdfs_search.layers if x.properties.name == "IceCreamSales")

# Run the Forest-based Classification and Regression tool
forest_model = arcgis.geoanalytics.analyze_patterns.forest(prediction_type = "train",
																																																											input_layer = icecream_sales, 
																																																											var_prediction = {"fieldName":"Amount", "categorical":true},
																																																											var_explanatory = [{"fieldName":"Weekend", "categorical":true},
																																																										 {"fieldName":"Temperature", "categorical":false}, 
																																																										 {"fieldName":"Holiday", "categorical":true}, 
																																																										 {"fieldName":"DistanceToBeach", "categorical":false}],
																																																											sample_size = 50,
																																																											output_name = "ice_cream_prediction")

类似工具

使用 ArcGIS GeoAnalytics Server 基于森林的分类与回归工具,通过 Leo Breiman 随机森林算法的改编版本生成预测或者进行建模。 其他工具或许在解决略有差异的类似问题时十分有用。

Map Viewer 经典版 分析工具

使用 ArcGIS GeoAnalytics Server 广义线性回归工具创建模型和预测。

ArcGIS Pro 分析工具

要从 ArcGIS Pro 运行此工具,您的活动门户必须为 Enterprise 10.7 或更高版本。您必须使用具有执行 GeoAnalytics 要素分析权限的帐户登录。

使用基于森林的分类与回归地理处理工具(作为“空间统计数据”工具箱的一部分),在 ArcGIS Pro 中执行类似的回归操作。

使用“空间统计数据”工具箱中的广义线性回归地理处理工具,在 ArcGIS Pro 中执行广义线性回归 (GLR) 可生成预测,或对因变量与一组解释变量的关系进行建模。

使用“空间统计数据”工具箱中的地理加权回归地理处理工具,在 ArcGIS Pro 中执行地理加权回归 (GWR)。