跳到主要內容 跳至補充內容

使用多變量時間序列預測

透過Qlik Predict,您可以訓練機器學習模型來預測特定時間的指標。模型使用基於神經網路的方法,學習並預測涉及特定時間關聯、分組目標資料、歷史功能,特性和已知未來變數的複雜模式。若要建立時間序列預測,請準備訓練資料集,在時間序列實驗中使用它,部署模型,然後建立可用於產生預測的應用資料集。

時間序列問題的組成部分

透過時間序列預測,目標是預測未來特定日期的目標值。例如,您可能想要預測下一週、月或季的銷售額。

在開發您的時間序列問題時,請定義下列元件:

  • 目標和群組

  • 日期索引

  • 預測範圍

  • 共變數

資訊備註此框架描述如何為時間序列預測問題定義機器學習問題。若要定義分類和迴歸問題的機器學習問題,請參閱 定義機器學習問題

Qlik Predict 中概述時間序列預測問題元件的簡化圖示。

目標

與其他實驗類型一樣,目標是您想要模型預測未來值的欄位。對於時間序列實驗,目標需要包含數值資料—例如,銷售額或庫存。

如果您在時間序列預測中使用群組,模型將在預測視窗中,針對每個群組的每個時間步長預測一個目標值。如果您不使用群組,您訓練的模型將在預測視窗中,針對每個時間步長預測一個目標值。

日期索引

日期索引會追蹤在連續的時間間隔 (時間步長) 內的時間序列指標。您需要在早期階段決定時間步長:您需要多久預測一次未來值?

具體來說,日期索引是一個欄位,出現在您的訓練和應用資料集中,用於時間序列問題。日期索引決定了這兩個應用資料集的結構—每一列代表時間上的一個步驟(或者,對於群組,每個唯一群組在時間上的一個步驟)。

當您在時間序列實驗中新增訓練資料集時,可能的日期索引欄位會自動識別並以洞察的形式在欄位層級呈現給您。您可以從結構描述檢視中的可能的日期索引洞察來識別它們。

群組

群組是包含類別資訊的功能,您希望為其單獨產生預測。群組的經典範例包括商店編號和產品,可用於組織銷售額等目標的資料。透過選取商店編號和產品類型作為群組,您的時間序列模型將針對這些欄位中的每個個別值提供預測。例如,若以銷售額為目標,如果您有三個商店編號 — 1、2 和 3 — 以及兩種產品類型 — 雜貨和農產品 — 您的模型將針對這些值的每個獨特組合產生銷售額預測。

如果您有資料並需要依類別進行個別預測,您應該將群組納入您的時間序列問題中。群組的另一個優點是,模型可以全域學習,更好地理解您定義的不同分組之間存在的模式。

您可以為每個實驗版本設定要使用的群組。如果您未指定群組,但訓練資料集中已識別群組,則訓練將使用群組。

群組是透過日期索引欄中的複製值來識別的,例如,對於 2025 年 1 月 14 日的日期,您有兩筆記錄:一筆用於商店 A,另一筆用於商店 B。

時間序列實驗中的每個群組 — 包括單獨的目標 — 都被視為資料集中的獨立時間序列。請參閱 什麼是時間序列?

預測範圍

預測範圍指定您想要預測未來多遠。預測範圍由預測視窗(您需要預測的時間步數)和預測間隔(歷史資料之後您不需要預測的選用時間步數)組成。

您在設定實驗版本時設定預測視窗和間隔大小。這些值在模型訓練期間以及從部署為 ML 部署的模型產生預測時都會使用。

預測視窗是您想要預測未來時間步數。例如,如果您的時間步長為一天,並且您想要預測未來兩週的銷售額,您會將預測窗口設定為 14。

預測間隔是未來您不需要預測的一段時間。設定預測間隔是可選的,因為您可能需要也可能不需要。預測間隔開始於您所提供的已記錄歷史訓練資料的結尾。預測窗口開始於預測間隔結束的地方。

例如,您可能正在尋求預測未來銷售額,但您只對輸入資料結束後一週以後的未來銷售額感興趣。在此情況下,如果時間步長為天,您可以將預測間隔大小設定為七個時間步長。

您選定的預測視窗,以及您擁有的訓練資料量,限制了您可以預測的未來時間長度。如需詳細資訊,請參閱 最大預測視窗

共變數

在時間序列問題中,功能,特性通常稱為共變數。類似於其他機器學習問題,共變數是您懷疑會影響目標結果的其他變數。每個共變數在您的訓練資料集中都表示為單一欄位。

在時間序列預測中,共變數有幾種類型,它們之間有一些重要的區別:

  • 靜態共變數:在時間序列過程中不會變化的欄位。靜態共變數適用於使用群組的時間序列實驗。例如,假設您有產品和商店編號的群組,並且有一個預設折扣功能。如果商店 1 中的產品 A 有 10% 的預設折扣,而商店 2 中的產品 B 有 20% 的預設折扣,那麼預設折扣將是一個靜態共變數。也就是說,它不會在其所屬群組的資料中有所變化。

    靜態共變數會從您在實驗中包含的歷史功能中自動偵測。您不需要指出哪些功能是靜態共變數。

  • 過去共變數:僅在歷史資料中可用,且在此資料中有所不同的時間相關變數。過去共變數會從您在實驗中包含的歷史功能自動偵測。您不需要明確指出哪些功能是過去共變數。

  • 未來共變數:未來共變數,也稱為未來功能,是您將在預測範圍內知道其未來值的時間相關變數。在訓練中使用未來共變數時,您需要在訓練組態中將其指出為未來功能。

未來特徵

透過未來特性,您可以向模型提供關於您已知或可合理預期的未來資訊的額外資料。特別是,您可以存取此特性在您選定的預測範圍內的未來值。定義未來特性時,您需要提供歷史資料以及未來資料。

例如,對於預測可能受商店未來折扣影響的指標的模型,您可以納入歷史觀察到的折扣,以及預測視窗內未來時間段的折扣。未來特性的其他範例可能包括天氣或日曆資訊。

其他重要概念

本區段概述了與您的時間序列問題相關,但您不會直接在實驗或機器學習部署中設定的概念。這些是您的資料所定義的屬性,或由其他您為模型設定的屬性所定義。

時間步驟

時間步驟由您的訓練資料集定義,對於訓練和預測都很重要。

在您的訓練資料集中,時間步長是記錄日期索引中資料的間隔。例如,時間步長可以是每日、每小時、每分鐘或每秒。

務必了解訓練資料中使用的時間步長。您定義的其他實驗參數,例如預測視窗和預測間隔大小,將追蹤此時間步長間隔。

部署模型後,您要建立預測的應用資料需要追蹤與訓練資料集中定義的相同時間步長。

品質

當您選取訓練資料集時,系統會推斷所使用的時間步長。如果日期索引中有遺失值或間隔,目標、群組和共變數等欄位可以由系統自動內插。然而,如果您的資料包含時間間隔不一致到偵測到不同時間步長的地步,則必須先修正資料。例如,如果您有數個月的資料每天記錄一次,但有一個區段的資料持續以每週為基礎記錄,則無法使用資料集,因為會偵測到多個時間步長。

套用時段

「套用視窗」或「回溯期間」是演算法可用來為您指定的預測視窗提供預測的訓練資料部分。

「套用視窗」由系統計算並設定。它是以時間步長測量。「套用視窗」由您設定的「預測視窗」和「間隔」(預測範圍)定義。 您的套用視窗大小會顯示在實驗組態面板以及模型訓練摘要中,執行至少一個實驗版本之後。它也會顯示在 ML 部署模型結構描述中,建立或編輯批次預測組態時。

「套用視窗」會從您的訓練組態中自動識別。若要為給定的預測視窗產生預測,您需要提供至少涵蓋應用視窗的歷史資料。這會在您的應用資料集中提供。請參閱 準備套用資料集

最大預測視窗

最大預測視窗會在您設定時間序列實驗時進行估計。執行某個版本的訓練後,最大預測視窗會明確確認。最大預測視窗會顯示為預估最大預測最大預測,位於根據您的資料下方,當您在實驗組態面板中開啟目標和實驗類型時。最大預測視窗是您可以產生預測的時間步長最大數量,考量您選擇的預測視窗、您提供的歷史資料量,以及系統預期的最小樣本大小。您提供的歷史資料越多,您能夠預測的時間就越遠。然而,為了產生可靠的預測,選擇合理的預測視窗很重要。

最大預測視窗可以大到 180 個時間步長。

預測截止時間

預測截止時間在預測期間定義您的應用資料集時尤其重要。預測截止時間是您的樣本中您有目標值的最後日期。本質上,此截止時間之後的日期是您想要產生預測的日期。

什麼是時間序列?

Qlik Predict 時間序列預測中,每個群組 — 包括單獨的目標 — 都被視為訓練資料集中的獨立時間序列。例如,假設您的訓練資料集包含銷售指標。這些銷售指標是針對每個商店和產品類型所定義的。將「商店」和「產品類型」欄定義為群組後,訓練資料集中有三個時間序列。

準備訓練資料集

對於多變量時間序列預測,您的訓練資料集需要包含以下欄位:

  • 日期索引

  • 目標欄

  • 群組欄 (選用)

  • 功能欄 (選用—如果沒有功能,您正在訓練單變量預測模型)

顯示時間序列訓練資料集所需欄和資料的圖例。描述了無群組、一個群組和兩個群組的情境。

概述時間序列預測模型訓練資料集所需組件和時間軸的線性圖。

日期索引欄

您需要一個包含完整日期或時間戳記的日期索引。此欄是追蹤目標和共變量指標的時間順序索引。日期索引欄會沿著一致的時間間隔 (時間步長) 依序組織依時間的測量值。

日期索引欄的組織方式如下,取決於您是否使用群組:

  • 無群組:針對每個時間步長提供單一記錄。例如,若為每日預測,每一列代表單一天。

  • 有群組:針對每個時間步長提供一個或多個複製項目,取決於所使用的群組。

若為多變量訓練資料集,針對每個時間步長將會有一個或多個複製項目,取決於所使用的群組。您使用的時間步長具有彈性 — 例如,您可以每日、每週或每月記錄日期一次或多次,依此類推。

此欄中遺失或記錄不一致的值有時是可以接受的,如果它們可以被內插。然而,您的日期索引值不能包含多個不同的時間步長。例如,如果間隔被確定為每日一次,但在某個時間點識別出每日兩次的間隔,則在訓練期間將會發生錯誤。

目標欄和群組欄

您的資料集需要有一個目標欄,其中包含您要預測的數值指標。一個常見的範例是銷售額。

如果您正在使用群組,您需要為您新增的群組中每個可能的值提供歷史目標值。例如,如果您的目標是銷售額,並且您新增了一個包含商店 A 和商店 B 資料的群組「商店編號」,您的資料集需要為每個時間步長包含兩筆獨立的記錄:一筆是商店 A 的銷售額,另一筆是商店 B 的銷售額。

特徵欄

您可以訓練無需任何共變數的時間序列模型。然而,如果您包含共變數,請在資料集中為每個功能提供一個欄位。功能資料通常應為歷史記錄資料,除非您正在新增未來功能。未來功能欄位可以包含歷史資料和未來資料。如果您確信在建立預測時這些欄位的未來值將會已知,則應僅在訓練資料集中包含未來功能資料。

追蹤您將使用哪些功能作為未來功能,因為您需要在訓練配置中將它們選取為此類功能。

資料量

您的資料集需要包含足夠的記錄。您的歷史資料量有助於決定您能預測多遠的未來。您所需的預測視窗也會影響您需要多少歷史資料。

通常,歷史資料越多越好。然而,資料需要品質良好並捕捉到所需的趨勢。如果資料提供不相關的資訊或包含不準確之處,將其納入模型中並沒有幫助。考慮在最佳化資料量與維持品質和相關性之間取得平衡。

範例

準備套用資料集

部署時間序列模型後,您需要開發一個將進行預測的套用資料集

套用資料集 — 需求與驗證

對於時間序列模型,應用資料集需要:

  • 訓練資料集中包含的欄以及所有欄的欄標頭。

  • 與訓練資料集相同的時間步驟

  • 預測截止時間之前,(每個目標和群組的) 歷史資料記錄,與模型套用時段中的記錄數量相同或更多。這些必須是完整的記錄,包含歷史觀察到的日期或時間戳記、目標共變量值。套用時段由在訓練期間設定的預測時段和差距決定 — 您需要預測的未來時間越長,在套用資料集中執行預測所需的歷史資料就越多。

  • 您的預測範圍中所有未來時間步驟的記錄。對於這些未來記錄,僅包含日期索引欄的值,以及任何未來特徵。讓其他欄的值空白。

提示備註針對您的應用資料集,大部分的歷史資料要求是為了指定可接受的最低資料量。您隨時可以提供比所需更多的資料。當模型產生預測時,只會使用涵蓋應用視窗所需的記錄。

顯示用於從時間序列預測模型產生預測的應用資料集所需欄位和資料的圖例。描述了沒有群組、一個群組和兩個群組的情境。

線性圖,概述了用於使用時間序列預測模型產生預測的套用資料集所需元件和時間軸。

範例

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們!