ForecastingParameters 類別
管理預測工作所使用的參數。
- 繼承
-
builtins.objectForecastingParameters
建構函式
ForecastingParameters(time_column_name: str | None = None, forecast_horizon: str | int = 1, time_series_id_column_names: str | List[str] | None = None, group_column_names: str | List[str] | None = None, target_lags: List[int] | int | str | None = None, feature_lags: str | None = None, target_rolling_window_size: str | int | None = None, holiday_country: str | None = None, seasonality: str | int | None = 'auto', country_or_region_for_holidays: str | None = None, use_stl: str | None = None, short_series_handling: bool = True, short_series_handling_configuration: str | None = 'auto', freq: str | None = None, target_aggregation_function: str | None = None, cv_step_size: str | int | None = 'auto', features_unknown_at_forecast_time: str | List[str] | None = None, validate_parameters: bool = True, _enable_future_regressors: bool = False, **kwargs: Any)
參數
所需的最大預測範圍,以時間序列頻率單位為單位。 預設值為 1。
單位是以定型資料的時間間隔為基礎,例如,預測器應該預測的每月、每週。當工作類型為預測時,需要此參數。 如需設定預測參數的詳細資訊,請參閱 自動定型時間序列預測模型。
用來分組時間範圍的資料行名稱。 它可以用來建立多個數列。 如果未定義時間序列識別碼資料行名稱,或指定的識別碼資料行不會識別資料集中的所有數列,則會自動為您的資料集建立時間序列識別碼。
要從目標資料行延遲的過去期間數。 根據預設,會關閉延遲。
預測時,此參數代表根據資料的頻率來延隔目標值的資料列數目。 這會以清單或單一整數表示。 當獨立變數與相依變數之間的關聯性與預設不相符或相互關聯時,應該使用延隔時間。 例如,當嘗試預測產品的需求時,任何月份中需求可能取決於之前 3 個月的特定商品價格。 在此範例中,建議讓目標 (需求) 延隔 3 個月,以供模型以正確的關聯性來定型。 如需詳細資訊,請參閱 自動定型時間序列預測模型。
請注意,自動偵測目標延遲和滾動視窗大小。 請參閱滾動視窗一節中的對應批註。 我們會使用下一個演算法來偵測最佳的目標延遲和滾動視窗大小。
估計回溯功能選取範圍的最大延遲順序。 在我們的案例中,這是直到下一個日期頻率資料細微性為止的期間數,也就是如果 frequency 是每日,則會是一周 (7) ,如果是一周,則會是一個月 (4) 。 該值乘以兩個值是延隔時間/滾動視窗的最大可能值。 在我們的範例中,我們將分別考慮 14 和 8 的最大延遲順序) 。
藉由新增趨勢和剩餘元件,建立取消季節性數列。 這會在下一個步驟中使用。
估計 (2) 資料上的 PACF - 部分自動相互關聯函式,並搜尋點,其中自動相互關聯相當重要,亦即其絕對值為 1.96/square_root (最大延隔值) ,其對應至 95% 的顯著性。
如果所有點都很重要,我們會將其視為強式季節性,而不會建立回溯功能。
我們會從頭掃描 PAC光圈值,並在第一個不重要的自動相互關聯之前,指定延遲。 如果第一個顯著元素 (值與本身相互關聯) 後面接著不重要,則延隔時間會是 0,我們不會使用回溯功能。
過去期間數,用來建立目標資料行的滾動視窗平均值。
預測時,此參數代表用來產生預測值的 n 個歷程記錄週期, < = 定型集大小。 如果省略,則 n 就是完整的定型集大小。 若在將模型定型時只想考慮特定數量的歷程記錄,則請指定此參數。 如果設定為 'auto',則滾動視窗會估計為 PACF 愈多的最後一個值,然後是重要性臨界值。 如需詳細資訊,請參閱target_lags一節。
將時間序列季節性設定為數列頻率的整數倍數。 如果季節性設定為 'auto',則會推斷它。 如果設定為 None,則會假設時間序列不是季節性,相當於季節性=1。
用來產生假日功能的國家/地區。 這些應該是 ISO 3166 兩個字母的國家/地區代碼,例如 'US' 或 'GB'。
設定時間序列目標資料行的 STL 分解。 use_stl可以接受三個值:無 (預設) - 沒有 stl 分解,'season' - 只會產生季元件和season_trend - 同時產生季和趨勢元件。
參數,定義 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和處理) 。
處理
handling_configuration
產生的處理
產生的handling_configuration
True
自動
True
自動
對
墊
True
自動
對
drop
True
自動
對
無
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」。
目標資料行值會根據指定的作業進行匯總。 一般而言,總和適用于大部分的案例。
資料中的數值預測值資料行會依總和、平均值、最小值和最大值來匯總。 因此,自動化 ML 會產生尾碼為匯總函數名稱的新資料行,並套用選取的匯總作業。
針對類別預測值資料行,資料會依模式匯總,這是視窗中最顯著的類別。
日期預測值資料行會依最小值、最大值和模式進行匯總。
頻率
target_aggregation_function
資料定期修正機制
無 (預設值)
無 (預設值)
不會套用匯總。如果有效頻率無法確認,就會引發錯誤。
某些值
無 (預設值)
不會套用匯總。如果符合指定頻率方格的資料點數目較少,則會移除 90%這些點,否則會引發錯誤。
無 (預設值)
彙總函式
引發遺漏頻率參數的錯誤。
某些值
彙總函式
使用提供的匯總函數匯總至頻率。
一個 CV 折迭origin_time與下一個折迭之間的期間數。 例如,如果 每日資料n_step = 3,則每個折迭的原點時間會相隔三天。
- features_unknown_at_forecast_time
- _enable_future_regressors
方法
from_parameters_dict |
從聽寫建構 ForecastingParameters 類別。 |
validate_parameters |
驗證 ForecastingParameters 類別中的參數。 |
from_parameters_dict
從聽寫建構 ForecastingParameters 類別。
static from_parameters_dict(parameter_dict: Dict[str, Any], validate_params: bool, show_deprecate_warnings: bool | None = True) -> ForecastingParameters
參數
- parameter_dict
聽寫包含所有預測參數。
- validate_params
是否驗證輸入參數。
- show_deprecate_warnings
切換以顯示已被取代的參數警告。
validate_parameters
驗證 ForecastingParameters 類別中的參數。
validate_parameters()
屬性
country_or_region_for_holidays
用來產生假日功能的國家/地區。 這些應該是 ISO 3166 兩個字母的國家/地區代碼,例如 'US' 或 'GB'。
cv_step_size
一個 CV 折迭origin_time與下一個折迭之間的期間數。 例如,如果 每日資料n_step = 3,則每個折迭的原點時間會相隔三天。
drop_column_names
要針對預測工作卸載的資料行名稱。
dropna
在時間範圍資料轉換器中設定 dropna。
feature_lags
產生數值特徵延遲的旗標。
features_unknown_at_forecast_time
資料行名稱 (可用於定型但預測/推斷時間未知的功能) 。 如果未定義此專案,則會假設預測時間已知所有功能資料行。
forecast_horizon
所需的最大預測範圍,以時間序列頻率單位為單位。 預設值為 1。 單位是以定型資料的時間間隔為基礎,例如,預測器應該預測的每月、每週。
formatted_drop_column_names
要針對預測工作捨棄的資料行格式名稱。
formatted_group_column_names
formatted_target_lags
要從目標資料行延隔的已格式化期間數。
formatted_time_series_id_column_names
用來分組時間範圍的資料行名稱。 它可以用來建立多個數列。 如果未定義time_series_id_column_names,資料集會假設為一個時間序列。
formatted_unknown_features
資料行名稱 (可用於定型但預測/推斷時間未知的功能) 。 如果未定義此專案,則會假設預測時間已知所有功能資料行。 僅在 dnn/tcn 中支援。 當使用者未指定任何專案時,不會在 dnn 中啟用未來的功能。 不過,如果他們提供空白清單,則會啟用未來的功能,而且所有功能資料行都會在預測時間假設為已知。
freq
資料集的頻率。
group_column_names
holiday_country
用來產生假日功能的國家/地區。 這些應該是 ISO 3166 兩個字母的國家/地區代碼,例如 'US' 或 'GB'。
overwrite_columns
在時間範圍資料轉換程式中設定overwrite_columns。
seasonality
時間序列季節性是數列頻率的整數倍數。
short_series_handling_configuration
如果應該填補短粒紋,則傳回 。
target_aggregation_function
傳回目標匯總函式。
target_lags
要從目標資料行延遲的過去期間數。
target_rolling_window_size
time_column_name
時間資料行的名稱。 當預測指定用於建置時間序列並推斷其頻率的輸入資料中的 datetime 資料行時,需要此參數。
time_series_id_column_names
用來分組時間範圍的資料行名稱。 它可以用來建立多個數列。 如果未定義time_series_id_column_names,資料集會假設為一個時間序列。
transform_dictionary
在時間範圍資料轉換器中設定transform_dictionary。
use_stl
設定時間序列目標資料行的 STL 分解。 use_stl可以接受三個值:無 (預設) - 沒有 stl 分解,'season' - 只會產生季元件和season_trend - 同時產生季和趨勢元件。
DEFAULT_TIMESERIES_VALUE
DEFAULT_TIMESERIES_VALUE = {'_enable_future_regressors': False, 'cv_step_size': 'auto', 'feature_lags': None, 'features_unknown_at_forecast_time': None, 'forecast_horizon': 1, 'freq': None, 'max_horizon': 1, 'seasonality': 'auto', 'short_series_handling': True, 'short_series_handling_configuration': 'auto', 'target_aggregation_function': None, 'target_lags': None, 'target_rolling_window_size': None, 'use_stl': None}
DEPRECATED_DICT
DEPRECATED_DICT = {'country': 'country_or_region_for_holidays', 'country_or_region': 'country_or_region_for_holidays', 'grain_column_names': 'time_series_id_column_names', 'holiday_country': 'country_or_region_for_holidays', 'max_horizon': 'forecast_horizon'}
EMPTY_TIME_COLUMN_NAME
EMPTY_TIME_COLUMN_NAME = '_EMPTY_TIME_COLUMN_NAME'
MAX_LAG_LENGTH
MAX_LAG_LENGTH = 2000
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應