你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ForecastingJob 类
AutoML 预测任务的配置。
初始化新的 AutoML 预测任务。
- 继承
-
azure.ai.ml.entities._job.automl.tabular.automl_tabular.AutoMLTabularForecastingJob
构造函数
ForecastingJob(*, primary_metric: str | None = None, forecasting_settings: ForecastingSettings | None = None, **kwargs)
参数
方法
dump |
将作业内容转储到 YAML 格式的文件中。 |
set_data |
定义数据配置。 |
set_featurization |
定义特征工程配置。 |
set_forecast_settings |
管理预测任务使用的参数。 |
set_limits |
为作业设置限制。 |
set_training |
配置预测训练相关设置的方法。 |
dump
将作业内容转储到 YAML 格式的文件中。
dump(dest: str | PathLike | IO, **kwargs) -> None
参数
要向其写入 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
目标列的列名。
例外
如果 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
数据集中包含的语言 () 的三个字符 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
例外
如果 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
参数
- forecast_horizon
期望的最大预测边际,以时序频率为单位。 默认值为 1。
单位基于训练数据的时间间隔,例如,预测人员应每月、每周预测。当任务类型为 forecasting 时,此参数是必需的。 有关设置预测参数的详细信息,请参阅自动训练时序预测模型。
用于对时序进行分组的列的名称。 它可用于创建多个时序。 如果未定义时序 ID 列名称,或者指定的标识符列未标识数据集中的所有序列,则会自动为数据集创建时序标识符。
- target_lags
滞后于目标列的过去周期数。 默认情况下将关闭滞后。
预测时,此参数表示基于数据频率滞后目标值的行数。 这表示为一个列表或整数。 默认情况下,在独立变量和依赖变量之间的关系不匹配或不关联时,应使用滞后。 例如,在尝试预测某产品的需求时,任何月份的需求可能取决于之前 3 个月特定商品的价格。 在此示例中,可将目标(需求)的滞后负 3 个月,以便针对正确的关系训练模型。 有关详细信息,请参阅自动训练时序预测模型。
请注意自动检测目标滞后和滚动窗口大小。 请参阅滚动窗口部分中的相应注释。 我们使用下一算法来检测最佳目标滞后和滚动窗口大小。
估计回看功能选择的最大滞后时间顺序。 在我们的案例中,它是直至下一个日期频率粒度的周期数,即如果频率为每日,则为一周 (7) ,如果频率是一周,则为一月 (4)。 值乘以 2 是滞后/滚动窗口的最大可能值。 在我们的示例中,我们将分别考虑最大滞后顺序 14 和 8)。
通过添加趋势和残差分量创建去季节性序列。 该值将在下节中使用。
估计 (2) 上数据的 PACF - 部分自动关联函数,并搜索具有显著自动相关性的点,即其绝对值大于 1.96/square_root(最大滞后值),对应于 95% 的重要性。
如果所有点都重要,则我们认为它是强季节性,不会创建回看特征。
从开始扫描 PACF 值,第一个不重要的自动关联之前的值将指定滞后。 如果第一个重要元素(值与自身关联)后跟不重要的元素,则滞后将为 0,我们不会使用回看功能。
用于创建目标列的滚动窗口平均值的过去周期数。
预测时,此参数表示用于生成预测值的 n 个历史周期,<=训练集大小。 如果省略,则 n 为完整训练集大小。 如果训练模型时只想考虑一定量的历史记录,请指定此参数。 如果设置为“auto”,则当 PACF 大于显著性阈值时,滚动窗口估计为最后一个值。 请查看 target_lags 部分了解详情。
用于生成节假日特征的国家/地区。 这些值应该是 ISO 3166 双字母国家/地区代码,例如“US”或“GB”。
- use_stl
配置时序目标列的 STL 分解。 use_stl 可以接受三个值:None(默认值)- 不进行 STL 分解;season - 仅生成季节组件;season_trend - 生成季节和趋势组件。
设置时序季节性为序列频率的整数倍数。 如果将季节性设置为“自动”,将推断出该季节性。 如果设置为 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 折叠到下一个 CV 折叠的 origin_time 之间的周期数。 例如,如果对于每日数据 n_step = 3,则每个折叠的源时间将相隔 3 天。
可用于训练但预测/推理时未知的特征列。 如果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
参数
如果分数在短期内没有提高,是否启用提前终止,默认为“无”。
提前停止逻辑:
对于前 20 次迭代(特征点)不提前停止。
提前停止窗口从第 21 次迭代开始,并查找 early_stopping_n_iters 迭代
(当前设置为 10)。 这意味着可能发生停止的首个迭代是第 31 次迭代。
AutoML 在提前停止后仍计划 2 次集成迭代,这可能会导致分数更高。
如果计算的最佳评分的绝对值与过去相同,则触发提前停止
early_stopping_n_iters 迭代,即,early_stopping_n_iters 迭代的评分没有提高。
试验的目标评分。 达到此评分后,试验将终止。 如果未指定(无条件),则试验将一直运行到主要指标没有进一步变化为止。 有关退出条件的详细信息,请参阅 此文 ,默认为“无”
这是将并行执行的迭代的最大次数。 默认值为 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
。
用于给定训练迭代的最大线程数。 可接受的值:
大于 1 且小于或等于计算目标上的最大核心数。
等于 -1,即,为每个子运行的每次迭代使用所有可能的核心。
等于 1(默认值)。
[实验性]用于分布式训练的最大节点数。
对于预测,每个模型都使用最大 (2 int (max_nodes/max_concurrent_trials) ) 节点进行训练。
对于分类/回归,使用max_nodes节点训练每个模型。
注意 - 此参数为公共预览版,将来可能会更改。
在试验结束之前,所有合并的迭代所花费的最大时间量(以分钟为单位)。 如果未指定,则默认试验超时为 6 天。 若要指定小于或等于 1 小时的超时,请确保数据集的大小不大于 10,000,000 (行次列) 或错误结果,默认值为“无”
例外
如果 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 机器学习的详细信息,请参阅此文。
在模型选择期间是否包括基于 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 迭代的设置,默认为“无”
在 VotingEnsemble 和 StackEnsemble 模型生成期间,将下载以前子运行中的多个拟合模型。 使用大于 300 秒的值配置此参数,如果需要更多时间,则默认为“无”
用于搜索试验的模型名称列表。 如果未指定,则使用任务支持的所有模型减去或 blocked_training_algorithms
已弃用的 TensorFlow 模型中指定的任何模型,默认为“无”
- training_mode
[实验性]要使用的训练模式。 可能的值为:
distributed - 为支持的算法启用分布式训练。
non_distributed - 禁用分布式训练。
auto - 目前,它与 non_distributed 相同。 将来,这种情况可能会更改。
注意:此参数为公共预览版,将来可能会更改。
例外
如果 dest 是文件路径且文件已存在,则引发。
如果 dest 是打开的文件且文件不可写,则引发。
属性
base_path
creation_context
featurization
forecasting_settings
id
inputs
limits
log_files
log_verbosity
获取 AutoML 作业的日志详细程度。
返回
AutoML 作业的日志详细程度
返回类型
outputs
primary_metric
status
作业的状态。
返回的常见值包括“正在运行”、“已完成”和“失败”。 所有可能的值为:
NotStarted - 这是客户端 Run 对象在云提交之前处于的临时状态。
正在启动 - 运行已开始在云中处理。 调用方此时具有运行 ID。
预配 - 正在为给定的作业提交创建按需计算。
准备 - 运行环境正在准备中,处于以下两个阶段之一:
Docker 映像生成
Conda 环境设置
已排队 - 作业在计算目标上排队。 例如,在 BatchAI 中,作业处于排队状态
等待所有请求的节点准备就绪时。
正在运行 - 作业已开始在计算目标上运行。
正在完成 - 用户代码执行已完成,运行处于后处理阶段。
已请求取消 - 已请求取消作业。
已完成 - 运行已成功完成。 这包括用户代码执行和运行
后期处理阶段。
失败 - 运行失败。 通常,运行上的 Error 属性会提供有关原因的详细信息。
已取消 - 遵循取消请求并指示运行现已成功取消。
未响应 - 对于启用了检测信号的运行,最近未发送任何检测信号。
返回
作业的状态。
返回类型
studio_url
task_type
test_data
training
返回预测训练设置。
返回
训练设置。