训练随机树回归模型 (Image Analyst)

获得 Image Analyst 许可后可用。

摘要

对解释变量(自变量)和目标数据集(因变量)之间的关系进行建模。

使用情况

  • 该工具用于使用各种数据类型进行训练。 输入栅格(解释变量)可以是一个栅格或栅格列表、单波段或多波段栅格(其中每个波段是一个解释变量)、多维栅格(其中栅格中的变量是解释变量)或数据类型的组合。

  • 输入镶嵌数据集将被视为栅格数据集(而非栅格集合)。 要使用栅格几何作为输入,请为镶嵌数据集构建多维信息,然后将结果作为输入。

  • 输入目标可以是要素类或栅格。 当目标为要素时,目标值字段的值必须设置为数值字段。

  • 如果输入目标要素具有日期字段或定义维度的字段,请指定目标值字段目标维度字段参数的值。

  • 输入栅格目标也可以是多维栅格。

  • 如果输入目标是多维的,则对应的输入解释变量必须至少具有一个多维栅格。 那些与目标维度相交的维度将用于训练;列表中的其他无维度栅格将应用于所有维度。 如果解释变量不相交,或者它们均无维度,则不会进行训练。

  • 如果输入目标无维度而解释变量有维度,则会使用第一个片。

  • 如果输出是多维栅格,则请使用 CRF 格式。 如果输出是无维度栅格,则可以以任意输出栅格格式存储。

  • 输入解释变量的像元大小将影响训练结果和处理时间。 默认情况下,该工具使用第一个解释栅格的像元大小;您可以使用像元大小环境设置进行更改。 一般来说,不建议您使用小于数据的像元大小进行训练。

  • 输出重要性表格参数值可以用于分析每个解释变量对预测目标变量的重要性。

  • 检查测试样本百分比参数以计算三种类型的错误:训练点错误、测试点错误和测试位置点错误。 例如,如果百分比值设置为 10,则将基于位置使用 10% 的训练样本点作为参考。 这些参考点将用于测量空间插值的误差,称为测试位置点。 剩余的训练样本点将分为两组 - 一组包含 90% 的训练样本点,另一组包含 10% 的训练样本点。 包含 90% 点的组将用于训练回归模型,包含 10% 点的组将用于测试以派生出准确度。

  • 检查测试样本百分比参数将生成预测训练样本值与参考训练样本值的散点图。 判决系数 (R-Squared) 也计算为拟合度的估计值。

  • 要创建预测值和训练值的散点图,您可以使用采样工具从预测的栅格中提取预测值。 然后使用采样工具输出中的 LocationID 字段和目标字段类中的 ObjectID 字段连接表。 如果目标输入是栅格,您可以从输入目标栅格和预测栅格中生成随机点和提取值。

参数

标注说明数据类型
输入栅格

单波段、多维或多波段栅格数据集,或包含解释变量的镶嵌数据集。

Mosaic Dataset; Mosaic Layer; Raster Dataset; Raster Layer; Image Service; String
目标栅格或点

包含目标变量(因变量)数据的栅格或点要素类。

Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service
输出回归定义文件

包含属性信息、统计数据和分类器其他信息的具有 .ecd 扩展名的 JSON 格式文件。

File
目标值字段
(可选)

目标点要素类或栅格数据集中要建模信息的字段名称。

Field
目标维度字段
(可选)

输入点要素类中定义维度值的日期字段或数值字段。

Field
栅格维度
(可选)

链接到目标数据中的维度的输入多维栅格(解释变量)的维度名称。

String
输出重要性表格
(可选)

包含模型中使用的每个解释变量重要性的描述信息的表格。 数字越大,说明相应变量与预测变量的相关性越大,在预测中的贡献也越大。 值的范围介于 0 到 1 之间,所有值的总和等于 1。

Table
树最大数量
(可选)

森林中的最多树数。 增加树的数量将提高精确度,尽管此改进会逐渐减缓。 树的数量将线性增加处理时间。 默认值为 50。

Long
树最大深度
(可选)

森林中的每个树的最大深度。 深度决定每个树为生成决策可以创建的规则数。 树的深度不会超过此设置。 默认值为 30。

Long
最大样本数
(可选)

用于回归分析的最大样本数。 值小于或等于 0 表示系统将使用所有输入目标栅格或点要素类的样本训练回归模型。 默认值为 10,000。

Long
每个像元的平均点
(可选)

指定当多个训练点属于一个像元时,是否会计算平均值。 仅当输入目标为点要素类时,此参数才适用。

  • 未选中 - 当多个训练点属于单个像元时,将使用所有点。 这是默认设置。
  • 选中 - 将计算像元内训练点的平均值。

  • 保留所有点当多个训练点属于单个像元时,将使用所有点。 这是默认设置。
  • 每个像元的平均点将计算像元内训练点的平均值。
Boolean
测试样本百分比
(可选)

将用于错误检查的测试点的百分比。 此工具用于检查三种类型的错误:训练点错误、测试点错误和测试位置点错误。 默认值为 10。

Double
输出散点图(pdf 或 html)
(可选)

PDF 或 HTML 格式的输出散点图。 输出将包含训练数据、测试数据和位置测试数据的散点图。

File
输出样本要素
(可选)

输出要素类将包含训练点、测试点和位置测试点的目标值和预测值。

Feature Class

TrainRandomTreesRegressionModel(in_rasters, in_target_data, out_regression_definition, {target_value_field}, {target_dimension_field}, {raster_dimension}, {out_importance_table}, {max_num_trees}, {max_tree_depth}, {max_samples}, {average_points_per_cell}, {percent_testing}, {out_scatterplots}, {out_sample_features})
名称说明数据类型
in_rasters
[in_rasters,...]

单波段、多维或多波段栅格数据集,或包含解释变量的镶嵌数据集。

Mosaic Dataset; Mosaic Layer; Raster Dataset; Raster Layer; Image Service; String
in_target_data

包含目标变量(因变量)数据的栅格或点要素类。

Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service
out_regression_definition

包含属性信息、统计数据和分类器其他信息的具有 .ecd 扩展名的 JSON 格式文件。

File
target_value_field
(可选)

目标点要素类或栅格数据集中要建模信息的字段名称。

Field
target_dimension_field
(可选)

输入点要素类中定义维度值的日期字段或数值字段。

Field
raster_dimension
(可选)

链接到目标数据中的维度的输入多维栅格(解释变量)的维度名称。

String
out_importance_table
(可选)

包含模型中使用的每个解释变量重要性的描述信息的表格。 数字越大,说明相应变量与预测变量的相关性越大,在预测中的贡献也越大。 值的范围介于 0 到 1 之间,所有值的总和等于 1。

Table
max_num_trees
(可选)

森林中的最多树数。 增加树的数量将提高精确度,尽管此改进会逐渐减缓。 树的数量将线性增加处理时间。 默认值为 50。

Long
max_tree_depth
(可选)

森林中的每个树的最大深度。 深度决定每个树为生成决策可以创建的规则数。 树的深度不会超过此设置。 默认值为 30。

Long
max_samples
(可选)

用于回归分析的最大样本数。 值小于或等于 0 表示系统将使用所有输入目标栅格或点要素类的样本训练回归模型。 默认值为 10,000。

Long
average_points_per_cell
(可选)

指定当多个训练点属于一个像元时,是否会计算平均值。 仅当输入目标为点要素类时,此参数才适用。

  • 未选中 - 当多个训练点属于单个像元时,将使用所有点。 这是默认设置。
  • 选中 - 将计算像元内训练点的平均值。

  • KEEP_ALL_POINTS当多个训练点属于单个像元时,将使用所有点。 这是默认设置。
  • AVERAGE_POINTS_PER_CELL将计算像元内训练点的平均值。
Boolean
percent_testing
(可选)

将用于错误检查的测试点的百分比。 此工具用于检查三种类型的错误:训练点错误、测试点错误和测试位置点错误。 默认值为 10。

Double
out_scatterplots
(可选)

PDF 或 HTML 格式的输出散点图。 输出将包含训练数据、测试数据和位置测试数据的散点图。

File
out_sample_features
(可选)

输出要素类将包含训练点、测试点和位置测试点的目标值和预测值。

Feature Class

代码示例

TrainRandomTreesRegressionModel 示例 1(Python 窗口)

Python 窗口脚本将对解释变量和目标数据集之间的关系进行建模。

# Import system modules 
import arcpy 
from arcpy.ia import * 

# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 

# Execute  
arcpy.ia.TrainRandomTreesRegressionModel("weather_variables.crf";"dem.tif", "pm2.5.shp", r"c:\data\pm2.5_trained.ecd",  "mean_pm2.5", "date_collected", "StdTime”,  r"c:\data\pm2.5_importanc.csv", 50, 30, 10000)
TrainRandomTreesRegressionModel 示例 2(独立脚本)

Python 独立脚本将对解释变量和目标数据集之间的关系进行建模。

# Import system modules 

import arcpy 
from arcpy.ia import * 

# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 

# Define input parameters 
in_weather_variables = "C:/Data/ClimateVariables.crf" 
in_dem_varaible = "C:/Data/dem.tif" 
in_target = "C:/Data/pm2.5_observations.shp" 
target_value_field = "mean_pm2.5" 
Target_date_field = "date_collected" 
Raster_dimension = “StdTime” 
out_model_definition = "C:/Data/pm2.5_trained_model.ecd" 
Out_importance_table = "C:/Data/pm2.5_importance_table.csv" 
max_num_trees = 50 
max_tree_depth = 30 
max_num_samples = 10000 

# Execute - train with random tree regression model 
arcpy.ia.TrainRandomTreesRegressionModel(in_weather_variables;in_dem_varaible, in_target, out_model_definition,  target_value_field, Target_date_field, Raster_dimension, max_num_trees, max_tree_depth, max_num_samples)

相关主题