共用方式為


第5課:擴充時間序列模型

在 SQL Server 2014 Enterprise 中,您可以將新數據新增至時間序列模型,並自動將新數據併入模型中。 您可以使用下列兩種方式之一,將新資料新增至時間序列採礦模型:

  • 使用 PREDICTION JOIN 將外部來源中的數據聯結至定型數據。

  • 使用單例預測查詢一次提供一份數據。

例如,假設您在幾個月前已針對現有的銷售數據定型採礦模型。 當您取得新銷售時,可能會想要更新銷售預測以納入新數據。 您可以在一個步驟中,提供新的銷售數據做為輸入數據,並根據複合數據集產生新的預測。

使用 EXTEND_MODEL_CASES 進行預測

以下是使用 EXTEND_MODEL_CASES 進行時間序列預測的一般範例。 第一個範例可讓您指定從原始模型最後一個步驟開始的預測數目:

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>]  

第二個範例可讓您指定預測應該開始的時間步驟,以及預測應該結束的位置。 當您擴充模型案例時,此選項很重要,因為根據預設,用於預測查詢的時間步驟一律會從原始數列的結尾開始。

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES)   
FROM <mining model>  
PREDICTION JOIN <source query>  
[WHERE <criteria>}  

在本教學課程中,您將建立這兩種類型的查詢。

在時間序列模型上建立單一預測查詢

  1. 物件總管 中,以滑鼠右鍵點擊 Analysis Services 實例,指向 新增查詢,然後按一下 DMX

    查詢編輯器隨即開啟,並包含新的空白查詢。

  2. 將單一語句的泛型範例複製到空白查詢中。

  3. 取代下列項目:

    SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES)   
    

    取代為:

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    

    第一行會從識別數列的模型擷取值。

    第二行包含預測函式,其會取得 Quantity 的 6 個預測。 別名 PredictQty會指派給預測結果數據行,以便更輕鬆地了解結果。

  4. 取代下列項目:

    FROM <mining model>  
    

    取代為:

    FROM [Forecasting_MIXED]  
    
  5. 取代下列項目:

    PREDICTION JOIN <source query>  
    

    取代為:

    NATURAL PREDICTION JOIN   
    (  
       SELECT 1 AS [Reporting Date],  
       '10' AS [Quantity],  
       'M200 Europe' AS [Model Region]  
       UNION SELECT  
       2 AS [Reporting Date],  
       15 AS [Quantity]),  
       'M200 Europe' AS [Model Region]  
    ) AS t  
    
  6. 取代下列項目:

    [WHERE <criteria>]  
    

    取代為:

    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    

    完整語句現在應該如下所示:

    SELECT [Model Region],  
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty  
    FROM  
       [Forecasting_MIXED]  
    NATURAL PREDICTION JOIN   
       SELECT 1 AS [ReportingDate],  
      '10' AS [Quantity],  
      'M200 Europe' AS [ModelRegion]  
    UNION SELECT  
      2 AS [ReportingDate],  
      15 AS [Quantity]),  
      'M200 Europe' AS [ModelRegion]  
    ) AS t  
    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    
  7. 在 [檔案] 功能表上,按一下 [另存新檔 DMXQuery1.dmx]。

  8. 在 [ 另存新檔 ] 對話框中,瀏覽至適當的資料夾,並將檔案 Singleton_TimeSeries_Query.dmx命名為 。

  9. 在工具列上,按兩下 [ 執行] 按鈕。

    此查詢會傳回歐洲和太平洋地區 M200 自行車銷售數量預測。

了解預測從EXTEND_MODEL_CASES開始

既然您已根據原始模型建立預測,並使用新的數據,您可以比較結果,以查看更新銷售數據如何影響預測。 執行此動作之前,請先檢閱您剛才建立的程序代碼,並注意下列事項:

  • 您只為歐洲區域提供新數據。

  • 您只提供了兩個月的新數據。

下表顯示針對 M200 Europe 提供的新值如何影響預測。 您並未為太平洋地區的 M200 產品提供任何新資料,但此系列會提供比較:

產品與區域:M200 歐洲

現有模型 (PredictTimeSeries 具有更新銷售資料的模型 (PredictTimeSeriesEXTEND_MODEL_CASES
M200 歐洲 2008/7/25 上午 12:00:00 77 10
M200 歐洲 2008/8/25 上午 12:00:00 64 15
M200 歐洲 2008/9/25 上午 12:00:00 59 72
M200 歐洲 2008/10/25 上午 12:00:00 56 69
M200 歐洲 2008/11/25 上午 12:00:00 56 68
M200 歐洲 2008/12/25 上午 12:00:00 74 89

產品與區域:M200 Pacific

現有模型 (PredictTimeSeries 具有更新銷售資料的模型 (PredictTimeSeriesEXTEND_MODEL_CASES
M200 Pacific 2008/7/25 上午 12:00:00 41 41
M200 Pacific 2008/8/25 上午 12:00:00 44 44
M200 Pacific 2008/9/25 上午 12:00:00 38 38
M200 Pacific 2008/10/25 上午 12:00:00 41 41
M200 Pacific 2008/11/25 上午 12:00:00 36 36
M200 Pacific 2008/12/25 上午 12:00:00 39 39

從這些結果中,您可以看到兩件事:

  • M200 歐洲系列的前兩個預測與您提供的新數據完全相同。 根據設計,Analysis Services 會傳回實際的新數據點,而不是進行預測。 這是因為當您擴充模型案例時,用於預測查詢的時間步驟一律會從原始數列的結尾開始。 因此,如果您加入兩個新的數據點,則傳回的前兩個預測會與新數據重疊。

  • 所有新的數據點都用完之後,Analysis Services 會根據更新的模型進行預測。 因此,從 2005 年 9 月開始,您可以在左側欄中看到原始模型對 M200 Europe 預測的差異,以及在右側欄中使用 EXTEND_MODEL_CASES 的模型之間的不同。 預測不同,因為模型已以新的數據更新。

使用開始和結束時間步驟來控制預測

當您擴充模型時,新數據一律會附加至數列結尾。 不過,為了進行預測,用於預測查詢的時間配量會從原始數列的結尾開始。 如果您想要在新增數據時只取得新的預測,則必須將起點指定為一些時間配量。 例如,如果您要新增兩個新的數據點,而且想要進行四個新的預測,您會執行下列動作:

  • 在時間序列模型上建立 PREDICTION JOIN,並指定兩個月的新數據。

  • 要求對四個時間片段進行預測,其中起點為 3,結束點為時間片段 6。

換句話說,如果您的新數據包含 n 個時間片段,而且您要求時間步驟 1 到 n 的預測,預測將會與新數據的期間一致。 若要取得數據未涵蓋之時間週期的新預測,您必須在新數據系列之後的時間配量 n+1 開始預測,或確定您要求額外的時間配量。

備註

當您新增資料時,您無法進行歷程記錄預測。

下列範例顯示 DMX 語句,讓您只取得上一個範例中兩個數列的新預測。

SELECT [Model Region],  
PredictTimeSeries([Quantity],3,6, EXTEND_MODEL_CASES) AS PredictQty  
FROM  
   [Forecasting_MIXED]  
NATURAL PREDICTION JOIN   
   SELECT 1 AS [ReportingDate],  
  '10' AS [Quantity],  
  'M200 Europe' AS [ModelRegion]  
UNION SELECT  
  2 AS [ReportingDate],  
  15 AS [Quantity]),  
  'M200 Europe' AS [ModelRegion]  
) AS t  
WHERE [ModelRegion] = 'M200 Europe'  

預測結果會從時間配量 3 開始,這是在您提供的 2 個月新數據之後。

產品與區域:M200 歐洲

具有更新數據的模型 (PredictTimeSeries with EXTEND_MODEL_CASES)

M200 歐洲 2008/9/25 上午 12:00:00 72
M200 歐洲 2008/10/25 上午 12:00:00 69
M200 歐洲 2008/11/25 上午 12:00:00 68
M200 歐洲 2008/12/25 上午 12:00:00 89

使用 REPLACE_MODEL_CASES 進行預測

當您想要在一組案例上定型模型,然後將該模型套用至不同的數據系列時,取代模型案例很有用。 本案例的詳細逐步解說會在第 2 課:建置預測案例(元數據採礦教學課程)中呈現。

另請參閱

時間序列模型查詢範例
PredictTimeSeries (DMX)