AutoMLConfig 类
表示用于提交 Azure 机器学习中的自动化 ML 试验的配置。
此配置对象包含并保留用于配置试验运行的参数,以及运行时使用的训练数据。 有关选择设置的指南,请参阅 https://aka.ms/AutoMLConfig。
创建 AutoMLConfig。
- 继承
-
builtins.objectAutoMLConfig
构造函数
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)
参数
要运行的任务的类型。 值可以是“classification”、“regression”或“forecasting”,具体取决于要解决的自动化机器学习问题类型。
自动化机器学习将为模型选择优化的指标。 自动化机器学习收集的指标比它可以优化的指标要多。 可以使用 get_primary_metrics 获取给定任务的有效指标列表。 有关如何计算指标的详细信息,请参阅 https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#primary-metric。
如果未指定,则准确度用于分类任务,规范化均方根用于预测和回归任务,准确度用于图像分类和图像多标签分类,平均精度用于图像对象检测。
- positive_label
- Any
自动化机器学习将用于计算二进制指标的正类标签。 在分类任务的两个条件下计算二进制指标:
- 标签列由两个类组成,指示二元分类任务 AutoML 在传入 positive_label 时将使用指定的正类,否则 AutoML 将基于标签编码值选取正类。
- 指定了 positive_label 的多类分类任务
有关分类详细信息,请参阅分类方案的指标。
- compute_target
- AbstractComputeTarget
用于运行自动化机器学习试验的 Azure 机器学习计算目标。 有关计算目标的详细信息,请参阅 https://docs.microsoft.com/en-us/azure/machine-learning/concept-automated-ml#local-remote。
- spark_context
- <xref:SparkContext>
Spark 上下文。 仅当在 Azure Databricks/Spark 环境中使用时才适用。
- X
- DataFrame 或 ndarray 或 Dataset 或 TabularDataset
在试验期间拟合管道时使用的训练特征。 此设置即将弃用。 请改用 training_data 和 label_column_name。
- y
- DataFrame 或 ndarray 或 Dataset 或 TabularDataset
在试验期间拟合管道时使用的训练标签。 这是模型将预测的值。 此设置即将弃用。 请改用 training_data 和 label_column_name。
- sample_weight
- DataFrame 或 ndarray 或 TabularDataset
运行拟合管道时为每个训练样本指定的权重,每行应该对应于 X 和 Y 数据中的一行。
指定 X
时请指定此参数。
此设置即将弃用。 请改用 training_data 和 weight_column_name。
- X_valid
- DataFrame 或 ndarray 或 Dataset 或 TabularDataset
在试验期间拟合管道时使用的验证特征。
如果指定,则还必须指定 y_valid
或 sample_weight_valid
。
此设置即将弃用。 请改用 validation_data 和 label_column_name。
- y_valid
- DataFrame 或 ndarray 或 Dataset 或 TabularDataset
在试验期间拟合管道时使用的验证标签。
必须一起指定 X_valid
和 y_valid
。
此设置即将弃用。 请改用 validation_data 和 label_column_name。
- sample_weight_valid
- DataFrame 或 ndarray 或 TabularDataset
运行评分管道时为每个验证样本指定的权重,每行应该对应于 X 和 Y 数据中的一行。
指定 X_valid
时请指定此参数。
此设置即将弃用。 请改用 validation_data 和 weight_column_name。
用于交叉验证的拆分训练数据的索引。 每行都是单独的交叉折叠,在每个交叉折叠内,提供 2 个 numpy 数组,第一个数组包含用于训练数据的样本索引,第二个数组包含用于验证数据的索引。 例如 [[t1, v1], [t2, v2], …],其中 t1 是第一个交叉折叠的训练索引,v1 是第一个交叉折叠的验证索引。
若要将现有数据指定为验证数据,请使用 validation_data
。 若要改为让 AutoML 从训练数据中提取验证数据,请指定 n_cross_validations
或 validation_size
。
如果 training_data
中包含交叉验证列,请使用 cv_split_column_names
。
- validation_size
- float
未指定用户验证数据时,要保留用于验证的数据部分。 此值应介于 0.0 和 1.0 之间(不含)。
指定 validation_data
以提供验证数据,否则设置 n_cross_validations
或 validation_size
以从指定的训练数据中提取验证数据。
对于自定义交叉验证折叠,请使用 cv_split_column_names
。
有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- n_cross_validations
- int
未指定用户验证数据时要执行多少次交叉验证。
指定 validation_data
以提供验证数据,否则设置 n_cross_validations
或 validation_size
以从指定的训练数据中提取验证数据。
对于自定义交叉验证折叠,请使用 cv_split_column_names
。
有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- featurization
- str 或 FeaturizationConfig
'auto' / 'off' / FeaturizationConfig 指示器,指示是否应自动执行特征化步骤,或者是否应使用自定义特征化。 备注:如果输入数据是稀疏的,则无法启用特征化。
自动检测列类型。 基于检测到的下述列类型执行预处理/特征化:
分类:目标编码,一种热编码,删除高基数类别,插补缺失值。
数字:插补缺失值,群集距离,证据权重。
日期/时间:多个特征,例如天、秒、分钟、小时等。
文本:词袋,预先训练的字词嵌入,文本目标编码。
有关更多详细信息,请参阅在 Python 中配置自动化机器学习试验一文。
若要自定义特征化步骤,请提供 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
。
- enforce_time_on_windows
- bool
是否对 Windows 上每次迭代的模型训练强制实施时间限制。 默认值为 True。 如果从 Python 脚本文件 (.py) 运行,请参阅有关在 Windows 上允许资源限制的文档。
- experiment_timeout_hours
- float
在试验结束之前,所有合并的迭代所花费的最大时间量(以小时为单位)。 可以是十进制值,如 0.25,表示 15 分钟。 如果未指定,则默认试验超时为 6 天。 若要指定小于或等于 1 小时的超时,请确保数据集的大小不大于 10,000,000(行数乘以列数),否则会出错。
- experiment_exit_score
- float
试验的目标评分。 达到此评分后,试验将终止。 如果未指定(无条件),则试验将一直运行到主要指标没有进一步变化为止。 有关退出条件的详细信息,请参阅此文。
- enable_early_stopping
- bool
如果评分在短期内没有提高,是否启用提前终止。 默认值为 True。
提前停止逻辑:
对于前 20 次迭代(特征点)不提前停止。
提前停止窗口从第 21 次迭代开始,并查找 early_stopping_n_iters 迭代
(当前设置为 10)。 这意味着可能发生停止的首个迭代是第 31 次迭代。
AutoML 仍会在提前停止之后计划 2 次集成迭代,这可能会导致
评分更高。
如果计算的最佳评分的绝对值与过去相同,则触发提前停止
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_models
中包含 TensorFlow 模型。
- blacklist_models
- list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>
已弃用的参数,请改用 blocked_models。
- model_explainability
- bool
是否在所有 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>
用于搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型,减去 blocked_models
中指定的任何模型或已弃用的 TensorFlow 模型。
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
- bool
是启用还是禁用强制执行 ONNX 兼容的模型。 默认值为 False。 有关 Open Neural Network Exchange (ONNX) 和 Azure 机器学习的详细信息,请参阅此文。
- time_column_name
- str
时间列的名称。 预测时需要使用此参数来指定输入数据中用于生成时序并推理其频率的日期/时间列。 此设置即将弃用。 请改用 forecasting_parameters。
- max_horizon
- int
所需的最大预测范围,以时序频率为单位。 默认值为 1。
单位基于训练数据的时间间隔,例如,预测人员应每月、每周预测。当任务类型为 forecasting 时,此参数是必需的。 有关设置预测参数的详细信息,请参阅自动训练时序预测模型。 此设置即将弃用。 请改用 forecasting_parameters。
用于对时序进行分组的列的名称。 它可用于创建多个时序。 如果未定义粒度,则假定数据集为一个时序。 此参数与任务类型 forecasting 结合使用。 此设置即将弃用。 请改用 forecasting_parameters。
滞后于目标列的过去周期数。 默认值为 1。 此设置即将弃用。 请改用 forecasting_parameters。
预测时,此参数表示基于数据频率将目标值滞后的行数。 这表示为一个列表或整数。 默认情况下,在独立变量和依赖变量之间的关系不匹配或关联时,应使用滞后。 例如,在尝试预测某产品的需求时,任何月份的需求可能取决于之前 3 个月特定商品的价格。 在此示例中,可将目标(需求)的滞后负 3 个月,以便针对正确的关系训练模型。 有关详细信息,请参阅自动训练时序预测模型。
- target_rolling_window_size
- int
用于创建目标列的滚动窗口平均值的过去周期数。 此设置即将弃用。 请改用 forecasting_parameters。
预测时,此参数表示用于生成预测值的 n 个历史周期,小于等于训练集大小。 如果省略,则 n 为完整训练集大小。 如果训练模型时只想考虑一定量的历史记录,请指定此参数。
- country_or_region
- str
用于生成节假日特征的国家/地区。 这些值应该是 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。 此设置即将弃用。 请改用 forecasting_parameters。
- use_stl
- str
配置时序目标列的 STL 分解。 use_stl 可以取三个值:None(默认值)- 不进行 STL 分解;season - 仅生成季节组件;season_trend - 生成季节和趋势组件。 此设置即将弃用。 请改用 forecasting_parameters。
- short_series_handling_configuration
- str
定义 AutoML 应如何处理短时序的参数。
可能的值:"auto"(默认)、"pad"、"drop" 和“无”。
- auto 如果没有长时序,将会填充短时序,否则将删除短时序。
- pad 所有短时序都将填充。
- drop 所有短时序都将被删除。
- None 不会修改短时序。 如果设置为“pad”,则表将填充回归量为零的空值,目标为随机值,其平均值等于给定时序 ID 的目标值中值。如果中值多或等于零,最小填充值将剪裁为零:输入:
日期
numeric_value
string
目标
2020-01-01
23
green
55
输出假设最小值为 4:
日期
numeric_value
string
目标
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
green
55
备注:我们有两个参数 Short_series_handling_configuration 和旧 short_series_handling。 如果同时设置了这两个参数,则将按下表中所示对其进行同步(为简洁起见,short_series_handling_configuration 和 short_series_handling 分别标记为 handling_configuration 和 handling)。
处理
handling_configuration
生成的处理
生成的handling_configuration
True
auto
True
auto
True
垫
True
auto
True
drop
True
auto
True
无
False
无
False
auto
False
无
False
垫
False
无
False
drop
False
无
False
无
False
无
预测频率。
预测时,此参数表示预测所需的时间段,例如每日、每周、每年等。默认情况下,预测频率为数据集频率。 可以选择将其设置为比数据集频率大,不能比数据集频率小。 我们将聚合数据并生成预测频率的结果。 例如,对于每日数据,可以将频率设置为每日、每周或每月,但不能设置为每小时。 频率必须是 pandas 偏移别名。 有关详细信息,请参阅 pandas 文档:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects
用于聚合时序目标列以符合用户指定频率的函数。 如果设置了 target_aggregation_function,但未设置 freq 参数,则会引发错误。 可能的目标聚合函数包括:sum、max、min 和 mean。
频率
target_aggregation_function
数据规律性修复机制
无(默认)
无(默认)
未应用聚合。如果有效频率无法确定,则会引发错误。
某些值
无(默认)
未应用聚合。如果符合给定频率网格的数据点数较少,则会删除 90% 的数据点,否则将引发错误。
无(默认)
聚合函数
引发有关缺少频率参数的错误。
某些值
聚合函数
使用提供的聚合函数聚合到频率。
- enable_stack_ensemble
- bool
是启用还是禁用 StackEnsemble 迭代。 默认值为 None。 如果设置了 enable_onnx_compatible_models 标志,则会禁用 StackEnsemble 迭代。 同样,对于时序任务,默认将禁用 StackEnsemble 迭代,以避免由于在拟合元学习器时使用小型训练集而导致过度拟合的风险。 有关集成的详细信息,请参阅集成配置。
- training_data
- DataFrame 或 Dataset 或 DatasetDefinition 或 TabularDataset
要在试验中使用的训练数据。
应该包含训练特征和标签列(可以选择性地包含样本权重列)。
如果指定了 training_data
,则还必须指定 label_column_name
参数。
training_data
是在版本 1.0.81 中引入的。
- validation_data
- DataFrame 或 Dataset 或 DatasetDefinition 或 TabularDataset
要在试验中使用的验证数据。
应该包含训练特征和标签列(可以选择性地包含样本权重列)。
如果指定了 validation_data
,则必须指定 training_data
和 label_column_name
参数。
validation_data
是在版本 1.0.81 中引入的。 有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- test_data
- Dataset 或 TabularDataset
使用测试数据集或测试数据拆分的模型测试功能处于预览阶段,随时可能会更改。 要用于测试运行的测试数据,将在模型训练完成后自动启动该测试。 测试运行将使用最佳模型来获取预测结果,并将根据这些预测生成指标。
如果未指定此参数或 test_size
参数,则模型训练完成后将不会自动执行任何测试运行。
测试数据应包含功能和标签列。
如果指定了 test_data
,则还必须指定 label_column_name
参数。
- test_size
- float
使用测试数据集或测试数据拆分的模型测试功能处于预览阶段,随时可能会更改。 为测试运行提供的测试数据的训练数据的一部分,在模型训练完成后将自动启动。 测试运行将使用最佳模型来获取预测结果,并将根据这些预测生成指标。
此值应介于 0.0 和 1.0 之间(不含)。
如果 test_size
同时指定为 validation_size
,则在拆分验证数据之前,将从 training_data
拆分测试数据。
例如,如果 validation_size=0.1
、test_size=0.1
和原始训练数据包含 1000 行,则测试数据将包含 100 行,验证数据将包含 90 行,训练数据将包含 810 行。
对于回归任务,使用随机采样。 对于分类任务,使用分层采样。 预测目前不支持使用训练/测试拆分指定测试数据集。
如果未指定此参数或 test_data
参数,则模型训练完成后将不会自动执行任何测试运行。
标签列的名称。 如果输入数据来自没有列名的 pandas.DataFrame,则可以使用以整数表示的列索引。
此参数适用于 training_data
、validation_data
、test_data
参数。
label_column_name
是在版本 1.0.81 中引入的。
样本权重列的名称。 自动化机器学习支持使用加权列作为输入,这会导致增大或减小数据中行的权重。 如果输入数据来自没有列名的 pandas.DataFrame,则可以使用以整数表示的列索引。
此参数适用于 training_data
和 validation_data
参数。
weight_column_names
是在版本 1.0.81 中引入的。
包含自定义交叉验证拆分的列的名称列表。 每个 CV 拆分列代表一个 CV 拆分,其中每行标记为 1(用于训练)或 0(用于验证)。
此参数适用于自定义交叉验证使用的 training_data
参数。
cv_split_column_names
是在版本 1.6.0 中引入的
使用 cv_split_column_names
或 cv_splits_indices
。
有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- enable_dnn
- bool
在模型选择期间是否包括基于 DNN 的模型。 init 中的默认值为 None。 不过,对于 DNN NLP 任务,默认值为 True,对于所有其他 AutoML 任务,默认值为 False。
要运行的任务的类型。 值可以是“classification”、“regression”或“forecasting”,具体取决于要解决的自动化机器学习问题类型。
自动化机器学习将为模型选择优化的指标。 自动化机器学习收集的指标比它可以优化的指标要多。 可以使用 get_primary_metrics 获取给定任务的有效指标列表。 有关如何计算指标的详细信息,请参阅 https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#primary-metric。
如果未指定,则准确度用于分类任务,规范化均方根用于预测和回归任务,准确度用于图像分类和图像多标签分类,平均精度用于图像对象检测。
- positive_label
- Any
自动化机器学习将用于计算二进制指标的正类标签。 在分类任务的两个条件下计算二进制指标:
- 标签列由两个类组成,指示二元分类任务 AutoML 在传入 positive_label 时将使用指定的正类,否则 AutoML 将基于标签编码值选取正类。
- 指定了 positive_label 的多类分类任务
有关分类详细信息,请参阅分类方案的指标。
- compute_target
- AbstractComputeTarget
用于运行自动化机器学习试验的 Azure 机器学习计算目标。 有关计算目标的详细信息,请参阅 https://docs.microsoft.com/azure/machine-learning/how-to-auto-train-remote。
- spark_context
- <xref:SparkContext>
Spark 上下文。 仅当在 Azure Databricks/Spark 环境中使用时才适用。
- X
- DataFrame 或 ndarray 或 Dataset 或 DatasetDefinition 或 TabularDataset
在试验期间拟合管道时使用的训练特征。 此设置即将弃用。 请改用 training_data 和 label_column_name。
- y
- DataFrame 或 ndarray 或 Dataset 或 DatasetDefinition 或 TabularDataset
在试验期间拟合管道时使用的训练标签。 这是模型将预测的值。 此设置即将弃用。 请改用 training_data 和 label_column_name。
- sample_weight
- DataFrame 或 ndarray 或 TabularDataset
运行拟合管道时为每个训练样本指定的权重,每行应该对应于 X 和 Y 数据中的一行。
指定 X
时请指定此参数。
此设置即将弃用。 请改用 training_data 和 weight_column_name。
- X_valid
- DataFrame 或 ndarray 或 Dataset 或 DatasetDefinition 或 TabularDataset
在试验期间拟合管道时使用的验证特征。
如果指定,则还必须指定 y_valid
或 sample_weight_valid
。
此设置即将弃用。 请改用 validation_data 和 label_column_name。
- y_valid
- DataFrame 或 ndarray 或 Dataset 或 DatasetDefinition 或 TabularDataset
在试验期间拟合管道时使用的验证标签。
必须一起指定 X_valid
和 y_valid
。
此设置即将弃用。 请改用 validation_data 和 label_column_name。
- sample_weight_valid
- DataFrame 或 ndarray 或 TabularDataset
运行评分管道时为每个验证样本指定的权重,每行应该对应于 X 和 Y 数据中的一行。
指定 X_valid
时请指定此参数。
此设置即将弃用。 请改用 validation_data 和 weight_column_name。
用于交叉验证的拆分训练数据的索引。 每行都是单独的交叉折叠,在每个交叉折叠内,提供 2 个 numpy 数组,第一个数组包含用于训练数据的样本索引,第二个数组包含用于验证数据的索引。 例如 [[t1, v1], [t2, v2], …],其中 t1 是第一个交叉折叠的训练索引,v1 是第一个交叉折叠的验证索引。 将数据作为单独的“特征数据集”和“标签”列传递时,支持此选项。
若要将现有数据指定为验证数据,请使用 validation_data
。 若要改为让 AutoML 从训练数据中提取验证数据,请指定 n_cross_validations
或 validation_size
。
如果 training_data
中包含交叉验证列,请使用 cv_split_column_names
。
- validation_size
- float
未指定用户验证数据时,要保留用于验证的数据部分。 此值应介于 0.0 和 1.0 之间(不含)。
指定 validation_data
以提供验证数据,否则设置 n_cross_validations
或 validation_size
以从指定的训练数据中提取验证数据。
对于自定义交叉验证折叠,请使用 cv_split_column_names
。
有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
未指定用户验证数据时要执行多少次交叉验证。
指定 validation_data
以提供验证数据,否则设置 n_cross_validations
或 validation_size
以从指定的训练数据中提取验证数据。
对于自定义交叉验证折叠,请使用 cv_split_column_names
。
有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- featurization
- str 或 FeaturizationConfig
'auto' / 'off' / FeaturizationConfig 指示器,指示是否应自动执行特征化步骤,或者是否应使用自定义特征化。 备注:如果输入数据是稀疏的,则无法启用特征化。
自动检测列类型。 基于检测到的下述列类型执行预处理/特征化:
分类:目标编码,一种热编码,删除高基数类别,插补缺失值。
数字:插补缺失值,群集距离,证据权重。
日期/时间:多个特征,例如天、秒、分钟、小时等。
文本:词袋,预先训练的字词嵌入,文本目标编码。
有关更多详细信息,请参阅在 Python 中配置自动化机器学习试验一文。
若要自定义特征化步骤,请提供 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
。
- enforce_time_on_windows
- bool
是否对 Windows 上每次迭代的模型训练强制实施时间限制。 默认值为 True。 如果从 Python 脚本文件 (.py) 运行,请参阅有关在 Windows 上允许资源限制的文档。
- experiment_timeout_hours
- float
在试验结束之前,所有合并的迭代所花费的最大时间量(以小时为单位)。 可以是十进制值,如 0.25,表示 15 分钟。 如果未指定,则默认试验超时为 6 天。 若要指定小于或等于 1 小时的超时,请确保数据集的大小不大于 10,000,000(行数乘以列数),否则会出错。
- experiment_exit_score
- float
试验的目标评分。 达到此评分后,试验将终止。
如果未指定(无条件),则试验将一直运行到主要指标没有进一步变化为止。 有关退出条件的详细信息,请参阅此 >>article
https://docs.microsoft.com/azure/machine-learning/how-to-configure-auto-train#exit-criteria'_。<<
- enable_early_stopping
- bool
如果评分在短期内没有提高,是否启用提前终止。 默认值为 True。
提前停止逻辑:
对于前 20 次迭代(特征点)不提前停止。
提前停止窗口从第 21 次迭代开始,查找early_stopping_n_iters迭代 (当前设置为 10) 。 这意味着可能发生停止的首个迭代是第 31 次迭代。
AutoML 在提前停止后仍计划 2 次集成迭代,这可能会导致分数更高。
如果计算出的最佳分数的绝对值对于过去的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_models
中包含 TensorFlow 模型。
- blacklist_models
- list(str) 或 list(Classification) <xref:for classification task> 或 list(Regression) <xref:for regression task> 或 list(Forecasting) <xref:for forecasting task>
已弃用的参数,请改用 blocked_models。
- model_explainability
- bool
是否在所有 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>
用于搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型,减去 blocked_models
中指定的任何模型或已弃用的 TensorFlow 模型。
SupportedModels 类中描述了每种任务类型支持的模型。
- allowed_models
用于搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型,减去 blocked_models
中指定的任何模型或已弃用的 TensorFlow 模型。
SupportedModels 类中描述了每种任务类型支持的模型。
- whitelist_models
已弃用的参数,请改用 allowed_models。
- enable_onnx_compatible_models
- bool
是启用还是禁用强制执行 ONNX 兼容的模型。 默认值为 False。 有关 Open Neural Network Exchange (ONNX) 和 Azure 机器学习的详细信息,请参阅此文。
- time_column_name
- str
时间列的名称。 预测时需要使用此参数来指定输入数据中用于生成时序并推理其频率的日期/时间列。 此设置即将弃用。 请改用 forecasting_parameters。
- max_horizon
- int
所需的最大预测范围,以时序频率为单位。 默认值为 1。 此设置即将弃用。 请改用 forecasting_parameters。
单位基于训练数据的时间间隔,例如,预测人员应每月、每周预测。当任务类型为 forecasting 时,此参数是必需的。 有关设置预测参数的详细信息,请参阅自动训练时序预测模型。
用于对时序进行分组的列名称。 它可用于创建多个时序。 如果未定义粒度,则假定数据集为一个时序。 此参数与任务类型 forecasting 结合使用。 此设置即将弃用。 请改用 forecasting_parameters。
滞后于目标列的过去周期数。 默认值为 1。 此设置即将弃用。 请改用 forecasting_parameters。
预测时,此参数表示基于数据频率将目标值滞后的行数。 这表示为一个列表或整数。 默认情况下,在独立变量和依赖变量之间的关系不匹配或关联时,应使用滞后。 例如,在尝试预测某产品的需求时,任何月份的需求可能取决于之前 3 个月特定商品的价格。 在此示例中,可将目标(需求)的滞后负 3 个月,以便针对正确的关系训练模型。 有关详细信息,请参阅自动训练时序预测模型。
- target_rolling_window_size
- int
用于创建目标列的滚动窗口平均值的过去周期数。 此设置即将弃用。 请改用 forecasting_parameters。
预测时,此参数表示用于生成预测值的 n 个历史周期,小于等于训练集大小。 如果省略,则 n 为完整训练集大小。 如果训练模型时只想考虑一定量的历史记录,请指定此参数。
- country_or_region
- str
用于生成节假日特征的国家/地区。 这些值应该是 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。 此设置即将弃用。 请改用 forecasting_parameters。
- use_stl
- str
配置时序目标列的 STL 分解。 use_stl 可以取三个值:None(默认值)- 不进行 STL 分解;season - 仅生成季节组件;season_trend - 生成季节和趋势组件。 此设置即将弃用。 请改用 forecasting_parameters。
- seasonality
- int
设置时序季节性。 如果将季节性设置为 -1,则会推理季节性。 如果未设置 use_stl,则不会使用此参数。 此设置即将弃用。 请改用 forecasting_parameters。
- short_series_handling_configuration
- str
定义 AutoML 应如何处理短时序的参数。
可能的值:"auto"(默认)、"pad"、"drop" 和“无”。
- auto 如果没有长时序,将会填充短时序,否则将删除短时序。
- pad 所有短时序都将填充。
- drop 所有短时序都将被删除。
- None 不会修改短时序。 如果设置为“pad”,则表将填充回归量为零的空值,目标为随机值,其平均值等于给定时序 ID 的目标值中值。如果中值多或等于零,最小填充值将剪裁为零:输入:
日期
numeric_value
string
目标
2020-01-01
23
green
55
假设最小值数为 4 的输出:+————+—————+———-+——–+ |日期 |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)。
处理
handling_configuration
生成的处理
生成的handling_configuration
True
auto
True
auto
True
垫
True
auto
True
drop
True
auto
True
无
False
无
False
auto
False
无
False
垫
False
无
False
drop
False
无
False
无
False
无
预测频率。
预测时,此参数表示预测所需的时间段,例如每日、每周、每年等。默认情况下,预测频率为数据集频率。 可以选择将其设置为比数据集频率大,不能比数据集频率小。 我们将聚合数据并生成预测频率的结果。 例如,对于每日数据,可以将频率设置为每日、每周或每月,但不能设置为每小时。 频率必须是 pandas 偏移别名。 有关详细信息,请参阅 pandas 文档:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects
用于聚合时序目标列以符合用户指定频率的函数。 如果设置了 target_aggregation_function,但未设置 freq 参数,则会引发错误。 可能的目标聚合函数包括:sum、max、min 和 mean。
频率
target_aggregation_function
数据正则性修复机制
无(默认)
无(默认)
不应用聚合。如果无法确定有效频率,将引发错误。
某些值
无(默认)
不应用聚合。如果符合给定频率网格的数据点数小于 90%,则将删除这些点,否则将引发错误。
无(默认)
聚合函数
引发有关缺少频率参数的错误。
某些值
聚合函数
使用提供的聚合函数聚合到频率。
- enable_stack_ensemble
- bool
是启用还是禁用 StackEnsemble 迭代。 默认值为 None。 如果设置了 enable_onnx_compatible_models 标志,则会禁用 StackEnsemble 迭代。 同样,对于时序任务,默认将禁用 StackEnsemble 迭代,以避免由于在拟合元学习器时使用小型训练集而导致过度拟合的风险。 有关集成的详细信息,请参阅集成配置。
- training_data
- DataFrame 或 Dataset 或 DatasetDefinition 或 TabularDataset
要在试验中使用的训练数据。
应该包含训练特征和标签列(可以选择性地包含样本权重列)。
如果指定了 training_data
,则还必须指定 label_column_name
参数。
training_data
是在版本 1.0.81 中引入的。
- validation_data
- DataFrame 或 Dataset 或 DatasetDefinition 或 TabularDataset
要在试验中使用的验证数据。
应该包含训练特征和标签列(可以选择性地包含样本权重列)。
如果指定了 validation_data
,则必须指定 training_data
和 label_column_name
参数。
validation_data
是在版本 1.0.81 中引入的。 有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- test_data
- Dataset 或 TabularDataset
使用测试数据集或测试数据拆分的模型测试功能处于预览阶段,随时可能会更改。 要用于测试运行的测试数据,将在模型训练完成后自动启动该测试。 测试运行将使用最佳模型来获取预测结果,并将根据这些预测生成指标。
如果未指定此参数或 test_size
参数,则模型训练完成后将不会自动执行任何测试运行。
测试数据应包含功能和标签列。
如果指定了 test_data
,则还必须指定 label_column_name
参数。
- test_size
- float
使用测试数据集或测试数据拆分的模型测试功能处于预览阶段,随时可能会更改。 为测试运行提供的测试数据的训练数据的一部分,在模型训练完成后将自动启动。 测试运行将使用最佳模型来获取预测结果,并将根据这些预测生成指标。
此值应介于 0.0 和 1.0 之间(不含)。
如果 test_size
同时指定为 validation_size
,则在拆分验证数据之前,将从 training_data
拆分测试数据。
例如,如果 validation_size=0.1
、test_size=0.1
和原始训练数据包含 1000 行,则测试数据将包含 100 行,验证数据将包含 90 行,训练数据将包含 810 行。
对于回归任务,使用随机采样。 对于分类任务,使用分层采样。 预测目前不支持使用训练/测试拆分指定测试数据集。
如果未指定此参数或 test_data
参数,则模型训练完成后将不会自动执行任何测试运行。
标签列的名称。 如果输入数据来自没有列名的 pandas.DataFrame,则可以使用以整数表示的列索引。
此参数适用于 training_data
、validation_data
、test_data
参数。
label_column_name
是在版本 1.0.81 中引入的。
样本权重列的名称。 自动化机器学习支持使用加权列作为输入,这会导致增大或减小数据中行的权重。 如果输入数据来自没有列名的 pandas.DataFrame,则可以使用以整数表示的列索引。
此参数适用于 training_data
和 validation_data
参数。
weight_column_names
是在版本 1.0.81 中引入的。
包含自定义交叉验证拆分的列的名称列表。 每个 CV 拆分列代表一个 CV 拆分,其中每行标记为 1(用于训练)或 0(用于验证)。
此参数适用于自定义交叉验证使用的 training_data
参数。
cv_split_column_names
是在版本 1.6.0 中引入的
使用 cv_split_column_names
或 cv_splits_indices
。
有关详细信息,请参阅在自动化机器学习中配置数据拆分和交叉验证。
- enable_dnn
- bool
在模型选择期间是否包括基于 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 进行预测的示例:
在这些自动化机器学习笔记本中可以找到对所有任务类型使用 AutoMLConfig 的示例。
有关自动化机器学习的背景信息,请参阅以下文章:
使用 Python 配置自动化机器学习试验。 这篇文章提供了有关用于每种任务类型的不同算法和主要指标的信息。
自动训练时序预测模型。 这篇文章提供了有关在预测中使用的构造函数参数和
**kwargs
的信息。
有关用于为自动化机器学习、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]
参数
- use_gpu
用于指示是否正在使用 GPU 计算的布尔值。
返回
{: } 格式的字典。 语言代码遵守 ISO 639-3 标准,具体请参阅 https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈