使用取代資料執行時間序列預測 (中繼資料採礦教學課程)
在這項工作中,您將會根據全球銷售資料建立新的模型。 接著,您將會建立預測查詢,此查詢會將全球銷售模型套用到其中一個個別地區。
建立一般模型
請記得原始採礦模型結果的分析揭露地區之間和產品線之間有很大的差異。 例如,北美洲對於 M200 模型的銷售非常強,而 T1000 模型的銷售則沒有這麼強。 不過,分析很複雜,因為某些數列沒有太多資料,或從不同時間點開始的資料。 此外還缺少某些資料。
為了解決部分資料品質問題,您決定合併全球銷售資料,並使用該組一般銷售趨勢,建立可用來預測任何地區未來銷售的模型。
當您建立預測時,將會使用定型全球銷售資料時所產生的模式,但會以各地區的銷售資料來取代歷程記錄資料點。 這樣會保留趨勢的形狀,但預測的值會與各地區和模型的歷程銷售數字相吻合。
在時間序列模型上執行交叉預測
使用某個數列的資料來預測另一個數列中的趨勢,這個程序稱為交叉預測。 您可以在許多案例中使用交叉預測:例如,您可能決定電視銷售是整體經濟活動的絕佳預測指標,而將經過電視銷售定型的模型套用至一般經濟資料。
在SQL Server資料採礦中,您可以使用參數REPLACE_MODEL_CASES函數內的參數,PredictTimeSeries (DMX) 來執行交叉預測。
在下一個工作中,您將會了解如何使用 REPLACE_MODEL_CASES。 您將使用合併的全球銷售資料來建立模型,然後建立預測查詢,將一般模型對應至取代資料。
此工作中假設您現在已經熟悉如何建立資料採礦模型,因此簡化了建立模型的指示。
若要使用彙總資料建立採礦結構和採礦模型
在[方案總管] 中,以滑鼠右鍵按一下[採礦結構],然後選取 [新增採礦結構] 以啟動 [資料採礦精靈]。
在資料採礦精靈中,進行下列選擇:
演算法:Microsoft 時間序列
將您稍早在此進階課程中建立的資料來源當做模型的來源使用。 請參閱 (中繼資料採礦的進階時間序列預測教學課程) 。
資料來源檢視:
AllRegions
針對數列索引鍵和時間索引鍵,選擇下列資料行:
關鍵時間:ReportingDate
機碼:區域
針對
Input
和Predict
,選擇下列資料行:SumQty
SumAmt
AvgAmt
AvgQty
針對 [採礦結構名稱],輸入:
All Regions
針對 [採礦模型名稱],輸入:
All Regions
處理新結構和新模型。
若要建立預測查詢及對應取代資料
如果模型尚未開啟,請按兩下 AllRegions 結構,然後在 [資料採礦] Designer中,按一下 [採礦模型預測] 索引標籤。
在 [採礦模型] 窗格中,應該已經選取 [AllRegions] 模型。 如果未選取,請按一下 [ 選取模型],然後選取模型 AllRegions。
在 [ 選取輸入資料表 () ] 窗格中,按一下 [ 選取案例資料表]。
在 [ 選取資料表 ] 對話方塊中,將資料來源變更為 T1000 Pacific Region,然後按一下 [ 確定]。
以滑鼠右鍵按一下採礦模型與輸入資料之間的聯結線,然後選取 [ 修改連接]。 將資料來源檢視中的資料對應至模型,如下所示:
確認採礦模型中的 ReportingDate 資料行對應至輸入資料中的 ReportingDate 資料行。
在 [ 修改對應 ] 對話方塊的 [模型] 資料行 AvgQty 資料列中,按一下 [ 資料表 資料行] 底下,然後選取 [T1000 Pacific.Quantity]。 按一下 [確定] 。
這個步驟會將您在模型中建立用於預測平均數量的資料行對應到 T1000 數列中銷售數量的實際資料。
請勿將模型中的資料列區域對應至任何輸入資料行。
由於模型跨所有數列彙總資料,因此 T1000 Pacific 之類的數列值沒有相符項目,而且在執行預測查詢時,會引發錯誤。
現在,您將建立預測查詢。
首先,在結果中加入一個資料行,此資料行會從模型中輸出 AllRegions 標籤與預測。 如此一來,您就可以知道結果是以一般模型為基礎。
在方格中,按一下 [ 來源] 底下的第一個空白資料列,然後選取 [AllRegions 採礦模型]。
針對 [欄位],選取 [區域]。
針對 [別名],輸入 [已使用模型]。
接著在結果中加入另一個標籤,讓您得知預測是針對哪些數列。
按一下空白資料列,然後在 [ 來源] 底下,選取 [ 自訂表格達式]。
在 [別名] 資料行中,輸入 ModelRegion。
在 [ 準則/引數] 資料行中,輸入
'T1000 Pacific'
。
現在,您將設定交叉預測函數。
按一下空白資料列,然後在 [ 來源] 底下,選取 [預測函數]。
在 [ 欄位] 資料 行中,選取 [PredictTimeSeries]。
針對 [別名],輸入 預測值。
使用拖放作業,將 [ 採礦模型] 窗格的 [AvgQty] 欄位拖曳至 [ 準則/引數 ] 資料行。
在 [ 準則/引數 ] 資料行的功能變數名稱後面,輸入下列文字:
,5, REPLACE_MODEL_CASES
[準則/引數] 文字方塊的完整文字應如下所示:
[AllRegions].[AvgQty],5,REPLACE_MODEL_CASES
按一下 [結果]。
使用 DMX 建立交叉預測查詢
您可能注意到交叉預測有個問題:亦即,若要將一般模型套用至不同的資料數列,例如北美地區的 T1000 產品模型,您必須針對每個數列建立不同的查詢,才能將各組輸入對應至模型。
但是,您可以切換至 DMX 檢視並編輯建立的 DMX 陳述式,而不在設計工具中建立查詢。 例如,下列 DMX 陳述式代表您剛才建立的查詢:
SELECT
([All Regions].[Region]) as [Model Used],
('T-1000 Pacific') as [ModelRegion],
(PredictTimeSeries([All Regions].[Avg Qty],5, REPLACE_MODEL_CASES)) as [Predicted Quantity]
FROM [All Regions]
PREDICTION JOIN
OPENQUERY([Adventure Works DW2003R2], 'SELECT [ReportingDate] FROM
(
SELECT ReportingDate, ModelRegion, Quantity, Amount
FROM dbo.vTimeSeries
WHERE (ModelRegion = N''T1000 Pacific'')
) as [T1000 Pacific] ')
AS t
ON
[All Regions].[Reporting Date] = t.[ReportingDate]
AND
[All Regions].[Avg Qty] = t.[Quantity]
若要將此套用到不同的模型,您只需編輯查詢陳述式來取代篩選條件並更新與每一個結果關聯的標籤。
例如,如果您以 'North America' 取代 'Pacific' 來變更篩選條件和資料行標籤,您將會得到 T1000 產品在北美的預測 (根據一般模型中的模式)。