为预测准备数据 (空间统计)

摘要

强化基于森林的增强分类与回归广义线性回归仅存在预测工具以及其他模型中的预测工作流数据。 这涉及将要素分割成训练集和测试集,从栅格和距离要素中提取变量,平衡数据以提升分类精度,对偏差空间数据进行空间细化。

了解为预测准备数据的工作原理详情

插图

为预测工具准备数据说明

使用情况

  • 经过平衡处理的训练数据应仅用于训练预测模型。 不应基于已经过平衡处理的数据来验证模型,以避免精度偏差和数据泄露。

  • 需要 ArcGIS Spatial Analyst 扩展模块 来将栅格用作解释变量。

  • 如果使用分类来预测稀有事件或不平衡类别,则可使用平衡类型参数来平衡每个分类等级内的样本数。 过采样方法将增加总体要素数,而欠采样将减少总体要素数。

  • 如果将分割类型参数设为随机分割空间分割,则可借助使用空间统计模型文件预测工具,使用输出测试要素来评估模型精度。 当运行所选分析工具时,请确保输出是空间统计模型文件。

  • 如果将分割类型参数设置为随机分割空间分割,则该工具将确保要预测的变量以及任何解释变量的所有分类等级都出现在输出训练要素中。 测试数据集中无需包含所有分类等级。

参数

标注说明数据类型
输入要素

将执行分割、提取和平衡的要素。

Feature Class
输出要素

将在模型工具中用作训练要素的输出要素。

Feature Class
分割类型
(可选)

指定用于将输入要素分割成训练子集和测试子集的方法。

  • 随机分割输入要素将随机分割成训练子集和测试子集。 这是默认设置。
  • 空间分割输入要素将在空间上分割成训练子集和测试子集。
  • 输入要素将不分割。
String
输出测试子集要素
(可选)

可用作测试要素的输入要素参数值的子集。 当将分割类型参数设置为随机分割空间分割时,此参数可用。

Feature Class
要预测的变量
(可选)

输入要素参数值中的变量,其中包含要用于训练模型的值。 该字段包含将用于在未知位置进行预测的变量的已知(训练)值。

Field
将变量视为分类变量
(可选)

指定要预测的变量参数值是否将被视为分类变量。

  • 选中 - 要预测的变量参数值将被视为分类变量。
  • 未选中 - 要预测的变量参数值将不被视为分类变量;它将被视为连续变量。 这是默认设置。

Boolean
解释变量
(可选)

表示解释变量的字段列表,可帮助预测要预测的变量参数值的值或类别。 对于任何表示类或类别(例如,土地覆被或存在/不存在)的变量,请选中类别复选框。

Value Table
解释距离要素
(可选)

解释训练距离要素。 通过计算给定要素与输入要素参数值的距离可自动创建解释变量。 将计算输入要素参数值中的每个要素与此参数中的最近要素之间的距离。 如果此参数值为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。

Feature Layer
解释栅格
(可选)

从栅格中提取的解释训练变量。 解释训练变量将通过提取栅格像元值自动创建。 对于输入要素参数值中的每个要素,将在此确切位置处提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 对于任何表示类或类别(例如土地覆被或存在/不存在)的栅格,请选中类别复选框。

Value Table
将面转换为用于训练的栅格分辨率
(可选)

如果输入要素参数值为面要素,要预测的变量参数值为类别变量,并且仅提供了解释栅格参数值,则需要指定面的处理方式。

  • 选中 - 将面划分为所有栅格像元,其中质心落在面范围内。 提取每个质心处的栅格值并将其用于训练模型。 不再基于该面对模型进行训练,而是基于针对每个像元质心提取的栅格值对其进行训练。 这是默认设置。
  • 未选中 - 将为每个面指定基础连续栅格的平均值或基础类别栅格的众数值。

Boolean
作为测试子集的数据百分比
(可选)

要保留为测试数据集或验证数据集的输入要素百分比。 默认值为 10。

Double
平衡类型
(可选)

指定用于平衡不平衡的要预测的变量参数值或输入要素的空间偏差的方法。 该平衡方法仅应用于输出要素参数值。

  • 输入要素不进行平衡。 这是默认设置。
  • 空间细化通过移除要素,并确保每组剩余点之间的距离等于或大于最小最近邻距离参数值,来减少空间偏差。 如果要预测的变量参数值是分类变量,则将对每个类应用空间细化。 否则,将对输出要素参数值中的所有要素应用空间细化。
  • 随机欠采样将从每个非少数类中移除随机要素,直到要素数与少数类中的要素数相匹配。
  • Tomek 欠采样每个非少数类中与少数类要素相近的要素都将被移除。 此方法将改善类之间的边界;然而每个类可能都有不同数目的要素。
  • K 中心点欠采样非少数类中不代表该类的要素都将被移除,直到要素数与少数类中的要素数相匹配。
  • 随机过采样少数类中的要素将随机复制,直到要素数与少数类中的要素数相匹配。
  • SMOTE(过采样)通过在现有要素之间插值,来针对少数类生成合成要素,直到要素数与少数类中的要素数相匹配。
String
最小最近邻距离
(可选)

应用空间细化时,任何两个点或任何两个具有相同要预测的变量参数值类别的点之间的最小距离。

Linear Unit
细化迭代次数
(可选)

将用于查找最佳空间细化解决方案的迭代次数,该方案需在保持尽可能多要素的同时,确保任何两个要素均不在指定的最小最近邻距离参数值内。 最小迭代次数是 1,最大是 50。 默认值为 10。

Long
对分类解释变量进行编码
(可选)

指定是否对分类解释变量进行编码。

  • 选中 - 将对分类解释变量进行编码。 每个分类值都将转换为一个新字段,并且分配值 0 或 1。 值 1 表示存在该分类值,而值 0 表示不存在。
  • 未选中 - 将不对分类解释变量进行编码。 这是默认设置。

Boolean
从输入要素追加所有字段
(可选)

指定是否将所有字段从输入要素复制到输出要素。

  • 未选中 - 仅将输入字段复制到输出要素。
  • 选中 - 输入要素的所有字段都将复制到输出要素。 这是默认设置。

Boolean

arcpy.stats.PrepareData(in_features, out_features, {splitting_type}, {out_test_features}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {use_raster_values}, {percent}, {balancing_type}, {thinning_distance_band}, {number_of_iterations}, {encode_variables}, {append_all_fields})
名称说明数据类型
in_features

将执行分割、提取和平衡的要素。

Feature Class
out_features

将在模型工具中用作训练要素的输出要素。

Feature Class
splitting_type
(可选)

指定用于将输入要素分割成训练子集和测试子集的方法。

  • RANDOM_SPLIT输入要素将随机分割成训练子集和测试子集。 这是默认设置。
  • SPATIAL_SPLIT输入要素将在空间上分割成训练子集和测试子集。
  • NONE输入要素将不分割。
String
out_test_features
(可选)

可用作测试要素的 in_features 参数值的子集。 当将 splitting_type 参数设置为 RANDOM_SPLITSPATIAL_SPLIT 时,此参数处于启用状态。

Feature Class
variable_predict
(可选)

in_features 参数值中的变量,其中包含要用于训练模型的值。 该字段包含将用于在未知位置进行预测的变量的已知(训练)值。

Field
treat_variable_as_categorical
(可选)

指定 variable_predict 参数值是否将被视为分类变量。

  • CATEGORICALvariable_predict 参数值将被视为分类变量。
  • NUMERICvariable_predict 参数值将不被视为分类变量;它将被视为连续变量。 这是默认设置。
Boolean
explanatory_variables
[explanatory_variables,...]
(可选)

表示解释变量的字段列表,可帮助预测 variable_predict 值的值或类别。 对于任何表示类或类别(例如,土地覆被或存在/不存在)的变量,请使用 CATEGORICAL 的值。

Value Table
distance_features
[distance_features,...]
(可选)

解释训练距离要素。 通过计算给定要素与 in_features 参数值的距离,将自动创建解释变量。 将计算 in_features 参数值中的每个要素与此参数中的最近要素之间的距离。 如果此参数值为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。

Feature Layer
explanatory_rasters
[explanatory_rasters,...]
(可选)

从栅格中提取的解释训练变量。 解释训练变量将通过提取栅格像元值自动创建。 对于 in_features 参数值中的每个要素,将在此确切位置处提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 对于任何表示类或类别(例如土地覆被或存在/不存在)的栅格,请使用 CATEGORICAL 值。

Value Table
use_raster_values
(可选)

如果 in_features 参数值为面要素,variable_predict 参数值为类别变量,并且仅提供了 explanatory_rasters 参数值,则需要指定面的处理方式。

  • SAMPLE_POLYGON将面划分为所有栅格像元,其中质心落在面范围内。 提取每个质心处的栅格值并将其用于训练模型。 不再基于该面对模型进行训练,而是基于针对每个像元质心提取的栅格值对其进行训练。 这是默认设置。
  • NO_SAMPLE_POLYGON为每个面指定基础连续栅格的平均值或基础分类栅格的众数值。
Boolean
percent
(可选)

要保留为测试数据集或验证数据集的输入要素百分比。 默认值为 10。

Double
balancing_type
(可选)

指定用于平衡非平衡的 variable_predict 参数值或输入要素的空间偏差的方法。 该平衡方法仅应用于 out_features 参数值。

  • NONE输入要素不进行平衡。 这是默认设置。
  • SPATIAL_THINNING通过移除要素,并确保每组剩余点之间的距离等于或大于 thinning_distance_band 参数值,来减少空间偏差。 如果 variable_predict 参数值是分类变量,则将对每个类应用空间细化。 否则,将对 out_features 参数值中的所有要素应用空间细化。
  • RANDOM_UNDER将从每个非少数类中移除随机要素,直到要素数与少数类中的要素数相匹配。
  • TOMEK_UNDER每个非少数类中与少数类要素相近的要素都将被移除。 此方法将改善类之间的边界;然而每个类可能都有不同数目的要素。
  • KMED_UNDER非少数类中不代表该类的要素都将被移除,直到要素数与少数类中的要素数相匹配。
  • RANDOM_OVER少数类中的要素将随机复制,直到要素数与少数类中的要素数相匹配。
  • SMOTE_OVER通过在现有要素之间插值,来针对少数类生成合成要素,直到要素数与少数类中的要素数相匹配。
String
thinning_distance_band
(可选)

应用空间细化时,任何两个点或任何两个具有相同 variable_predict 参数值类别的点之间的最小距离。

Linear Unit
number_of_iterations
(可选)

将用于查找最佳空间细化解决方案的迭代次数,该方案需在保持尽可能多要素的同时,确保任何两个要素均不在指定的 thinning_distance_band 参数值内。 最小迭代次数是 1,最大是 50。 默认值为 10。

Long
encode_variables
(可选)

指定是否对分类解释变量进行编码。

  • ENCODE将对分类解释变量进行编码。 每个分类值都将转换为一个新字段,并且分配值 0 或 1。 值 1 表示存在该分类值,而值 0 表示不存在。
  • NO_ENCODE将不对分类解释变量进行编码。 这是默认设置。
Boolean
append_all_fields
(可选)

指定是否将所有字段从输入要素复制到输出要素。

  • NO_APPEND仅将输入字段复制到输出要素。
  • APPEND输入要素的所有字段都将复制到输出要素。 这是默认设置。
Boolean

代码示例

PrepareData 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 PrepareData 函数。

# Prepare data for prediction.
import arcpy

arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.PrepareData(
    in_features = r"in_feature_class",
    out_features = r"out_feature_class",
    splitting_type="RANDOM_SPLIT",
    variable_predict=None,
    treat_variable_as_categorical="NUMERIC"   
)
PrepareData 示例 2(独立脚本)

以下独立脚本演示了如何使用 PrepareData 函数。

# Prepare data for prediction.
import arcpy

# Set the current workspace.
arcpy.env.workspace = r"c:\data\project_data.gdb"

# Run tool
arcpy.stats.PrepareData(
    in_features = r"in_feature_class",
    out_features = r"out_feature_class",
    splitting_type="RANDOM_SPLIT",
    variable_predict=None,
    treat_variable_as_categorical="NUMERIC"
)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题