在 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>}
在本教學課程中,您將建立這兩種類型的查詢。
在時間序列模型上建立單一預測查詢
在 物件總管 中,以滑鼠右鍵點擊 Analysis Services 實例,指向 新增查詢,然後按一下 DMX。
查詢編輯器隨即開啟,並包含新的空白查詢。
將單一語句的泛型範例複製到空白查詢中。
取代下列項目:
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會指派給預測結果數據行,以便更輕鬆地了解結果。取代下列項目:
FROM <mining model>取代為:
FROM [Forecasting_MIXED]取代下列項目:
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取代下列項目:
[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'在 [檔案] 功能表上,按一下 [另存新檔 DMXQuery1.dmx]。
在 [ 另存新檔 ] 對話框中,瀏覽至適當的資料夾,並將檔案
Singleton_TimeSeries_Query.dmx命名為 。在工具列上,按兩下 [ 執行] 按鈕。
此查詢會傳回歐洲和太平洋地區 M200 自行車銷售數量預測。
了解預測從EXTEND_MODEL_CASES開始
既然您已根據原始模型建立預測,並使用新的數據,您可以比較結果,以查看更新銷售數據如何影響預測。 執行此動作之前,請先檢閱您剛才建立的程序代碼,並注意下列事項:
您只為歐洲區域提供新數據。
您只提供了兩個月的新數據。
下表顯示針對 M200 Europe 提供的新值如何影響預測。 您並未為太平洋地區的 M200 產品提供任何新資料,但此系列會提供比較:
產品與區域:M200 歐洲
現有模型 (PredictTimeSeries) |
具有更新銷售資料的模型 (PredictTimeSeries 含 EXTEND_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) |
具有更新銷售資料的模型 (PredictTimeSeries 含 EXTEND_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 課:建置預測案例(元數據採礦教學課程)中呈現。