使用 AutoML 进行训练 (GeoAI)

摘要

通过构建训练管道和自动执行大部分训练过程来训练机器学习模型。 这包括探索性数据分析、要素选择、要素工程、模型选择、超参数调整和模型训练。 其输出包括训练数据上最佳模型的性能指标,以及可用作使用 AutoML 预测工具在新数据集上进行预测的经过训练的深度学习模型包 .dlpk 的输入。

了解有关 AutoML 工作原理的详细信息

使用情况

  • 您必须在 ArcGIS Pro 中为 Python 安装适当的深度学习框架。

    了解如何安装 ArcGIS 的深度学习框架

  • 该工具生成经训练模型所需的时间取决于以下因素:

    • 训练期间提供的数据量
    • AutoML 模式参数值

    默认情况下,所有模式的计时器设置为 60 分钟。 无论训练中使用的数据量如何,基础选项都不会花费整个 60 分钟来找到最佳模型。 确定最佳模型后,拟合过程即可完成。 由于要素工程、要素选择和超参数调整等额外任务,高级选项将花费更多时间。 除了通过组合输入中的多个要素获得的新要素外,该工具还会创建名称从 zone3_id 到 zone7_id 的空间要素。 将从输入数据的位置信息中提取这些新要素,并将用于训练更好的模型。 要了解有关新空间要素的详细信息,请参阅 AutoML 的工作原理。 如果正在训练的数据量很大,则可能无法在 60 分钟内评估所有模型组合。 在这种情况下,在 60 分钟内确定的最佳模型将被视为最佳模型。 然后,您可以使用此模型或使用更高的总时间限制(分钟)参数值重新运行该工具。

  • 要使用栅格作为解释变量,需要 ArcGIS Spatial Analyst 扩展模块许可。

  • 输出报表参数值是一个 HTML 格式的文件,可用于查看工作目录中的信息。

    输出报表的第一页包含每个评估模型的链接,并显示了它们在验证数据集上的性能以及训练它们所花费的时间。 根据评估指标,报表会显示所选的性能最佳模型。

    RMSE 是回归问题的默认评估指标,而 Logloss 是分类问题的默认指标。 输出报告中的可用指标包括:

      • 分类 - AUC、Logloss、F1、准确度、平均精度
      • 回归 - MSE、RMSE、MAE、R2、MAPE、Spearman 系数、Pearson 系数

    单击模型组合时,将显示有关该模型组合训练的详细信息,包括学习曲线、变量重要性曲线、使用的超参数等。

  • 该工具的潜在用例包括根据天气因素训练年度太阳能发电模型、使用相关变量训练作物预测模型以及训练房屋价值预测模型。

  • 有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题

参数

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

将用于训练模型的输入要素类。

Feature Layer; Table View
输出模型

将另存为深度学习包 (.dlpk) 文件的输出训练模型。

File
要预测的变量

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

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

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

  • 选中 - 要预测的变量参数值将被视为分类变量,工具将执行分类。
  • 未选中 - 要预测的变量参数值将被视为连续的,工具将执行回归。 这是默认设置。

Boolean
解释训练变量
(可选)

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

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

将自动估计该要素与输入训练要素的距离并将其添加为其他解释变量。 将计算每个输入解释训练距离要素与最近的输入训练要素的距离。 支持点和面要素,如果输入解释训练距离要素为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。

Feature Layer
解释训练栅格
(可选)

将从栅格中提取该栅格的值,并且其将被视为模型的解释变量。 每个图层构成一个解释变量。 对于输入训练要素中的每个要素,将在此确切位置处提取栅格像元的值。 提取连续栅格的栅格值时,将使用双线性栅格重采样。 从分类栅格中提取栅格值时,将使用最邻近分配法。 如果输入训练要素参数值包含面,并且您已指定此参数,则模型中将使用每个面的一个栅格值。 将为每个面指定连续栅格的平均值和分类栅格的众数。 对于任何表示类或类别(例如土地覆被、存在或不存在)的栅格,请选中分类列复选框。

Value Table
总时间限制(分钟)
(可选)

AutoML 模型训练所需的总时间限制(以分钟为单位)。 默认值为 60(1 小时)。

Double
AutoML 模式
(可选)

指定 AutoML 的目标以及 AutoML 搜索的密集程度。

  • 基础“基本”用于解释不同变量和数据的重要性。 不执行要素工程、要素选择和超参数调整。 报告中将包含关于模型学习曲线、为基于树的模型生成的要素重要性图以及所有其他模型的 SHAP 图的完整描述和解释。 此模式需要的处理时间最少。 这是默认设置。
  • 中级“中级”用于训练将在实际用例中使用的模型。 此模式使用 5 倍交叉验证 (CV) 方法并将在报告中生成学习曲线和重要性图的输出,但 SHAP 图不可用。
  • 高级“高级”用于机器学习竞技(以获得最佳性能)。 此模式使用 10 倍交叉验证 (CV) 方法并将执行要素工程、要素选择和超参数调整。 将基于输入训练要素的位置将其分配给到多个不同大小的空间格网,并且相应的格网 ID 将作为附加分类解释变量传递给模型。 该报告仅包括学习曲线,模型可解释性功能不可用。
String
算法
(可选)

指定将在训练期间使用的算法。

默认情况下,将使用所有算法。

  • 线性线性回归监督算法将用于训练回归机器学习模型。如果线性是唯一指定的算法,请确保记录总数小于 10.000 且列数小于 1,000。 其他模型可以容纳更大的数据集,建议您将线性与其他算法配合使用,而不是作为唯一的算法。
  • 随机森林将使用基于随机森林决策树的监督机器学习算法。 它可以用于分类和回归。
  • XGBoost将使用 XGBoost(极端梯度提)监督机器学习算法。 它可以用于分类和回归。
  • Light GBM将使用基于决策树的 Light GBM 梯度提升集成算法。 它可以用于分类和回归。 Light GBM 针对分布式系统的高性能进行了优化。
  • 决策树将使用决策树监督机器学习算法,该算法使用对某些问题的 true 和 false 答案对数据进行分类或回归。 决策树易于理解并且具有可解释性。
  • 极端树将通过使用决策树的极端树(极度随机树)集成监督机器学习算法。 此算法类似于随机森林,但速度更快。
Multivalue
验证百分比
(可选)

将用于验证的输入数据的百分比。 默认值为 10。

Long
输出报表
(可选)

将生成为 .html 文件的输出报告。 如果提供的路径不为空,则将在提供路径下的新文件夹中创建报告。 该报告将包含各种模型的详细信息、评估期间使用的超参数的详细信息以及每个模型的性能。 超参数是控制训练过程的参数。 它们在训练期间不会更新,包括模型架构、学习率、时期数等。

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

输出表包含有关模型中使用的每个解释变量(字段、距离要素和栅格)的重要性的信息。

Table
输出要素类
(可选)

包含训练要素图层上性能最佳模型的预测值的要素图层。 它可用于通过直观地将预测值与实际地表进行比较来验证模型性能。

Feature Class

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})
名称说明数据类型
in_features

将用于训练模型的输入要素类。

Feature Layer; Table View
out_model

将另存为深度学习包 (.dlpk) 文件的输出训练模型。

File
variable_predict

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

Field
treat_variable_as_categorical
(可选)

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

  • CATEGORICALvariable_predict 参数值将被视为分类变量,工具将执行分类。
  • CONTINUOUSvariable_predict 参数值将被视为连续的,工具将执行回归。 这是默认设置。
Boolean
explanatory_variables
[explanatory_variables,...]
(可选)

表示解释变量的字段列表,可帮助预测 variable_predict 参数值的值或类别。 为任何表示类或类别(例如土地覆被、存在或不存在)的变量传递 True 值 ('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 搜索的密集程度。

  • BASIC“基本”用于解释不同变量和数据的重要性。 不执行要素工程、要素选择和超参数调整。 报告中将包含关于模型学习曲线、为基于树的模型生成的要素重要性图以及所有其他模型的 SHAP 图的完整描述和解释。 此模式需要的处理时间最少。 这是默认设置。
  • INTERMEDIATE“中级”用于训练将在实际用例中使用的模型。 此模式使用 5 倍交叉验证 (CV) 方法并将在报告中生成学习曲线和重要性图的输出,但 SHAP 图不可用。
  • ADVANCED“高级”用于机器学习竞技(以获得最佳性能)。 此模式使用 10 倍交叉验证 (CV) 方法并将执行要素工程、要素选择和超参数调整。 将基于输入训练要素的位置将其分配给到多个不同大小的空间格网,并且相应的格网 ID 将作为附加分类解释变量传递给模型。 该报告仅包括学习曲线,模型可解释性功能不可用。
String
algorithms
[algorithms,...]
(可选)

指定将在训练期间使用的算法。

  • LINEAR线性回归监督算法将用于训练回归机器学习模型。如果线性是唯一指定的算法,请确保记录总数小于 10.000 且列数小于 1,000。 其他模型可以容纳更大的数据集,建议您将线性与其他算法配合使用,而不是作为唯一的算法。
  • RANDOM FOREST将使用基于随机森林决策树的监督机器学习算法。 它可以用于分类和回归。
  • XGBOOST将使用 XGBoost(极端梯度提)监督机器学习算法。 它可以用于分类和回归。
  • LIGHT GBM将使用基于决策树的 Light GBM 梯度提升集成算法。 它可以用于分类和回归。 Light GBM 针对分布式系统的高性能进行了优化。
  • DECISION TREE将使用决策树监督机器学习算法,该算法使用对某些问题的 true 和 false 答案对数据进行分类或回归。 决策树易于理解并且具有可解释性。
  • EXTRA TREE将通过使用决策树的极端树(极度随机树)集成监督机器学习算法。 此算法类似于随机森林,但速度更快。

默认情况下,将使用所有算法。

Multivalue
validation_percent
(可选)

将用于验证的输入数据的百分比。 默认值为 10。

Long
out_report
(可选)

将生成为 .html 文件的输出报告。 如果提供的路径不为空,则将在提供路径下的新文件夹中创建报告。 该报告将包含各种模型的详细信息、评估期间使用的超参数的详细信息以及每个模型的性能。 超参数是控制训练过程的参数。 它们在训练期间不会更新,包括模型架构、学习率、时期数等。

File
out_importance
(可选)

输出表包含有关模型中使用的每个解释变量(字段、距离要素和栅格)的重要性的信息。

Table
out_features
(可选)

包含训练要素图层上性能最佳模型的预测值的要素图层。 它可用于通过直观地将预测值与实际地表进行比较来验证模型性能。

Feature Class

代码示例

TrainUsingAutoML(Python 窗口)

本示例介绍了如何使用 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")

许可信息

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

相关主题