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。
單位是以定型資料的時間間隔為基礎,例如,預測器應該預測的每月、每週。當工作類型為預測時,需要此參數。 如需設定預測參數的詳細資訊,請參閱 自動定型時間序列預測模型。
用來分組時間序列的資料行名稱。 它可以用來建立多個數列。 如果未定義時間序列識別碼資料行名稱,或指定的識別碼資料行不會識別資料集中的所有數列,則會自動為您的資料集建立時間序列識別碼。
- target_lags
要從目標資料行延遲的過去期間數。 根據預設,會關閉延遲。
預測時,此參數代表根據資料的頻率來延隔目標值的資料列數目。 這會以清單或單一整數表示。 當獨立變數與相依變數之間的關聯性與預設不相符或相互關聯時,應該使用延隔時間。 例如,當嘗試預測產品的需求時,任何月份中需求可能取決於之前 3 個月的特定商品價格。 在此範例中,建議讓目標 (需求) 延隔 3 個月,以供模型以正確的關聯性來定型。 如需詳細資訊,請參閱 自動定型時間序列預測模型。
請注意,自動偵測目標延遲和滾動視窗大小。 請參閱滾動視窗一節中的對應批註。 我們會使用下一個演算法來偵測最佳的目標延遲和滾動視窗大小。
估計回溯功能選取範圍的最大延遲順序。 在我們的案例中,這是直到下一個日期頻率資料細微性為止的期間數,也就是如果 frequency 是每日,則會是一周 (7) ,如果是一周,則會是一個月 (4) 。 該值乘以兩個值是延隔時間/滾動視窗的最大可能值。 在我們的範例中,我們將分別考慮 14 和 8 的最大延遲順序) 。
藉由新增趨勢和剩餘元件,建立取消季節性數列。 這會在下一個步驟中使用。
估計 (2) 資料上的 PACF - 部分自動相互關聯函式,並搜尋點,其中自動相互關聯相當重要,亦即其絕對值為 1.96/square_root (最大延隔值) ,其對應至 95% 的顯著性。
如果所有點都很重要,我們會將其視為強式季節性,而不會建立回溯功能。
我們會從頭掃描 PAC光圈值,並在第一個不重要的自動相互關聯之前,指定延遲。 如果第一個顯著元素 (值與本身相互關聯) 後面接著不重要,則延隔時間會是 0,我們不會使用回溯功能。
過去期間數,用來建立目標資料行的滾動視窗平均值。
預測時,此參數代表用來產生預測值的 n 個歷程記錄週期, < = 定型集大小。 如果省略,則 n 就是完整的定型集大小。 若在將模型定型時只想考慮特定數量的歷程記錄,則請指定此參數。 如果設定為 'auto',則滾動視窗會估計為 PACF 愈多的最後一個值,然後是重要性臨界值。 如需詳細資訊,請參閱target_lags一節。
用來產生假日功能的國家/地區。 這些應該是 ISO 3166 兩個字母的國家/地區代碼,例如 'US' 或 'GB'。
- use_stl
設定時間序列目標資料行的 STL 分解。 use_stl可以接受三個值:無 (預設) - 沒有 stl 分解,'season' - 只會產生季元件和season_trend - 同時產生季和趨勢元件。
將時間序列季節性設定為數列頻率的整數倍數。 如果季節性設定為 'auto',則會推斷它。 如果設定為 None,則會假設時間序列不是季節性,相當於季節性=1。
- short_series_handling_config
參數,定義 AutoML 是否應該處理簡短的時間序列。
可能的值:'auto' (預設) 、'pad'、'drop' 和 None。
- 如果沒有長數列,自動簡短數列將會填補。
否則將會卸載簡短數列。
- 會 填補所有簡短數列。
- 卸 除所有簡短數列。」
- 不會 修改簡短數列。
如果設定為 'pad',資料表將會以零和空值填補回歸輸入項,而目標隨機值平均等於指定時間序列識別碼的目標值中位數。如果中位數大於或等於零,則最小填補值會以零裁剪:輸入:
日期
numeric_value
string
目標
2020-01-01
23
綠色
55
假設值數目最少的輸出為四個:
日期
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
綠色
55
注意: 我們有兩個參數short_series_handling_configuration和舊版short_series_handling。 設定這兩個參數時,我們會將其同步處理,如下表所示 (short_series_handling_configuration 和short_series_handling的簡潔性會分別標示為handling_configuration和處理) 。
處理
handlingconfiguration
resultinghandling
resultinghandlingconfiguration
True
自動
True
自動
對
墊
True
自動
對
drop
True
自動
對
無
False
無
False
自動
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」。
目標資料行值會根據指定的作業進行匯總。 一般而言,總和適用于大部分案例。
資料中的數值預測值資料行會依總和、平均值、最小值和最大值來匯總。 因此,自動化 ML 會產生以彙總函式名稱尾碼的新資料行,並套用選取的匯總作業。
對於類別預測子資料行,資料會依模式匯總,這是視窗中最明顯的類別。
日期預測值資料行會以最小值、最大值和模式匯總。
頻率
target_aggregation_function
資料正規化機制
無 (預設值)
無 (預設值)
未套用匯總。如果 validfrequency 無法讓錯誤引發。
某些值
無 (預設值)
未套用匯總。如果 numberof 資料點與given frequencygrid 不相等,則會移除 90%這些點,否則會引發錯誤。
無 (預設值)
彙總函數
關於missingfrequencyparameter israised 的錯誤。
某些值
彙總函數
使用providedaggregationfunction 匯總 tofrequency。
可在預測/推斷時用於定型但未知的功能資料行。 如果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
參數
如果分數未在短期內改善,是否要啟用提早終止,預設值為 None。
早期停止邏輯:
前 20 個反復專案 (地標) 沒有提早停止。
早期停止視窗會在第 21 個反復專案上啟動,並尋找early_stopping_n_iters反復專案
(目前設定為 10) 。 這表示可以執行停止的第一個反復專案是第 31 個。
AutoML 仍會排程 2 個反復專案 AFTER 早期停止,這可能會導致較高的分數。
如果計算的最佳分數絕對值在過去相同,就會觸發提早停止
early_stopping_n_iters反復專案,也就是說,如果early_stopping_n_iters反復專案的分數沒有改善。
實驗的目標分數。 達到此分數之後,實驗就會終止。 如果未指定 (沒有準則) ,則實驗會執行,直到主要計量沒有進一步的進度為止。 如需結束準則的詳細資訊,請參閱 這篇文章 ,預設值為 None
這是平行執行的反復專案數目上限。 預設值為 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,預設值。
[實驗性]用於分散式定型的節點數目上限。
針對預測,每個模型都會使用 max (2 來定型,int (max_nodes / max_concurrent_trials) ) 節點。
針對分類/回歸,每個模型都會使用max_nodes節點來定型。
注意- 此參數處於公開預覽狀態,未來可能會變更。
在實驗終止之前,所有反覆運算合在一起所花費的時間量上限 (以分鐘為單位)。 如果未指定,則預設實驗逾時為 6 天。 若要指定小於或等於 1 小時的逾時,請確定資料集的大小不大於 10,000,000 個 (資料列時間資料行) 或錯誤結果,預設值為 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 Machine Learning 的詳細資訊,請參閱 這篇文章。
是否要在模型選取期間包含 DNN 型模型。 不過,DNN NLP 工作的預設值為 True,所有其他 AutoML 工作則為 False。
- enable_model_explainability
是否要在所有 AutoML 定型反復專案結束時啟用說明最佳 AutoML 模型。 如需詳細資訊,請參閱 可解譯性:自動化機器學習中的模型說明。 ,預設為 None
- enable_stack_ensemble
是否要啟用/停用 StackEnsemble 反復專案。 如果 已設定enable_onnx_compatible_models 旗標,則會停用 StackEnsemble 反復專案。 同樣地,對於 Timeseries 工作,StackEnsemble 反復專案預設會停用,以避免因為用於調整中繼學習工具的小型定型集而造成過度學習的風險。 如需 ensembles 的詳細資訊,請參閱 Ensemble 組態 ,預設值為 None
- enable_vote_ensemble
是否要啟用/停用 VotingEnsemble 反復專案。 如需 ensembles 的詳細資訊,請參閱 Ensemble 組態 ,預設值為 None
- stack_ensemble_settings
- Optional[StackEnsembleSettings]
StackEnsemble 反復專案的設定,預設為 None
在 VotingEnsemble 和 StackEnsemble 模型產生期間,會下載來自先前子回合的多個適合模型。 若需要更多時間,請以高於 300 秒的值設定此參數,預設值為 None
要搜尋實驗的模型名稱清單。 如果未指定,則會使用工作支援的所有模型減去或已被取代的 TensorFlow 模型中的任何指定 blocked_training_algorithms
,預設值為 None
- 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
工作的狀態。
傳回的常見值包括 「Running」、「Completed」 和 「Failed」。 所有可能的值為:
NotStarted - 這是用戶端 Run 物件在雲端提交之前所在的暫時狀態。
啟動 - 執行已在雲端中開始處理。 呼叫端此時有執行識別碼。
布建 - 針對指定的作業提交建立隨選計算。
準備 - 正在準備執行環境,且處於兩個階段之一:
Docker 映射組建
conda 環境設定
已排入佇列 - 作業會排入計算目標上的佇列。 例如,在 BatchAI 中,作業處於佇列狀態
等候所有要求的節點準備就緒時。
執行 - 作業已開始在計算目標上執行。
完成 - 使用者程式碼執行已完成,且執行處於後續處理階段。
CancelRequested - 已要求取消作業。
已完成 - 執行已順利完成。 這包括使用者程式碼執行和執行
後續處理階段。
失敗 - 執行失敗。 執行上的 Error 屬性通常會提供原因的詳細資料。
已取消 - 遵循取消要求,並指出現在已成功取消執行。
NotResponding - 針對已啟用活動訊號的執行,最近不會傳送活動訊號。
傳回
作業的狀態。
傳回類型
studio_url
task_type
test_data
training
傳回預測訓練設定。
傳回
訓練設定。