AutoMLConfig 类

表示在 Azure 机器学习中提交自动化 ML 试验的配置。

此配置对象包含并保留用于配置试验运行的参数,以及运行时要使用的训练数据。 有关选择设置的指导,请参阅 https://aka.ms/AutoMLConfig

创建 AutoMLConfig。

构造函数

AutoMLConfig(task: str, path: str | None = None, iterations: int | None = None, primary_metric: str | None = None, positive_label: Any | None = None, compute_target: Any | None = None, spark_context: Any | None = None, X: Any | None = None, y: Any | None = None, sample_weight: Any | None = None, X_valid: Any | None = None, y_valid: Any | None = None, sample_weight_valid: Any | None = None, cv_splits_indices: List[List[Any]] | None = None, validation_size: float | None = None, n_cross_validations: int | str | None = None, y_min: float | None = None, y_max: float | None = None, num_classes: int | None = None, featurization: str | FeaturizationConfig = 'auto', max_cores_per_iteration: int = 1, max_concurrent_iterations: int = 1, iteration_timeout_minutes: int | None = None, mem_in_mb: int | None = None, enforce_time_on_windows: bool = True, experiment_timeout_hours: float | None = None, experiment_exit_score: float | None = None, enable_early_stopping: bool = True, blocked_models: List[str] | None = None, blacklist_models: List[str] | None = None, exclude_nan_labels: bool = True, verbosity: int = 20, enable_tf: bool = False, model_explainability: bool = True, allowed_models: List[str] | None = None, whitelist_models: List[str] | None = None, enable_onnx_compatible_models: bool = False, enable_voting_ensemble: bool = True, enable_stack_ensemble: bool | None = None, debug_log: str = 'automl.log', training_data: Any | None = None, validation_data: Any | None = None, test_data: Any | None = None, test_size: float | None = None, label_column_name: str | None = None, weight_column_name: str | None = None, cv_split_column_names: List[str] | None = None, enable_local_managed: bool = False, enable_dnn: bool | None = None, forecasting_parameters: ForecastingParameters | None = None, **kwargs: Any)

参数

名称 说明
task
必需
strTasks

要运行的任务的类型。 值可以是“分类”、“回归”或“预测”,具体取决于要解决的自动化 ML 问题的类型。

path
必需
str

Azure 机器学习项目文件夹的完整路径。 如果未指定,则默认值为使用当前目录或“.”。

iterations
必需
int

在自动化 ML 试验期间要测试的不同算法和参数组合的总数。 如果未指定,则默认值为 1000 次迭代。

primary_metric
必需
strMetric

自动化机器学习将针对模型选择进行优化的指标。 自动化机器学习收集的指标比可以优化更多的指标。 可用于 get_primary_metrics 获取给定任务的有效指标列表。 有关如何计算指标的详细信息,请参阅 https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#primary-metric

如果未指定,则对分类任务使用准确性,规范化根均方用于预测和回归任务,准确性用于图像分类和图像多标签分类,平均平均精度用于图像对象检测。

positive_label
必需
Any

自动化机器学习用于计算二进制指标的正类标签。 二进制指标在分类任务的两个条件下计算:

  1. 标签列由两个类组成,指示传入 positive_label 时,二元分类任务 AutoML 将使用指定的正类,否则 AutoML 将基于标签编码值选取正类。
  2. 指定 positive_label 的多类分类任务

有关分类的详细信息,请查看 分类方案的指标

compute_target
必需

要运行自动化机器学习试验的 Azure 机器学习计算目标。 有关计算目标的详细信息,请参阅 https://docs.microsoft.com/en-us/azure/machine-learning/concept-automated-ml#local-remote

spark_context
必需
<xref:SparkContext>

Spark 上下文。 仅在 Azure Databricks/Spark 环境中使用时才适用。

X
必需

在试验期间拟合管道时要使用的训练功能。 此设置已弃用。 请改用training_data和label_column_name。

y
必需

在试验期间拟合管道时要使用的训练标签。 这是模型将预测的值。 此设置已弃用。 请改用training_data和label_column_name。

sample_weight
必需

运行拟合管道时要提供给每个训练示例的权重,每行应对应于 X 和 y 数据中的一行。

指定 X时指定此参数。 此设置已弃用。 请改用training_data和weight_column_name。

X_valid
必需

在试验期间拟合管道时要使用的验证功能。

如果指定,则 y_valid 还必须指定或 sample_weight_valid 还必须指定。 此设置已弃用。 请改用validation_data和label_column_name。

y_valid
必需

在试验期间拟合管道时要使用的验证标签。

X_validy_valid必须同时指定。 此设置已弃用。 请改用validation_data和label_column_name。

sample_weight_valid
必需

运行评分管道时,要为每个验证示例提供权重,每行应对应于 X 和 y 数据中的一行。

指定 X_valid时指定此参数。 此设置已弃用。 请改用validation_data和weight_column_name。

cv_splits_indices
必需

用于拆分训练数据进行交叉验证的索引。 每一行都是一个单独的交叉折叠,在每个十字形中,提供 2 个 numpy 数组,第一个包含用于训练数据的样本索引,第二个包含用于验证数据的索引。 例如,[[t1, v1], [t2, v2], ...] 其中 t1 是第一个交叉折叠的训练索引,v1 是第一个交叉折叠的验证索引。

若要将现有数据指定为验证数据,请使用 validation_data。 若要让 AutoML 从训练数据中提取验证数据,请指定或n_cross_validationsvalidation_size指定 。 cv_split_column_names如果具有交叉验证列,请使用 training_data

validation_size
必需

未指定用户验证数据时要保留哪些数据进行验证。 这应介于 0.0 和 1.0 之间(非独占)。

指定 validation_data 以提供验证数据,否则设置 n_cross_validationsvalidation_size 从指定的训练数据中提取验证数据。 对于自定义交叉验证折叠,请使用 cv_split_column_names

有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

n_cross_validations
必需
int

未指定用户验证数据时要执行的交叉验证数。

指定 validation_data 以提供验证数据,否则设置 n_cross_validationsvalidation_size 从指定的训练数据中提取验证数据。 对于自定义交叉验证折叠,请使用 cv_split_column_names

有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

y_min
必需

回归实验的最小值为 y。 y_min结合和y_max用于根据输入数据范围规范化测试集指标。 此设置已弃用。 而是从数据中计算此值。

y_max
必需

回归实验的最大值为 y。 y_min结合和y_max用于根据输入数据范围规范化测试集指标。 此设置已弃用。 而是从数据中计算此值。

num_classes
必需
int

分类试验的标签数据中的类数。 此设置已弃用。 而是从数据中计算此值。

featurization
必需

“auto”/ 'off' / FeaturizationConfig 指示器,指示是否应自动执行特征化步骤,还是应使用自定义特征化。 注意:如果输入数据稀疏,则无法打开特征化。

系统会自动检测列类型。 根据检测到的列类型预处理/特征化,如下所示:

  • 分类:目标编码,一个热编码,删除高基数类别,插补缺失值。

  • 数值:插补缺失值、聚类距离、证据权重。

  • DateTime:若干功能,例如日、秒、分钟、小时等。

  • 文本:一袋单词,预先训练的 Word 嵌入,文本目标编码。

有关更多详细信息,请参阅 在 Python 中配置自动化 ML 试验的文章。

若要自定义特征化步骤,请提供 FeaturizationConfig 对象。 自定义特征化目前支持阻止一组转换器、更新列用途、编辑转换器参数和删除列。 有关详细信息,请参阅 自定义功能工程

注意:当任务类型设置为独立于此参数进行预测时,将单独处理时间系列功能。

max_cores_per_iteration
必需
int

用于给定训练迭代的最大线程数。 可接受的值:

  • 大于 1 且小于或等于计算目标上的最大核心数。

  • 等于 -1,这意味着每个子运行每次迭代使用所有可能的内核。

  • 等于 1,默认值。

max_concurrent_iterations
必需
int

表示将并行执行的迭代的最大次数。 默认值为 1。

  • AmlCompute 群集支持每个节点运行的一个交互。 对于在单个 AmlCompute 群集上并行执行的多个 AutoML 试验父运行,所有试验的值之和 max_concurrent_iterations 应小于或等于最大节点数。 否则,运行将排队,直到节点可用。

  • DSVM 支持每个节点的多次迭代。 max_concurrent_iterations 应小于或等于 DSVM 上的内核数。 对于在单个 DSVM 上并行运行的多个试验,所有试验的值之 max_concurrent_iterations 和应小于或等于最大节点数。

  • Databricks - max_concurrent_iterations 应小于或等于 Databricks 上的工作节点数。

max_concurrent_iterations 不适用于本地运行。 以前,此参数已命名 concurrent_iterations

iteration_timeout_minutes
必需
int

每次迭代在终止之前可以运行的最大时间(以分钟为单位)。 如果未指定,则使用值 1 个月或 43200 分钟。

mem_in_mb
必需
int

每次迭代在终止之前可以运行的最大内存使用量。 如果未指定,则使用值 1 PB 或 1073741824 MB。

enforce_time_on_windows
必需

是否在 Windows 上每次迭代时对模型训练强制实施时间限制。 默认值为 True。 如果从 Python 脚本文件(.py)运行,请参阅有关在 Windows 上允许资源限制的文档。

experiment_timeout_hours
必需

在试验结束之前,所有合并的迭代所花费的最大时间量(以小时为单位)。 可以是表示 15 分钟的小数值,如 0.25。 如果未指定,则默认试验超时为 6 天。 若要指定小于或等于 1 小时的超时,请确保数据集的大小不超过 10,000,000(行时间列)或错误结果。

experiment_exit_score
必需

试验的目标分数。 达到此分数后,试验将终止。 如果未指定(无条件),试验将一直运行,直到主要指标没有取得进一步进展。 有关退出条件的详细信息,请参阅 本文

enable_early_stopping
必需

如果分数在短期内没有提高,是否启用提前终止。 默认值为 True。

提前停止逻辑:

  • 前 20 次迭代(地标)没有提前停止。

  • 提前停止窗口在第 21 次迭代时启动,并查找early_stopping_n_iters迭代

    (当前设置为 10)。 这意味着可以进行停止的第一次迭代是第 31 次迭代。

  • AutoML 仍计划 2 次集成迭代 AFTER 提前停止,这可能会导致

    分数越高。

  • 如果计算的最佳分数的绝对值与过去相同,则会触发提前停止

    early_stopping_n_iters迭代,也就是说,如果early_stopping_n_iters迭代的分数没有改进。

blocked_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

要忽略试验的算法列表。 如果 enable_tf 为 False,则包含 blocked_modelsTensorFlow 模型。

blacklist_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

弃用的参数,请改用blocked_models。

exclude_nan_labels
必需

是否排除标签中包含 NaN 值的行。 默认值为 True。

verbosity
必需
int

写入日志文件的详细级别。 默认值为 INFO 或 20。 Python 日志记录库中定义了可接受的值。

enable_tf
必需

弃用的参数以启用/禁用 Tensorflow 算法。 默认值为 False。

model_explainability
必需

是否在所有 AutoML 训练迭代结束时启用最佳 AutoML 模型解释。 默认值为 True。 有关详细信息,请参阅 可解释性:自动化机器学习中的模型说明

allowed_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

要搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型减去指定或弃用的 TensorFlow 模型中的任何 blocked_models 模型。 类中 SupportedModels 描述了每个任务类型的支持模型。

whitelist_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

弃用的参数,请改用allowed_models。

enable_onnx_compatible_models
必需

是启用或禁用强制实施 ONNX 兼容的模型。 默认值为 False。 有关开放神经网络交换(ONNX)和 Azure 机器学习的详细信息,请参阅 本文

forecasting_parameters
必需

一个 ForecastingParameters 对象,用于保存所有预测特定参数。

time_column_name
必需
str

时间列的名称。 当预测在用于生成时序并推断其频率的输入数据中指定日期/时间列时,此参数是必需的。 此设置已弃用。 请改用forecasting_parameters。

max_horizon
必需
int

所需最大预测范围(以时序频率单位为单位)。 默认值为 1。

单位基于训练数据的时间间隔,例如预测器应预测的每月、每周。预测任务类型时,此参数是必需的。 有关设置预测参数的详细信息,请参阅 自动训练时序预测模型。 此设置已弃用。 请改用forecasting_parameters。

grain_column_names
必需
strlist(str)

用于对时间序列进行分组的列的名称。 它可用于创建多个序列。 如果未定义粒度,则假定数据集为一个时序。 此参数用于任务类型预测。 此设置已弃用。 请改用forecasting_parameters。

target_lags
必需
intlist(int)

要从目标列滞后的过去时间段数。 默认值为 1。 此设置已弃用。 请改用forecasting_parameters。

预测时,此参数表示根据数据频率滞后目标值的行数。 这表示为列表或单个整数。 默认情况下,当独立变量与依赖变量之间的关系不匹配或关联时,应使用滞后时间。 例如,当尝试预测产品的需求时,任何月份的需求都可能取决于 3 个月前特定商品的价格。 在此示例中,你可能希望将目标(需求)负延迟 3 个月,以便模型在正确的关系上进行训练。 有关详细信息,请参阅 自动训练时序预测模型

feature_lags
必需
str

用于生成数值特征滞后的标志。 此设置已弃用。 请改用forecasting_parameters。

target_rolling_window_size
必需
int

用于创建目标列的滚动窗口平均值的过去时间段数。 此设置已弃用。 请改用forecasting_parameters。

预测时,此参数表示用于生成预测 值的历史周期 , <= 定型集大小。 如果省略, 则 n 是完整的训练集大小。 如果只想在训练模型时考虑一定数量的历史记录,请指定此参数。

country_or_region
必需
str

用于生成假日功能的国家/地区。 这些代码应为 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。 此设置已弃用。 请改用forecasting_parameters。

use_stl
必需
str

配置时序目标列的 STL 分解。 use_stl可以采用三个值:None (default) - 无 stl 分解,“季节”- 仅生成季节组件和season_trend - 生成季节和趋势组件。 此设置已弃用。 请改用forecasting_parameters。

seasonality
必需
intstr

设置时序季节性。 如果季节性设置为“auto”,则会推断它。 此设置已弃用。 请改用forecasting_parameters。

short_series_handling_configuration
必需
str

定义 AutoML 如何处理短时序的参数。

可能的值:“auto”(默认值)、“pad”、“drop”和“None”。

  • 如果没有长系列,则自动短系列将被填充,否则将删除短系列。
  • 填充 所有短系列。
  • 删除 所有短系列将被删除”。
  • 不会 修改短系列。 如果设置为“pad”,则表将填充回归器的零值和空值,目标随机值平均值等于给定时序 ID 的目标值中值。如果中值大于或等于零,则最小填充值将被零剪裁:输入:

日期

numeric_value

字符串

目标

2020-01-01

23

绿

55

假设最小值数为 4 的输出:

日期

numeric_value

字符串

目标

2019-12-29

0

55.1

2019-12-30

0

55.6

2019-12-31

0

54.5

2020-01-01

23

绿

55

注意: 我们有两个参数short_series_handling_configuration和旧版short_series_handling。 设置这两个参数时,我们将同步它们,如下表所示(short_series_handling_configuration和short_series_handling分别标记为handling_configuration和处理)。

处理

handling_configuration

生成的处理

生成的handling_configuration

真 实

自动

真 实

自动

真 实

真 实

自动

真 实

真 实

自动

真 实

没有

没有

自动

没有

没有

没有

没有

没有

freq
必需
strNone

预测频率。

预测时,此参数表示需要预测的时间段,例如每日、每周、每年等。默认情况下,预测频率为数据集频率。 可以选择将其设置为大于(但不小于)数据集频率。 我们将聚合数据,并按预测频率生成结果。 例如,对于每日数据,可以将频率设置为每日、每周或每月,但不能设置为每小时。 频率必须是 pandas 偏移别名。 有关详细信息,请参阅 pandas 文档: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
必需
strNone

用于聚合符合用户指定频率的时序目标列的函数。 如果设置了target_aggregation_function,但未设置 freq 参数,则会引发错误。 可能的目标聚合函数包括:“sum”、“max”、“min”和“mean”。

频率

target_aggregation_function

数据规律性修复机制

无(默认值)

无(默认值)

未应用聚合。如果有效频率无法确定,将引发错误。

一些值

无(默认值)

未应用聚合。如果符合给定频率网格的数据点数小于,则将删除 90%these 点,否则将引发错误。

无(默认值)

聚合函数

引发有关缺少频率参数的错误。

一些值

聚合函数

使用提供的聚合函数聚合到频率。

enable_voting_ensemble
必需

是否启用/禁用 VotingEnsemble 迭代。 默认值为 True。 有关组合的详细信息,请参阅 组合配置

enable_stack_ensemble
必需

是否启用/禁用 StackEnsemble 迭代。 默认值为 None。 如果 正在设置enable_onnx_compatible_models 标志,则将禁用 StackEnsemble 迭代。 同样,对于 Timeseries 任务,默认情况下将禁用 StackEnsemble 迭代,以避免由于用于拟合元学习器的小训练集而导致过度拟合的风险。 有关组合的详细信息,请参阅 组合配置

debug_log
必需
str

要向其写入调试信息的日志文件。 如果未指定,则使用“automl.log”。

training_data
必需

试验中使用的定型数据。 它应同时包含训练功能和标签列(可选为样本权重列)。 如果 training_data 已指定, label_column_name 则还必须指定参数。

training_data 已在版本 1.0.81 中引入。

validation_data
必需

试验中使用的验证数据。 它应同时包含训练特征和标签列(可选为样本权重列)。 如果validation_data已指定,则必须training_datalabel_column_name指定参数。

validation_data 已在版本 1.0.81 中引入。 有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

test_data
必需

使用测试数据集或测试数据拆分的模型测试功能是处于预览状态的功能,随时可能会更改。 要用于测试运行的测试数据,该测试数据将在模型训练完成后自动启动。 测试运行将使用最佳模型获取预测,并计算给定这些预测的指标。

如果未指定此参数或 test_size 参数,则完成模型训练后不会自动执行测试运行。 测试数据应同时包含功能和标签列。 如果 test_data 已指定, label_column_name 则必须指定参数。

test_size
必需

使用测试数据集或测试数据拆分的模型测试功能是处于预览状态的功能,随时可能会更改。 要保留测试运行的测试数据的定型数据的分数,该测试运行将在模型训练完成后自动启动。 测试运行将使用最佳模型获取预测,并计算给定这些预测的指标。

这应介于 0.0 和 1.0 之间(非独占)。 如果 test_size 同时指定 validation_size了测试数据,则在拆分验证数据之前,将拆分 training_data 测试数据。 例如,如果validation_size=0.1test_size=0.1原始训练数据有 1000 行,则测试数据将包含 100 行,验证数据将包含 90 行,训练数据将包含 810 行。

对于基于回归的任务,使用随机采样。 对于分类任务,使用分层采样。 预测目前不支持使用训练/测试拆分指定测试数据集。

如果未指定此参数或 test_data 参数,则完成模型训练后不会自动执行测试运行。

label_column_name
必需

标签列的名称。 如果输入数据来自 pandas。没有列名称的数据帧可以改用列索引,以整数表示。

此参数适用于training_datavalidation_data参数和test_data参数。 label_column_name 已在版本 1.0.81 中引入。

weight_column_name
必需

示例权重列的名称。 自动化 ML 支持加权列作为输入,导致数据中的行向上或向下加权。 如果输入数据来自 pandas。没有列名称的数据帧可以改用列索引,以整数表示。

此参数适用于 training_data 参数和 validation_data 参数。 weight_column_names 已在版本 1.0.81 中引入。

cv_split_column_names
必需

包含自定义交叉验证拆分的列的名称列表。 每个 CV 拆分列表示一个 CV 拆分,其中每一行标记为 1 进行训练或 0 进行验证。

此参数适用于 training_data 自定义交叉验证目的的参数。 cv_split_column_names 已在版本 1.6.0 中引入

使用或 cv_split_column_namescv_splits_indices.

有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

enable_local_managed
必需

禁用的参数。 目前无法启用本地托管运行。

enable_dnn
必需

是否在模型选择期间包含基于 DNN 的模型。 init 中的默认值为 None。 但是,对于 DNN NLP 任务,默认值为 True,对于所有其他 AutoML 任务,默认值为 False。

task
必需
strTasks

要运行的任务的类型。 值可以是“分类”、“回归”或“预测”,具体取决于要解决的自动化 ML 问题的类型。

path
必需
str

Azure 机器学习项目文件夹的完整路径。 如果未指定,则默认值为使用当前目录或“.”。

iterations
必需
int

在自动化 ML 试验期间要测试的不同算法和参数组合的总数。 如果未指定,则默认值为 1000 次迭代。

primary_metric
必需
strMetric

自动化机器学习将针对模型选择进行优化的指标。 自动化机器学习收集的指标比可以优化更多的指标。 可用于 get_primary_metrics 获取给定任务的有效指标列表。 有关如何计算指标的详细信息,请参阅 https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#primary-metric

如果未指定,则对分类任务使用准确性,规范化根均方用于预测和回归任务,准确性用于图像分类和图像多标签分类,平均平均精度用于图像对象检测。

positive_label
必需
Any

自动化机器学习用于计算二进制指标的正类标签。 二进制指标在分类任务的两个条件下计算:

  1. 标签列由两个类组成,指示传入 positive_label 时,二元分类任务 AutoML 将使用指定的正类,否则 AutoML 将基于标签编码值选取正类。
  2. 指定 positive_label 的多类分类任务

有关分类的详细信息,请查看 分类方案的指标

compute_target
必需

要运行自动化机器学习试验的 Azure 机器学习计算目标。 有关计算目标的详细信息,请参阅 https://docs.microsoft.com/azure/machine-learning/how-to-auto-train-remote

spark_context
必需
<xref:SparkContext>

Spark 上下文。 仅在 Azure Databricks/Spark 环境中使用时才适用。

X
必需

在试验期间拟合管道时要使用的训练功能。 此设置已弃用。 请改用training_data和label_column_name。

y
必需

在试验期间拟合管道时要使用的训练标签。 这是模型将预测的值。 此设置已弃用。 请改用training_data和label_column_name。

sample_weight
必需

运行拟合管道时要提供给每个训练示例的权重,每行应对应于 X 和 y 数据中的一行。

指定 X时指定此参数。 此设置已弃用。 请改用training_data和weight_column_name。

X_valid
必需

在试验期间拟合管道时要使用的验证功能。

如果指定,则 y_valid 还必须指定或 sample_weight_valid 还必须指定。 此设置已弃用。 请改用validation_data和label_column_name。

y_valid
必需

在试验期间拟合管道时要使用的验证标签。

X_validy_valid必须同时指定。 此设置已弃用。 请改用validation_data和label_column_name。

sample_weight_valid
必需

运行评分管道时,要为每个验证示例提供权重,每行应对应于 X 和 y 数据中的一行。

指定 X_valid时指定此参数。 此设置已弃用。 请改用validation_data和weight_column_name。

cv_splits_indices
必需

用于拆分训练数据进行交叉验证的索引。 每一行都是一个单独的交叉折叠,在每个十字形中,提供 2 个 numpy 数组,第一个包含用于训练数据的样本索引,第二个包含用于验证数据的索引。 例如,[[t1, v1], [t2, v2], ...] 其中 t1 是第一个交叉折叠的训练索引,v1 是第一个交叉折叠的验证索引。 当数据作为单独的功能数据集和标签列传递时,支持此选项。

若要将现有数据指定为验证数据,请使用 validation_data。 若要让 AutoML 从训练数据中提取验证数据,请指定或n_cross_validationsvalidation_size指定 。 cv_split_column_names如果具有交叉验证列,请使用 training_data

validation_size
必需

未指定用户验证数据时要保留哪些数据进行验证。 这应介于 0.0 和 1.0 之间(非独占)。

指定 validation_data 以提供验证数据,否则设置 n_cross_validationsvalidation_size 从指定的训练数据中提取验证数据。 对于自定义交叉验证折叠,请使用 cv_split_column_names

有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

n_cross_validations
必需
intstr

未指定用户验证数据时要执行的交叉验证数。

指定 validation_data 以提供验证数据,否则设置 n_cross_validationsvalidation_size 从指定的训练数据中提取验证数据。 对于自定义交叉验证折叠,请使用 cv_split_column_names

有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

y_min
必需

回归实验的最小值为 y。 y_min结合和y_max用于根据输入数据范围规范化测试集指标。 此设置已弃用。 而是从数据中计算此值。

y_max
必需

回归实验的最大值为 y。 y_min结合和y_max用于根据输入数据范围规范化测试集指标。 此设置已弃用。 而是从数据中计算此值。

num_classes
必需
int

分类试验的标签数据中的类数。 此设置已弃用。 而是从数据中计算此值。

featurization
必需

“auto”/ 'off' / FeaturizationConfig 指示器,指示是否应自动执行特征化步骤,还是应使用自定义特征化。 注意:如果输入数据稀疏,则无法打开特征化。

系统会自动检测列类型。 根据检测到的列类型预处理/特征化,如下所示:

  • 分类:目标编码,一个热编码,删除高基数类别,插补缺失值。

  • 数值:插补缺失值、聚类距离、证据权重。

  • DateTime:若干功能,例如日、秒、分钟、小时等。

  • 文本:一袋单词,预先训练的 Word 嵌入,文本目标编码。

有关更多详细信息,请参阅 在 Python 中配置自动化 ML 试验的文章。

若要自定义特征化步骤,请提供 FeaturizationConfig 对象。 自定义特征化目前支持阻止一组转换器、更新列用途、编辑转换器参数和删除列。 有关详细信息,请参阅 自定义功能工程

注意:当任务类型设置为独立于此参数进行预测时,将单独处理时间系列功能。

max_cores_per_iteration
必需
int

用于给定训练迭代的最大线程数。 可接受的值:

  • 大于 1 且小于或等于计算目标上的最大核心数。

  • 等于 -1,这意味着每个子运行每次迭代使用所有可能的内核。

  • 等于 1,默认值。

max_concurrent_iterations
必需
int

表示将并行执行的迭代的最大次数。 默认值为 1。

  • AmlCompute 群集支持每个节点运行的一个交互。 对于在单个 AmlCompute 群集上并行运行的多个试验,所有试验的值之和 max_concurrent_iterations 应小于或等于最大节点数。

  • DSVM 支持每个节点的多次迭代。 max_concurrent_iterations 应小于或等于 DSVM 上的内核数。 对于在单个 DSVM 上并行运行的多个试验,所有试验的值之 max_concurrent_iterations 和应小于或等于最大节点数。

  • Databricks - max_concurrent_iterations 应小于或等于 Databricks 上的工作节点数。

max_concurrent_iterations 不适用于本地运行。 以前,此参数已命名 concurrent_iterations

iteration_timeout_minutes
必需
int

每次迭代在终止之前可以运行的最大时间(以分钟为单位)。 如果未指定,则使用值 1 个月或 43200 分钟。

mem_in_mb
必需
int

每次迭代在终止之前可以运行的最大内存使用量。 如果未指定,则使用值 1 PB 或 1073741824 MB。

enforce_time_on_windows
必需

是否在 Windows 上每次迭代时对模型训练强制实施时间限制。 默认值为 True。 如果从 Python 脚本文件(.py)运行,请参阅有关在 Windows 上允许资源限制的文档。

experiment_timeout_hours
必需

在试验结束之前,所有合并的迭代所花费的最大时间量(以小时为单位)。 可以是表示 15 分钟的小数值,如 0.25。 如果未指定,则默认试验超时为 6 天。 若要指定小于或等于 1 小时的超时,请确保数据集的大小不超过 10,000,000(行时间列)或错误结果。

experiment_exit_score
必需

试验的目标分数。 达到此分数后,试验将终止。 如果未指定(无条件),试验将一直运行,直到主要指标没有取得进一步进展。 有关退出条件的详细信息,请参阅此>>article https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#exit-criteria'_。<<

enable_early_stopping
必需

如果分数在短期内没有提高,是否启用提前终止。 默认值为 True。

提前停止逻辑:

  • 前 20 次迭代(地标)没有提前停止。

  • 提前停止窗口在 21 次迭代时启动,并查找early_stopping_n_iters迭代(当前设置为 10)。 这意味着可以进行停止的第一次迭代是第 31 次迭代。

  • AutoML 仍计划 2 个合奏迭代 AFTER 提前停止,这可能会导致得分较高。

  • 如果计算的最佳分数的绝对值与过去early_stopping_n_iters迭代的绝对值相同,则会触发提前停止,也就是说,如果early_stopping_n_iters迭代的分数没有改进。

blocked_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

要忽略试验的算法列表。 如果 enable_tf 为 False,则包含 blocked_modelsTensorFlow 模型。

blacklist_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

弃用的参数,请改用blocked_models。

exclude_nan_labels
必需

是否排除标签中包含 NaN 值的行。 默认值为 True。

verbosity
必需
int

写入日志文件的详细级别。 默认值为 INFO 或 20。 Python 日志记录库中定义了可接受的值。

enable_tf
必需

是否启用/禁用 TensorFlow 算法。 默认值为 False。

model_explainability
必需

是否在所有 AutoML 训练迭代结束时启用最佳 AutoML 模型解释。 默认值为 True。 有关详细信息,请参阅 可解释性:自动化机器学习中的模型说明

allowed_models
必需
list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>

要搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型减去指定或弃用的 TensorFlow 模型中的任何 blocked_models 模型。 类中 SupportedModels 描述了每个任务类型的支持模型。

allowed_models
必需

要搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型减去指定或弃用的 TensorFlow 模型中的任何 blocked_models 模型。 类中 SupportedModels 描述了每个任务类型的支持模型。

whitelist_models
必需

弃用的参数,请改用allowed_models。

enable_onnx_compatible_models
必需

是启用或禁用强制实施 ONNX 兼容的模型。 默认值为 False。 有关开放神经网络交换(ONNX)和 Azure 机器学习的详细信息,请参阅 本文

forecasting_parameters
必需

用于保存所有预测特定参数的对象。

time_column_name
必需
str

时间列的名称。 当预测在用于生成时序并推断其频率的输入数据中指定日期/时间列时,此参数是必需的。 此设置已弃用。 请改用forecasting_parameters。

max_horizon
必需
int

所需最大预测范围(以时序频率单位为单位)。 默认值为 1。 此设置已弃用。 请改用forecasting_parameters。

单位基于训练数据的时间间隔,例如预测器应预测的每月、每周。预测任务类型时,此参数是必需的。 有关设置预测参数的详细信息,请参阅 自动训练时序预测模型

grain_column_names
必需
strlist(str)

用于对时间序列进行分组的列的名称。 它可用于创建多个序列。 如果未定义粒度,则假定数据集为一个时序。 此参数用于任务类型预测。 此设置已弃用。 请改用forecasting_parameters。

target_lags
必需
intlist(int)

要从目标列滞后的过去时间段数。 默认值为 1。 此设置已弃用。 请改用forecasting_parameters。

预测时,此参数表示根据数据频率滞后目标值的行数。 这表示为列表或单个整数。 默认情况下,当独立变量与依赖变量之间的关系不匹配或关联时,应使用滞后时间。 例如,当尝试预测产品的需求时,任何月份的需求都可能取决于 3 个月前特定商品的价格。 在此示例中,你可能希望将目标(需求)负延迟 3 个月,以便模型在正确的关系上进行训练。 有关详细信息,请参阅 自动训练时序预测模型

feature_lags
必需
str

用于生成数值特征滞后的标志。 此设置已弃用。 请改用forecasting_parameters。

target_rolling_window_size
必需
int

用于创建目标列的滚动窗口平均值的过去时间段数。 此设置已弃用。 请改用forecasting_parameters。

预测时,此参数表示用于生成预测 值的历史周期 , <= 定型集大小。 如果省略, 则 n 是完整的训练集大小。 如果只想在训练模型时考虑一定数量的历史记录,请指定此参数。

country_or_region
必需
str

用于生成假日功能的国家/地区。 这些代码应为 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。 此设置已弃用。 请改用forecasting_parameters。

use_stl
必需
str

配置时序目标列的 STL 分解。 use_stl可以采用三个值:None (default) - 无 stl 分解,“季节”- 仅生成季节组件和season_trend - 生成季节和趋势组件。 此设置已弃用。 请改用forecasting_parameters。

seasonality
必需
int

设置时序季节性。 如果季节性设置为 -1,则会推断它。 如果未设置use_stl,则不会使用此参数。 此设置已弃用。 请改用forecasting_parameters。

short_series_handling_configuration
必需
str

定义 AutoML 如何处理短时序的参数。

可能的值:“auto”(默认值)、“pad”、“drop”和“None”。

  • 如果没有长系列,则自动短系列将被填充,否则将删除短系列。
  • 填充 所有短系列。
  • 删除 所有短系列将被删除”。
  • 不会 修改短系列。 如果设置为“pad”,则表将填充回归器的零值和空值,目标随机值平均值等于给定时序 ID 的目标值中值。如果中值大于或等于零,则最小填充值将被零剪裁:输入:

日期

numeric_value

字符串

目标

2020-01-01

23

绿

55

假设最小值数为四的输出:+————+—————+———-+-–+ |日期 |numeric_value |string |target |+============+===============+==========+========+ |2019-12-29 |0 |NA |55.1 |+————+—————+———-+——–+ |2019-12-30 |0 |NA |55.6 |+————+—————+———-+——–+ |2019-12-31 |0 |NA |54.5 |+————+—————+———-+——–+ |2020-01-01 |23 |绿色 |55 |+————+—————+———-+——–+

注意: 我们有两个参数short_series_handling_configuration和旧版short_series_handling。 设置这两个参数时,我们将同步它们,如下表所示(short_series_handling_configuration和short_series_handling分别标记为handling_configuration和处理)。

处理

handling_configuration

生成的处理

生成的handling_configuration

真 实

自动

真 实

自动

真 实

真 实

自动

真 实

真 实

自动

真 实

没有

没有

自动

没有

没有

没有

没有

没有

freq
必需
strNone

预测频率。

预测时,此参数表示需要预测的时间段,例如每日、每周、每年等。默认情况下,预测频率为数据集频率。 可以选择将其设置为大于(但不小于)数据集频率。 我们将聚合数据,并按预测频率生成结果。 例如,对于每日数据,可以将频率设置为每日、每周或每月,但不能设置为每小时。 频率必须是 pandas 偏移别名。 有关详细信息,请参阅 pandas 文档: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects

target_aggregation_function
必需
strNone

用于聚合符合用户指定频率的时序目标列的函数。 如果设置了target_aggregation_function,但未设置 freq 参数,则会引发错误。 可能的目标聚合函数包括:“sum”、“max”、“min”和“mean”。

频率

target_aggregation_function

数据规律性修复机制

无(默认值)

无(默认值)

未应用聚合。如果有效频率无法确定,将引发错误。

一些值

无(默认值)

未应用聚合。如果符合给定频率网格的数据点数小于,则将删除 90%these 点,否则将引发错误。

无(默认值)

聚合函数

引发有关缺少频率参数的错误。

一些值

聚合函数

使用提供的聚合函数聚合到频率。

enable_voting_ensemble
必需

是否启用/禁用 VotingEnsemble 迭代。 默认值为 True。 有关组合的详细信息,请参阅 组合配置

enable_stack_ensemble
必需

是否启用/禁用 StackEnsemble 迭代。 默认值为 None。 如果 正在设置enable_onnx_compatible_models 标志,则将禁用 StackEnsemble 迭代。 同样,对于 Timeseries 任务,默认情况下将禁用 StackEnsemble 迭代,以避免由于用于拟合元学习器的小训练集而导致过度拟合的风险。 有关组合的详细信息,请参阅 组合配置

debug_log
必需
str

要向其写入调试信息的日志文件。 如果未指定,则使用“automl.log”。

training_data
必需

试验中使用的定型数据。 它应同时包含训练功能和标签列(可选为样本权重列)。 如果 training_data 已指定, label_column_name 则还必须指定参数。

training_data 已在版本 1.0.81 中引入。

validation_data
必需

试验中使用的验证数据。 它应同时包含训练特征和标签列(可选为样本权重列)。 如果validation_data已指定,则必须training_datalabel_column_name指定参数。

validation_data 已在版本 1.0.81 中引入。 有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

test_data
必需

使用测试数据集或测试数据拆分的模型测试功能是处于预览状态的功能,随时可能会更改。 要用于测试运行的测试数据,该测试数据将在模型训练完成后自动启动。 测试运行将使用最佳模型获取预测,并计算给定这些预测的指标。

如果未指定此参数或 test_size 参数,则完成模型训练后不会自动执行测试运行。 测试数据应同时包含功能和标签列。 如果 test_data 已指定, label_column_name 则必须指定参数。

test_size
必需

使用测试数据集或测试数据拆分的模型测试功能是处于预览状态的功能,随时可能会更改。 要保留测试运行的测试数据的定型数据的分数,该测试运行将在模型训练完成后自动启动。 测试运行将使用最佳模型获取预测,并计算给定这些预测的指标。

这应介于 0.0 和 1.0 之间(非独占)。 如果 test_size 同时指定 validation_size了测试数据,则在拆分验证数据之前,将拆分 training_data 测试数据。 例如,如果validation_size=0.1test_size=0.1原始训练数据有 1000 行,则测试数据将包含 100 行,验证数据将包含 90 行,训练数据将包含 810 行。

对于基于回归的任务,使用随机采样。 对于分类任务,使用分层采样。 预测目前不支持使用训练/测试拆分指定测试数据集。

如果未指定此参数或 test_data 参数,则完成模型训练后不会自动执行测试运行。

label_column_name
必需

标签列的名称。 如果输入数据来自 pandas。没有列名称的数据帧可以改用列索引,以整数表示。

此参数适用于training_datavalidation_data参数和test_data参数。 label_column_name 已在版本 1.0.81 中引入。

weight_column_name
必需

示例权重列的名称。 自动化 ML 支持加权列作为输入,导致数据中的行向上或向下加权。 如果输入数据来自 pandas。没有列名称的数据帧可以改用列索引,以整数表示。

此参数适用于 training_data 参数和 validation_data 参数。 weight_column_names 已在版本 1.0.81 中引入。

cv_split_column_names
必需

包含自定义交叉验证拆分的列的名称列表。 每个 CV 拆分列表示一个 CV 拆分,其中每一行标记为 1 进行训练或 0 进行验证。

此参数适用于 training_data 自定义交叉验证目的的参数。 cv_split_column_names 已在版本 1.6.0 中引入

使用或 cv_split_column_namescv_splits_indices.

有关详细信息,请参阅 在自动化机器学习中配置数据拆分和交叉验证

enable_local_managed
必需

禁用的参数。 目前无法启用本地托管运行。

enable_dnn
必需

是否在模型选择期间包含基于 DNN 的模型。 init 中的默认值为 None。 但是,对于 DNN NLP 任务,默认值为 True,对于所有其他 AutoML 任务,默认值为 False。

注解

以下代码演示了创建 AutoMLConfig 对象并提交回归试验的基本示例:


   automl_settings = {
       "n_cross_validations": 3,
       "primary_metric": 'r2_score',
       "enable_early_stopping": True,
       "experiment_timeout_hours": 1.0,
       "max_concurrent_iterations": 4,
       "max_cores_per_iteration": -1,
       "verbosity": logging.INFO,
   }

   automl_config = AutoMLConfig(task = 'regression',
                               compute_target = compute_target,
                               training_data = train_data,
                               label_column_name = label,
                               **automl_settings
                               )

   ws = Workspace.from_config()
   experiment = Experiment(ws, "your-experiment-name")
   run = experiment.submit(automl_config, show_output=True)

回归中提供了完整的示例

使用这些 AutoMLConfig 进行预测的示例位于以下笔记本中:

可以在这些 自动化 ML 笔记本中找到对所有任务类型使用 AutoMLConfig 的示例。

有关自动化 ML 的背景信息,请参阅以下文章:

有关为自动化机器学习配置训练/验证数据拆分和交叉验证的不同选项的详细信息,AutoML、试验,请参阅 在自动化机器学习中配置数据拆分和交叉验证

方法

as_serializable_dict

将对象转换为字典。

get_supported_dataset_languages

在 ISO 639-3 中获取支持的语言及其相应的语言代码。

as_serializable_dict

将对象转换为字典。

as_serializable_dict() -> Dict[str, Any]

get_supported_dataset_languages

在 ISO 639-3 中获取支持的语言及其相应的语言代码。

get_supported_dataset_languages(use_gpu: bool) -> Dict[Any, Any]

参数

名称 说明
cls
必需

AutoMLConfig类对象。

use_gpu
必需

指示是否使用 gpu 计算的布尔值。

返回

类型 说明

格式 {: }的字典。 语言代码遵循 ISO 639-3 标准,请参阅 https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes