标注 | 说明 | 数据类型 |
输入训练要素 | 将用于训练模型的输入要素类。 | Feature Layer; Table View |
输出模型 | 将另存为深度学习包(.dlpk 文件)的输出训练模型。 | File |
要预测的变量 | 来自输入训练要素参数的字段,其中包含将用于训练模型的值。 该字段包含将用于在未知位置进行预测的变量的已知(训练)值。 | Field |
将变量视为分类变量 (可选) | 指定要预测的变量参数值是否将被视为分类变量。
| Boolean |
解释训练变量 (可选) | 表示解释变量的字段列表,可帮助预测要预测的变量参数值的值或类别。 对于任何表示类或类别(例如土地覆被、存在或不存在)的变量,请选中随附的复选框。 | Value Table |
解释训练距离要素 (可选) | 将自动估计该要素与输入训练要素的距离并将其添加为其他解释变量。 将计算每个输入解释训练距离要素与最近的输入训练要素的距离。 支持点和面要素,如果输入解释训练距离要素为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。 | Feature Layer |
解释训练栅格 (可选) | 将从栅格中提取该栅格的值,并且其将被视为模型的解释变量。 每个图层构成一个解释变量。 对于输入训练要素中的每个要素,将在此确切位置处提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 如果输入训练要素参数值具有面,并且您为此参数提供了值,则模型中将使用每个面的一个栅格值。 将为每个面指定连续栅格的平均值和分类栅格的众数。 对于任何表示类或类别(例如土地覆被、存在或不存在)的栅格,请选中分类列复选框。 | Value Table |
总时间限制(分钟) (可选) | AutoML 模型训练所需的总时间限制(以分钟为单位)。 默认值为 60(1 小时)。 | Double |
AutoML 模式 (可选) | 指定 AutoML 的目标以及 AutoML 搜索的密集程度。
| String |
算法 (可选) | 指定将在训练期间使用的算法。 默认情况下,将使用所有算法。
| String |
验证百分比 (可选) | 将用于验证的输入数据的百分比。 默认值为 10。 | Long |
输出报表 (可选) | 将生成为 .html 文件的输出报告。 如果提供的路径不为空,则将在提供路径下的新文件夹中创建报告。 该报告将包含各种模型的详细信息、评估期间使用的超参数的详细信息以及每个模型的性能。 超参数是控制训练过程的参数。 它们在训练期间不会更新,包括模型架构、学习率、轮数等。 | File |
输出重要性表格 (可选) | 输出表包含有关模型中使用的每个解释变量(字段、距离要素和栅格)的重要性的信息。 | Table |
输出要素类 (可选) | 包含训练要素图层上性能最佳模型的预测值的要素图层。 它可用于通过直观地将预测值与实际地表进行比较来验证模型性能。 | Feature Class |
添加影像附件 (可选) | 指定是否将图像用作输入训练要素参数值的解释变量来训练多模式或混合数据模型。 训练多模式或混合数据表格模型涉及使用 AutoML 中的机器和深度学习主干,通过单个模型从多种类型的数据格式中学习。 输入数据可以由来自不同数据源集的解释变量的组合组成,例如文本描述、相应的图像以及任何其他分类变量和连续变量。
| Boolean |
敏感要素属性 (可选) |
评估和改进分类和回归模型的表格数据的训练模型的公平性。 为此参数设置以下两个组件:
| Value Table |
公平指标 (可选) | 指定将用于衡量分类和回归问题的公平性的公平指标,这些指标用于网格搜索以选择最佳公平模型。
| String |
摘要
通过构建训练管道和自动执行大部分训练过程来训练深度学习模型。 这包括探索性数据分析、要素选择、要素工程、模型选择、超参数调整和模型训练。 其输出包括训练数据上最佳模型的性能指标,以及可用作使用 AutoML 预测工具在新数据集上进行预测的经过训练的深度学习模型包 (.dlpk) 的输入。
使用情况
您必须在 ArcGIS AllSource 中为 Python 安装适当的深度学习框架。
该工具生成经训练模型所需的时间取决于以下因素:
- 训练期间提供的数据量
- AutoML 模式参数值
默认情况下,所有模式的计时器设置为 60 分钟。 无论训练中使用的数据量有多少,AutoML 模式参数的基础选项都不会花费整个 60 分钟来找到最佳模型。 确定最佳模型后,拟合过程即可完成。 由于要素工程、要素选择和超参数调整等额外任务,高级选项将花费更多时间。 除了通过组合输入中的多个要素获得的新要素外,该工具还会创建名称从 zone3_id 到 zone7_id 的空间要素。 将从输入数据的位置信息中提取这些新要素,并将用于训练更好的模型。 要了解有关新空间要素的详细信息,请参阅 AutoML 的工作原理。 如果正在训练的数据量很大,则可能无法在 60 分钟内评估所有模型组合。 在这种情况下,在 60 分钟内确定的最佳模型将被视为最佳模型。 然后,您可以使用此模型或使用更高的总时间限制(分钟)参数值重新运行该工具。
要使用栅格作为解释变量,需要 ArcGIS Spatial Analyst extension 许可。
输出报表参数值是一个 HTML 格式的文件,可用于查看工作目录中的信息。
输出报表的第一页包含每个评估模型的链接,并显示了它们在验证数据集上的性能以及训练它们所花费的时间。 根据评估指标,报表会显示所选的性能最佳模型。
RMSE 是回归问题的默认评估指标,而 Logloss 是分类问题的默认指标。 输出报告中的可用指标包括:
- 分类 - AUC、Logloss、F1、准确度、平均精度
- 回归 - MSE、RMSE、MAE、R2、MAPE、Spearman 系数、Pearson 系数
单击模型组合时,将显示有关该模型组合训练的详细信息,包括学习曲线、变量重要性曲线、使用的超参数等。
该工具的示范用例包括根据天气因素训练年度太阳能发电模型、使用相关变量训练作物预测模型以及训练房屋价值预测模型。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
要使用添加图像附件参数,请通过执行以下操作为图像附件准备输入训练要素参数值:
参数
arcpy.geoai.TrainUsingAutoML(in_features, out_model, variable_predict, {treat_variable_as_categorical}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {total_time_limit}, {autoML_mode}, {algorithms}, {validation_percent}, {out_report}, {out_importance}, {out_features}, {add_image_attachments}, {sensitive_feature}, {fairness_metric})
名称 | 说明 | 数据类型 |
in_features | 将用于训练模型的输入要素类。 | Feature Layer; Table View |
out_model | 将另存为深度学习包(.dlpk 文件)的输出训练模型。 | File |
variable_predict | 来自 in_features 参数的字段,其中包含将用于训练模型的值。 该字段包含将用于在未知位置进行预测的变量的已知(训练)值。 | Field |
treat_variable_as_categorical (可选) | 指定 variable_predict 参数值是否将被视为分类变量。
| Boolean |
explanatory_variables [explanatory_variables,...] (可选) | 表示解释变量的字段列表,可帮助预测 variable_predict 参数值的值或类别。 为代表类或类别(例如土地覆盖、存在或不存在)的任何变量传递真实值 ("<name_of_variable> true")。 | Value Table |
distance_features [distance_features,...] (可选) | 将自动估计该要素与输入训练要素的距离并将其添加为其他解释变量。 将计算每个输入解释训练距离要素与最近的输入训练要素的距离。 支持点和面要素,如果输入解释训练距离要素为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。 | Feature Layer |
explanatory_rasters [explanatory_rasters,...] (可选) | 将从栅格中提取该栅格的值,并且其将被视为模型的解释变量。 每个图层构成一个解释变量。 对于输入训练要素中的每个要素,将在此确切位置处提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 如果 in_features 参数值包含面,并且您为此参数提供了一个值,则模型中将使用每个面的一个栅格值。 将为每个面指定连续栅格的平均值和分类栅格的众数。 使用 "<name_of_raster> true" 为表示类或类别(例如土地覆盖、存在或不存在)的任何栅格传递一个 true 值。 | Value Table |
total_time_limit (可选) | AutoML 模型训练所需的总时间限制(以分钟为单位)。 默认值为 60(1 小时)。 | Double |
autoML_mode (可选) | 指定 AutoML 的目标以及 AutoML 搜索的密集程度。
| String |
algorithms [algorithms,...] (可选) | 指定将在训练期间使用的算法。
默认情况下,将使用所有算法。 | String |
validation_percent (可选) | 将用于验证的输入数据的百分比。 默认值为 10。 | Long |
out_report (可选) | 将生成为 .html 文件的输出报告。 如果提供的路径不为空,则将在提供路径下的新文件夹中创建报告。 该报告将包含各种模型的详细信息、评估期间使用的超参数的详细信息以及每个模型的性能。 超参数是控制训练过程的参数。 它们在训练期间不会更新,包括模型架构、学习率、轮数等。 | File |
out_importance (可选) | 输出表包含有关模型中使用的每个解释变量(字段、距离要素和栅格)的重要性的信息。 | Table |
out_features (可选) | 包含训练要素图层上性能最佳模型的预测值的要素图层。 它可用于通过直观地将预测值与实际地表进行比较来验证模型性能。 | Feature Class |
add_image_attachments (可选) | 指定是否将图像用作 in_features 参数值的解释变量来训练多模式或混合数据模型。 训练多模式或混合数据表格模型涉及使用 AutoML 中的机器和深度学习主干,通过单个模型从多种类型的数据格式中学习。 输入数据可以由来自不同数据源集的解释变量的组合组成,例如文本描述、相应的图像以及任何其他分类变量和连续变量。
| Boolean |
sensitive_feature [sensitive_feature,...] (可选) |
评估和改进分类和回归模型的表格数据的训练模型的公平性。 为此参数设置以下两个组件:
| Value Table |
fairness_metric (可选) | 指定将用于衡量分类和回归问题的公平性的公平指标,这些指标用于网格搜索以选择最佳公平模型。
| String |
代码示例
本示例介绍了如何使用 TrainUsingAutoML 函数。
# Name: TrainUsingAutoML.py
# Description: Train a machine learning model on feature or tabular data with
# automatic hyperparameter selection.
# Import system modules
import arcpy
import os
# Set local variables
datapath = "path_to_data"
out_path = "path_to_trained_model"
in_feature = os.path.join(datapath, "train_data.gdb", "name_of_data")
out_model = os.path.join(out_path, "model.dlpk")
# Run Train Using AutoML Model
arcpy.geoai.TrainUsingAutoML(in_feature, out_model, "price", None,
"bathrooms #;bedrooms #;square_fee #", None, None,
60, "BASIC")