非參數時間序列 (NPTS) 演算法 - Amazon Forecast

Amazon Forecast 不再提供給新客戶。Amazon Forecast 的現有客戶可以繼續正常使用該服務。了解更多」

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

非參數時間序列 (NPTS) 演算法

Amazon Forecast 非參數時間序列 (NPTS) 演算法是一種可擴展的概率基線預測器。它透過從過去的觀察中抽樣來預測特定時間序列的未來值分佈。預測結果受到觀察值的限制。當時間序列是間歇性 (或稀疏的,包含許多 0) 和突增時,NPTS 會特別有用。例如,對於時間序列有很多低計數的個別項目,預測其需求。Amazon Forecast 提供 NPTS 的變體,它們對於採樣哪些過去的觀察值及採樣方式有所不同。若要使用 NPTS 變體,請選擇超參數設定。

NPTS 的運作方式

與古典預測方法 (例如指數平滑法 (ETS) 和整合移動平均自回歸模型 (ARIMA)) 類似,NPTS 會為每個時間序列個別產生預測。資料集中的時間序列可以有不同的長度。有可用觀察值的時間點稱為訓練範圍,而期望預測的時間點稱為預測範圍。

Amazon Forecast NPTS 預測具有以下變體:NPTS, 季節性 NTTS, 氣候預測器和季節性氣候預測器.

NPTS

在這個變體中,透過對時間序列訓練範圍內的所有觀察值進行採樣來產生預測。不過,這個變體不是從所有觀察中統一抽樣,而是根據與需要預測之目前時階距離多遠,來為每個過去的觀察值分配權重。特別是,它使用的權重會根據過去觀察值的距離呈指數衰減。利用這種方式,來自最近過去的觀察值的採樣機率,遠高於來自遙遠過去的觀察值。這裡假設近期過去比遙遠的過去更能預示未來。您可以使用 exp_kernel_weights 超參數來控制加權的衰減量。

若要在 Amazon Forecast 中使用此 NPTS 變體,請將 use_seasonal_model 超參數設為 False 並接受所有其他預設設定。

季節性 NPTS

季節性 NPTS 與 NPTS 類似,差別在於它不是從所有觀察中抽樣,而是僅使用過去幾季的觀察值。在預設情況下,季節取決於時間序列的精細程度。例如,對於每小時時間序列,若要預測第 t 小時,這個變體會從對應於前幾天的第 t 小時觀察中採樣。與 NPTS 類似的是,前一天第 t 小時的觀察值,會給予比更早幾天第 t 小時觀察值更多的權重。如需如何時間序列的精細程度來判斷季節性的詳細資訊,請參閱季節性特徵

氣候預測器

氣候預測器變體會以均勻機率對所有過去的觀察結果進行採樣。

若要使用氣候預測器,請將 kernel_type 超參數設定為 uniform 並將 use_seasonal_model 超參數設定為 False。對於所有其他超參數,接受預設設定。

季節性氣候預測器

與季節性 NPTS 類似,季節性氣候預測器會對過去幾季的觀察結果進行抽樣,但會以均勻機率來抽樣。

若要使用季節性氣候預測器,請將 kernel_type 超參數設定為 uniform。對於所有其他超參數,請接受所有其他預設設定。

季節性特徵

若要判斷哪些項目對應至季節性 NPTS 和季節性氣候預測器的季節,請使用下表所列的特徵。下表根據精細程度,列出所支援基本時間頻率的衍生特徵。Amazon Forecast 包含這些特徵時間序列,因此您不需要提供。

時間序列的頻率 決定季節性的特徵
分鐘 小時中的分鐘
小時 一天的幾時
週中的日
月中的日
年中的月

使用 Amazon Forecast NPTS 演算法時,請考慮準備資料和獲得最佳結果的以下最佳實務:

  • 由於 NPTS 會為每個時間序列個別產生預測結果,因此在呼叫模型以進行預測時,請提供整個時間序列。此外,也請接受 context_length 超參數的預設值。這會讓演算法使用整個時間序列。

  • 如果您變更 context_length (因為訓練資料太長),請確認它的大小足夠,可涵蓋多個過去季節。例如,對於每日時間序列,這個值必須至少有 365 天 (假設您擁有這麼多數量的資料)。

NPTS 超參數

下表列出您可用於 NPTS 演算法中的超參數。

參數名稱 Description (描述)
context_length 模型用於進行預測的過去時間點數量。在預設情況下,它會使用訓練範圍內的所有時間點。一般而言,這個超參數的值應該很大,也應該涵蓋多個過去的季節。例如,對於每日時間序列,這個值必須至少有 365 天。
有效值

正整數

預設值

訓練時間序列的長度

kernel_type 核心,用來定義對過去觀察值進行採樣的權重。
有效值

exponentialuniform

預設值

exponential

exp_kernel_weights

只有在 kernel_typeexponential 時有效。

核心的擴展參數。如需對在遙遠過去的觀察值所給予權重的更快 (指數) 衰減,請使用大數值。

有效值

正浮點數

預設值

0.01

use_seasonal_model 是否使用季節性變體。
有效值

TrueFalse

預設值

True

use_default_time_features

僅適用於季節性 NPTS季節性氣候預測器變體。

是否使用根據時間序列之精細程度的季節性特徵來判斷季節性。

有效值

TrueFalse

預設值

True