| 标注 | 说明 | 数据类型 |
分析结果要素 | 该要素类含有来自基于森林的增强分类与回归、广义线性回归或仅存在预测工具的训练输出结果。 将使用交叉验证评估预测训练结果。 | Feature Layer |
输出要素 | 输出要素包含原始自变量、因变量和汇总交叉验证结果的其他字段。 | Feature Class |
输出验证表 | 输出表格包含记录了每次交叉验证运行的评估指标。 | Table |
分析输入要素 | 将在产生分析结果要素的预测分析中使用的输入要素。 | Feature Layer |
评估类型 (可选) | 指定用于将分析结果要素参数值分割成 k 个组的方法。
| String |
组数 (可选) | 分析结果要素参数值将分割成的组数。 组数必须大于1。 默认值为 10。 | Long |
平衡类型 (可选) | 指定用于平衡训练组中每个因变量类别的样本数的方法。 如果原始模型预测到分类变量,此参数将激活。
| String |
摘要
使用交叉验证评估预测模型的性能。 此工具生成针对使用基于森林的增强分类与回归、广义线性回归和仅存在预测工具创建的模型的验证指标。 您可以指定评估类型(例如 K 折或空间 K 折)、组数和稀有事件平衡,以确保稳健、无偏差的模型评估。
插图

使用情况
评估类型参数具有以下选项以将要素分割成组。
- 空间 k 折 - 使用空间交叉验证来评估模型在预测训练数据研究区域地理范围外的要素时的效果。
- 随机 k 折 - 使用随机交叉验证来评估模型在预测训练数据研究区域地理范围内的要素时的效果。
在使用分类来预测稀有事件或不平衡类别时,可使用平衡类型参数来平衡每个分类等级内的样本数。 测试此工具中的不同平衡方法;然后选择表现最好的平衡方法,并在使用为预测准备数据工具进行预测之前先在完整的训练数据集上运行该方法。
不使用交叉验证来生成单一模型或模型文件。 它生成精度指标,以用于评估模型及其参数在预测训练模型时被排除在外的数据时的效果。
此工具不接受在为预测准备数据工具中首次过采样的分析要素,即使用随机过采样或 SMOTE 加以平衡的分析要素。 过采样数据不可以用在因数据泄露而设定的验证中。
原始预测工具中的参数会被保留使用。 然而,对于来自基于森林的增强分类和回归工具的分析结果,该验证数据被设为 0。 如果在基于森林的增强分类和回归工具中使用最优化参数,则来自原始工具的最优参数将用于运行交叉验证。
该工具将创建以下输出:
- 输出要素 - 记录了训练数据集以及该训练数据集中每个要素的训练和预测结果。
- 输出验证表 - 该表格记录了每次验证运行的评估指标。
参数
arcpy.stats.CrossValidate(analysis_result_features, out_features, out_table, analysis_input_features, {evaluation_type}, {num_groups}, {balancing_type})| 名称 | 说明 | 数据类型 |
analysis_result_features | 该要素类含有来自基于森林的增强分类与回归、广义线性回归或仅存在预测工具的训练输出结果。 将使用交叉验证评估预测训练结果。 | Feature Layer |
out_features | 输出要素包含原始自变量、因变量和汇总交叉验证结果的其他字段。 | Feature Class |
out_table | 输出表格包含记录了每次交叉验证运行的评估指标。 | Table |
analysis_input_features | 将在产生分析结果要素的预测分析中使用的输入要素。 | Feature Layer |
evaluation_type (可选) | 指定用于将 analysis_result_features 参数值分割成 k 个组的方法。
| String |
num_groups (可选) | analysis_result_features 参数值将分割成的组数。 组数必须大于1。 默认值为 10。 | Long |
balancing_type (可选) | 指定用于平衡训练组中每个因变量类别的样本数的方法。 如果原始模型预测到分类变量,此参数将激活。
| String |
代码示例
以下 Python 窗口脚本演示了如何使用 CrossValidate 函数。
# Evaluate a predictive model with cross validation
import arcpy
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.CrossValidate(
analysis_result_features=r"in_analysis_result_features",
out_features=r"out_feature",
out_table=r"out_table",
analysis_input_features=r"analyis_in_feature",
evaluation_type="RANDOM_KFOLD",
num_groups=10,
balancing_type="NONE"
)以下独立脚本演示了如何使用 CrossValidate 函数。
# Evaluate a predictive model with cross validation
import arcpy
# Set the current workspace.
arcpy.env.workspace = r"c:\data\project_data.gdb"
# Run tool
arcpy.stats.CrossValidate(
analysis_result_features=r"in_analysis_result_features",
out_features=r"out_feature",
out_table=r"out_table",
analysis_input_features=r"analyis_in_feature",
evaluation_type="RANDOM_KFOLD",
num_groups=10,
balancing_type="NONE"
)许可信息
- Basic: 受限
- Standard: 受限
- Advanced: 受限