你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

ForecastingJob 类

AutoML 预测任务的配置。

初始化新的 AutoML 预测任务。

继承
azure.ai.ml.entities._job.automl.tabular.automl_tabular.AutoMLTabular
ForecastingJob

构造函数

ForecastingJob(*, primary_metric: str | None = None, forecasting_settings: ForecastingSettings | None = None, **kwargs)

参数

primary_metric
Optional[str]
必需

用于模型选择的主要指标。

forecasting_settings
Optional[ForecastingSettings]
必需

预测任务的设置。

kwargs
Dict[str, Any]
必需

特定于作业的参数

方法

dump

将作业内容转储到 YAML 格式的文件中。

set_data

定义数据配置。

set_featurization

定义特征工程配置。

set_forecast_settings

管理预测任务使用的参数。

set_limits

为作业设置限制。

set_training

配置预测训练相关设置的方法。

dump

将作业内容转储到 YAML 格式的文件中。

dump(dest: str | PathLike | IO, **kwargs) -> None

参数

dest
Union[<xref:PathLike>, str, IO[AnyStr]]
必需

要向其写入 YAML 内容的本地路径或文件流。 如果 dest 是文件路径,则将创建一个新文件。 如果 dest 是打开的文件,则将直接写入该文件。

kwargs
dict

要传递给 YAML 序列化程序的其他参数。

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

set_data

定义数据配置。

set_data(*, training_data: Input, target_column_name: str, weight_column_name: str | None = None, validation_data: Input | None = None, validation_data_size: float | None = None, n_cross_validations: str | int | None = None, cv_split_column_names: List[str] | None = None, test_data: Input | None = None, test_data_size: float | None = None) -> None

参数

training_data
Input

训练数据。

target_column_name
str

目标列的列名。

weight_column_name
Optional[str]

权重列名称,默认为 None

validation_data
Optional[Input]

验证数据,默认为 None

validation_data_size
Optional[float]

验证数据大小,默认为 None

n_cross_validations
Optional[Union[str, int]]

n_cross_validations,默认为 None

cv_split_column_names
Optional[List[str]]

cv_split_column_names,默认为 None

test_data
Optional[Input]

测试数据,默认为 None

test_data_size
Optional[float]

测试数据大小,默认为 None

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

set_featurization

定义特征工程配置。

set_featurization(*, blocked_transformers: List[BlockedTransformers | str] | None = None, column_name_and_types: Dict[str, str] | None = None, dataset_language: str | None = None, transformer_params: Dict[str, List[ColumnTransformer]] | None = None, mode: str | None = None, enable_dnn_featurization: bool | None = None) -> None

参数

blocked_transformers
Optional[List[Union[BlockedTransformers, str]]]

特征化期间要阻止的转换器名称列表,默认为 None

column_name_and_types
Optional[Dict[str, str]]

用于更新列用途的列名称和特征类型的字典,默认为 None

dataset_language
Optional[str]

数据集中包含的语言 () 的三个字符 ISO 639-3 代码。 仅当使用启用了 GPU 的计算时,才支持英语以外的语言。 如果数据集包含多种语言,则应使用language_code“mul”。 若要查找不同语言的 ISO 639-3 代码,请参阅 https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes,默认为 None

transformer_params
Optional[Dict[str, List[ColumnTransformer]]]

转换器字典和相应的自定义参数 ,默认为 None

mode
Optional[str]

“off”、“auto”,默认为“auto”,默认为 None

enable_dnn_featurization
Optional[bool]

是否包括基于 DNN 的特征工程方法,默认为 None

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

set_forecast_settings

管理预测任务使用的参数。

set_forecast_settings(*, time_column_name: str | None = None, forecast_horizon: str | int | None = None, time_series_id_column_names: str | List[str] | None = None, target_lags: str | int | List[int] | None = None, feature_lags: str | None = None, target_rolling_window_size: str | int | None = None, country_or_region_for_holidays: str | None = None, use_stl: str | None = None, seasonality: str | int | None = None, short_series_handling_config: str | None = None, frequency: str | None = None, target_aggregate_function: str | None = None, cv_step_size: int | None = None, features_unknown_at_forecast_time: str | List[str] | None = None) -> None

参数

time_column_name
Optional[str]

时间列的名称。 在预测时,需要使用此参数来指定输入数据中用于生成时序并推理其频率的日期/时间列。

forecast_horizon

期望的最大预测边际,以时序频率为单位。 默认值为 1。

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

time_series_id_column_names
Optional[Union[str, List[str]]]

用于对时序进行分组的列的名称。 它可用于创建多个时序。 如果未定义时序 ID 列名称,或者指定的标识符列未标识数据集中的所有序列,则会自动为数据集创建时序标识符。

target_lags

滞后于目标列的过去周期数。 默认情况下将关闭滞后。

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

请注意自动检测目标滞后和滚动窗口大小。 请参阅滚动窗口部分中的相应注释。 我们使用下一算法来检测最佳目标滞后和滚动窗口大小。

  1. 估计回看功能选择的最大滞后时间顺序。 在我们的案例中,它是直至下一个日期频率粒度的周期数,即如果频率为每日,则为一周 (7) ,如果频率是一周,则为一月 (4)。 值乘以 2 是滞后/滚动窗口的最大可能值。 在我们的示例中,我们将分别考虑最大滞后顺序 14 和 8)。

  2. 通过添加趋势和残差分量创建去季节性序列。 该值将在下节中使用。

  3. 估计 (2) 上数据的 PACF - 部分自动关联函数,并搜索具有显著自动相关性的点,即其绝对值大于 1.96/square_root(最大滞后值),对应于 95% 的重要性。

  4. 如果所有点都重要,则我们认为它是强季节性,不会创建回看特征。

  5. 从开始扫描 PACF 值,第一个不重要的自动关联之前的值将指定滞后。 如果第一个重要元素(值与自身关联)后跟不重要的元素,则滞后将为 0,我们不会使用回看功能。

feature_lags
Optional[str]

用于为带有“auto”或 None 的数字特征生成滞后的标志。

target_rolling_window_size
Optional[Union[str, int]]

用于创建目标列的滚动窗口平均值的过去周期数。

预测时,此参数表示用于生成预测值的 n 个历史周期,<=训练集大小。 如果省略,则 n 为完整训练集大小。 如果训练模型时只想考虑一定量的历史记录,请指定此参数。 如果设置为“auto”,则当 PACF 大于显著性阈值时,滚动窗口估计为最后一个值。 请查看 target_lags 部分了解详情。

country_or_region_for_holidays
Optional[str]

用于生成节假日特征的国家/地区。 这些值应该是 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。

use_stl

配置时序目标列的 STL 分解。 use_stl 可以接受三个值:None(默认值)- 不进行 STL 分解;season - 仅生成季节组件;season_trend - 生成季节和趋势组件。

seasonality
Optional[Union[int, str]

设置时序季节性为序列频率的整数倍数。 如果将季节性设置为“自动”,将推断出该季节性。 如果设置为 None,则假定时序为非季节性,这等效于季节性=1。

short_series_handling_config

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

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

  • 如果没有长序列,将填充自动短序列,

否则,将删除短序列。

  • pad 所有短时序都将填充。
  • drop 所有短时序都将被删除。
  • None 不会修改短时序。

如果设置为“pad”,则表将填充回归量为零的空值,目标为随机值,其平均值等于给定时序 ID 的目标值中值。如果中值多或等于零,最小填充值将剪裁为零:输入:

Date

numeric_value

string

目标

2020-01-01

23

green

55

输出假设最小值为 4:

Date

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)。

处理

handlingconfiguration

resultinghandling

resultinghandlingconfiguration

True

auto

True

auto

True

True

auto

True

drop

True

auto

True

False

False

auto

False

False

False

False

drop

False

False

False

frequency

预测频率。

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

target_aggregate_function

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

  • 目标列值将基于指定的运算进行聚合。 通常,sum 适用于大多数方案。

  • 数据中的数值预测器列会按总和、平均值、最小值和最大值进行聚合。 因此,自动 ML 会生成以聚合函数名称为后缀的新列,并应用所选的聚合运算。

  • 对于分类预测器列,数据会按模式(窗口中最醒目的类别)进行聚合。

  • 日期预测器列会按最小值、最大值和模式进行聚合。

频率

target_aggregation_function

数据正则固定机制

无(默认)

无(默认)

未应用聚合。如果 validfrequency 无法确定,则会引发错误。

某些值

无(默认)

未应用聚合。如果符合 togiven frequencygrid 的数据点数为无,则 90% 的数据点将被删除,否则将引发错误。

无(默认)

聚合函数

有关missingfrequency参数的错误已启动。

某些值

聚合函数

使用providedaggregationfunction 聚合到频率。

cv_step_size
Optional[int]

从一个 CV 折叠到下一个 CV 折叠的 origin_time 之间的周期数。 例如,如果对于每日数据 n_step = 3,则每个折叠的源时间将相隔 3 天。

features_unknown_at_forecast_time
Optional[Union[str, List[str]]]

可用于训练但预测/推理时未知的特征列。 如果features_unknown_at_forecast_time设置为空列表,则假定数据集中的所有特征列在推理时都是已知的。 如果未设置此参数,则不会启用对未来功能的支持。

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

set_limits

为作业设置限制。

set_limits(*, enable_early_termination: bool | None = None, exit_score: float | None = None, max_concurrent_trials: int | None = None, max_cores_per_trial: int | None = None, max_nodes: int | None = None, max_trials: int | None = None, timeout_minutes: int | None = None, trial_timeout_minutes: int | None = None) -> None

参数

enable_early_termination
Optional[bool]

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

提前停止逻辑:

  • 对于前 20 次迭代(特征点)不提前停止。

  • 提前停止窗口从第 21 次迭代开始,并查找 early_stopping_n_iters 迭代

    (当前设置为 10)。 这意味着可能发生停止的首个迭代是第 31 次迭代。

  • AutoML 在提前停止后仍计划 2 次集成迭代,这可能会导致分数更高。

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

    early_stopping_n_iters 迭代,即,early_stopping_n_iters 迭代的评分没有提高。

exit_score
Optional[float]

试验的目标评分。 达到此评分后,试验将终止。 如果未指定(无条件),则试验将一直运行到主要指标没有进一步变化为止。 有关退出条件的详细信息,请参阅 此文 ,默认为“无”

max_concurrent_trials
Optional[int]

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

  • AmlCompute 群集支持每个节点运行一次迭代。

对于在单个 AmlCompute 群集上并行执行的多个 AutoML 试验父运行,所有试验的 max_concurrent_trials 值之和应小于或等于最大节点数。 否则,运行将排队到节点可用为止。

  • DSVM 支持为每个节点执行多次迭代。 max_concurrent_trials 应该

小于或等于 DSVM 上的核心数。 对于在单个 DSVM 上并行运行的多个试验,所有试验的 max_concurrent_trials 值之和应小于或等于最大节点数。

  • Databricks - max_concurrent_trials 应小于或等于 的数量

Databricks 上的辅助角色节点。

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

max_cores_per_trial
Optional[int]

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

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

  • 等于 -1,即,为每个子运行的每次迭代使用所有可能的核心。

  • 等于 1(默认值)。

max_nodes
Optional[int]

[实验性]用于分布式训练的最大节点数。

  • 对于预测,每个模型都使用最大 (2 int (max_nodes/max_concurrent_trials) ) 节点进行训练。

  • 对于分类/回归,使用max_nodes节点训练每个模型。

注意 - 此参数为公共预览版,将来可能会更改。

max_trials
Optional[int]

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

timeout_minutes
Optional[int]

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

trial_timeout_minutes
Optional[int]

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

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

set_training

配置预测训练相关设置的方法。

set_training(*, enable_onnx_compatible_models: bool | None = None, enable_dnn_training: bool | None = None, enable_model_explainability: bool | None = None, enable_stack_ensemble: bool | None = None, enable_vote_ensemble: bool | None = None, stack_ensemble_settings: StackEnsembleSettings | None = None, ensemble_model_download_timeout: int | None = None, allowed_training_algorithms: List[str] | None = None, blocked_training_algorithms: List[str] | None = None, training_mode: str | TrainingMode | None = None) -> None

参数

enable_onnx_compatible_models

是启用还是禁用强制执行 ONNX 兼容的模型。 默认值为 False。 有关 Open Neural Network Exchange (ONNX) 和 Azure 机器学习的详细信息,请参阅此文

enable_dnn_training
Optional[bool]

在模型选择期间是否包括基于 DNN 的模型。 不过,对于 DNN NLP 任务,默认值为 True,对于所有其他 AutoML 任务,默认值为 False。

enable_model_explainability

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

enable_stack_ensemble

是启用还是禁用 StackEnsemble 迭代。 如果设置了 enable_onnx_compatible_models 标志,则会禁用 StackEnsemble 迭代。 同样,对于时序任务,默认将禁用 StackEnsemble 迭代,以避免由于在拟合元学习器时使用小型训练集而导致过度拟合的风险。 有关 ensembles 的详细信息,请参阅 Ensemble 配置 ,默认为 None

enable_vote_ensemble

是启用还是禁用 VotingEnsemble 迭代。 有关 ensembles 的详细信息,请参阅 Ensemble 配置 ,默认为 None

stack_ensemble_settings
Optional[StackEnsembleSettings]

StackEnsemble 迭代的设置,默认为“无”

ensemble_model_download_timeout
Optional[int]

在 VotingEnsemble 和 StackEnsemble 模型生成期间,将下载以前子运行中的多个拟合模型。 使用大于 300 秒的值配置此参数,如果需要更多时间,则默认为“无”

allowed_training_algorithms
Optional[List[str]]

用于搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型减去或 blocked_training_algorithms 已弃用的 TensorFlow 模型中指定的任何模型,默认为“无”

blocked_training_algorithms
Optional[List[str]]

试验要忽略的算法列表,默认为“无”

training_mode

[实验性]要使用的训练模式。 可能的值为:

  • distributed - 为支持的算法启用分布式训练。

  • non_distributed - 禁用分布式训练。

  • auto - 目前,它与 non_distributed 相同。 将来,这种情况可能会更改。

注意:此参数为公共预览版,将来可能会更改。

例外

如果 dest 是文件路径且文件已存在,则引发。

如果 dest 是打开的文件且文件不可写,则引发。

属性

base_path

资源的基路径。

返回

资源的基路径。

返回类型

str

creation_context

资源的创建上下文。

返回

资源的创建元数据。

返回类型

featurization

获取 AutoML 作业的表格特征化设置。

返回

AutoML 作业的表格特征化设置

返回类型

forecasting_settings

返回预测设置。

返回

预测设置。

返回类型

id

资源 ID。

返回

资源的全局 ID,Azure 资源管理器 (ARM) ID。

返回类型

inputs

limits

获取 AutoML 作业的表格限制。

返回

AutoML 作业的表格限制

返回类型

log_files

作业输出文件。

返回

日志名称和 URL 的字典。

返回类型

log_verbosity

获取 AutoML 作业的日志详细程度。

返回

AutoML 作业的日志详细程度

返回类型

<xref:LogVerbosity>

outputs

primary_metric

返回用于模型选择的主要指标。

返回

模型选择的主要指标。

返回类型

status

作业的状态。

返回的常见值包括“正在运行”、“已完成”和“失败”。 所有可能的值为:

  • NotStarted - 这是客户端 Run 对象在云提交之前处于的临时状态。

  • 正在启动 - 运行已开始在云中处理。 调用方此时具有运行 ID。

  • 预配 - 正在为给定的作业提交创建按需计算。

  • 准备 - 运行环境正在准备中,处于以下两个阶段之一:

    • Docker 映像生成

    • Conda 环境设置

  • 已排队 - 作业在计算目标上排队。 例如,在 BatchAI 中,作业处于排队状态

    等待所有请求的节点准备就绪时。

  • 正在运行 - 作业已开始在计算目标上运行。

  • 正在完成 - 用户代码执行已完成,运行处于后处理阶段。

  • 已请求取消 - 已请求取消作业。

  • 已完成 - 运行已成功完成。 这包括用户代码执行和运行

    后期处理阶段。

  • 失败 - 运行失败。 通常,运行上的 Error 属性会提供有关原因的详细信息。

  • 已取消 - 遵循取消请求并指示运行现已成功取消。

  • 未响应 - 对于启用了检测信号的运行,最近未发送任何检测信号。

返回

作业的状态。

返回类型

studio_url

Azure ML Studio 终结点。

返回

作业详细信息页的 URL。

返回类型

task_type

获取任务类型。

返回

要运行的任务的类型。 可能的值包括:“classification”、“regression”、“forecasting”。

返回类型

str

test_data

获取测试数据。

返回

测试数据输入

返回类型

training

返回预测训练设置。

返回

训练设置。

返回类型

<xref:azure.ai.ml.automl.ForecastingTrainingSettings>

training_data

获取训练数据。

返回

训练数据输入

返回类型

type

作业的类型。

返回

作业的类型。

返回类型

validation_data

获取验证数据。

返回

验证数据输入

返回类型