使用多變數時間序列預測 | Qlik Cloud 說明
跳到主要內容 跳至補充內容

使用多變數時間序列預測

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

時間序列問題的元件

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

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

  • 目標與群組

  • 日期索引

  • 預測範圍

  • 共變數

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

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

目標

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

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

日期索引

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

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

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

群組

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

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

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

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

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

預測範圍

預測範圍指定您希望預測到未來的多遠。預測範圍由預測視窗(您需要預測的時間步長數量)和預測間隙(歷史資料之後您不需要預測的可選時間步長數量)組成。

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

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

預測間隙是您不需要預測的未來時間量。設定預測間隙是可選的,因為您可能需要也可能不需要。預測間隙從您提供的記錄歷史訓練資料結束處開始。預測視窗在預測間隙結束的地方開始。

例如,您可能希望預測未來銷售額,但您只對輸入資料結束後一週之後的日期感興趣。在這種情況下,以天為時間步長,您可以將預測間隙大小設定為七個時間步長。

您選擇的預測視窗,加上您擁有的訓練資料量,限制了您可以預測到未來的多遠。如需更多資訊,請參閱 最大預測視窗

共變數

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

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

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

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

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

  • 未來共變數:未來共變數(也稱為 未來功能)是時間依賴變數,您將在預測範圍內知道其未來值。在訓練中使用未來共變數時,您需要在訓練設定中將其指示為未來功能。

未來功能

透過未來功能,您可以向模型提供有關您已經知道或可以合理預期的未來資訊的額外資料。特別是,您可以存取此功能跨越您選擇的 預測範圍 的未來值。定義未來功能時,您需要提供歷史資料以及未來資料。

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

其他重要概念

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

時間步長

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

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

了解訓練資料中使用的時間步長非常重要。您定義的其他實驗參數(例如 預測視窗和預測間隙大小)將遵循此時間步長間隔。

部署模型後,您想要產生預測的應用資料將需要遵循訓練資料集中定義的相同時間步長。

品質

當您選擇訓練資料集時,系統會推斷所使用的時間步長。如果日期索引中存在一些缺失值或間隙,目標、群組和共變數等欄位可以由系統自動插值。但是,如果您的資料包含不一致的時間間隔,以至於偵測到不同的時間步長,則必須先修復資料。例如,如果您有幾個月每天記錄一次的資料,但有一部分資料是每週記錄一次,則該資料集無法使用,因為會偵測到多個時間步長。

應用視窗

應用視窗(或回顧期)是演算法可用於為您指定的 預測視窗 提供預測的訓練資料部分。

應用視窗由系統計算並設定。它以 時間步長 為單位進行測量。應用視窗由您設定為預測視窗和間隙(預測範圍)的內容定義。 在執行至少一個實驗版本後,您的應用視窗大小會顯示在實驗設定面板和 模型訓練摘要 中。在建立或編輯批次預測設定時,它也會顯示在 ML 部署 模型結構 中。

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

最大預測視窗

最大預測視窗會在您設定時間序列實驗時進行估算。在您執行訓練版本後,最大預測視窗將得到確認。當您在實驗設定面板中開啟 目標和實驗類型 時,最大預測視窗會以 估計最大預測最大預測 的形式顯示在 基於您的資料 下。最大預測視窗是您可以產生預測的最大時間步長數量,具體取決於您選擇的預測視窗、您提供的歷史資料量以及系統預期的最小樣本大小。您提供的歷史資料越多,您預測未來的能力就越強。但是,為了產生可靠的預測,選擇合理的預測視窗非常重要。

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

預測截止時間

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

什麼是時間序列?

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

準備訓練資料集

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

  • 日期索引

  • 目標欄位

  • 群組欄位(可選)

  • 功能欄位(可選——沒有功能,您正在訓練單變數預測模型)

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

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

日期索引欄位

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

日期索引欄位組織如下,具體取決於您是否使用群組:

  • 無群組:每個時間步長一筆記錄。例如,對於每日預測,每一列代表單獨的一天。

  • 有群組:根據所使用的群組,每個時間步長有一個或多個重複條目。

對於多變數訓練資料集,根據所使用的群組,每個時間步長將有一個或多個重複條目。您使用的時間步長具有靈活性——例如,您可以按每日、每週或每月等方式記錄日期一次或多次。

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

目標欄位和群組欄位

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

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

功能欄位

您可以在沒有任何 共變數 的情況下訓練時間序列模型。但是,如果您包含共變數,請為每個功能在資料集中提供一個欄位。功能資料通常應該是歷史記錄的資料,除非您正在新增未來功能。未來功能欄位可以包含歷史資料和未來資料。只有在您確信在產生預測時會知道這些欄位的未來值時,才應將未來功能資料包含在訓練資料集中。

請追蹤您將用作未來功能的功能,因為您需要在訓練設定中將其選為未來功能。

資料量

您的資料集需要包含足夠的記錄——資料量由所有群組共用的時間範圍決定。只有來自此重疊期間的資料才用於訓練實驗。

歷史資料的量在決定您可以預測到未來的多遠方面起著作用。您想要的預測視窗也會影響您需要的歷史資料量。

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

範例

準備應用資料集

部署時間序列模型後,您需要開發一個 應用資料集,以便進行預測。

應用資料集 — 要求與驗證

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

  • 包含在訓練資料集中的所有欄和欄標題。

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

  • 訓練資料集中存在的所有群組和群組值。

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

  • 預測範圍內所有未來時間步長的記錄。對於這些未來記錄,僅包含日期索引欄的值,以及任何未來特性。將其他欄的值留空。

提示備註應用資料集的大多數歷史資料要求都是為了指定最低可接受的資料量。您可以隨時提供超過所需的資料。當模型產生預測時,僅使用涵蓋應用視窗所需的記錄。

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

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

範例

此頁面是否對您有幫助?

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