共用方式為


使用平均預測模型進行預測 (中繼資料採礦教學課程)

在本課稍早的工作中,您已經使用預測查詢產生器來建立一個查詢,這個查詢會針對預測模型產生預設的預測結果。在此工作中,您將會學習建立預測查詢,此查詢會將全球銷售模型套用到其中一個個別地區。

在時間序列預測中使用取代資料

在 SQL Server 2008 中,PredictTimeSeries (DMX) 函數有兩個新的參數 EXTEND_MODEL_CASES 和 REPLACE_MODEL_CASES,這兩個參數可讓您自訂時間序列預測。

  • EXTEND_MODEL_CASES 可讓您將資料加入到現有的模型中,並根據新的資料做預測。

  • REPLACE_MODEL_CASES 可讓您使用另一個數列中的資料來取代用來建立此模型的資料數列。

在此案例中,您將會使用 REPLACE_MODEL_CASES。但是,您必須先設定一個只包含取代資料的資料來源檢視。取代資料代表每一個個別數列的資料。然後您將會建立預測查詢,此查詢會將一般模型套用到取代資料中。

若要建立包含取代資料的資料來源檢視

  1. [方案總管] 中,以滑鼠右鍵按一下 [資料來源檢視],再選取 [新增資料來源檢視]

  2. 在資料來源檢視精靈中,進行下列選擇:

    資料來源Adventure Works DW2008

    選取資料表和檢視:不選取任何資料表

    名稱:T1000 Pacific Region

  3. 按一下 [完成]

  4. 以滑鼠右鍵按一下 T1000 Pacific Region.dsv 的空白設計介面,然後選取 [新增具名查詢]

    [建立具名查詢] 對話方塊隨即開啟。重新輸入名稱,並加入以下的描述:

    名稱:T1000 Pacific Region

    描述:根據地區和模型篩選 vTimeSeries

  5. 在文字窗格中,輸入下列查詢:

    SELECT ReportingDate, ModelRegion, Quantity, Amount
    FROM dbo.vTimeSeries
    WHERE (ModelRegion = N'T1000 Pacific')
    

    [!附註]

    您也可以使用查詢產生器來建立查詢,但是輸入查詢的文字會比較快。但是,當您輸入查詢文字以後,您可以按一下另一個窗格,查看如何剖析查詢文字以及從支援的資料表建立查詢。您可能也會想要複製查詢文字,並將它儲存到文字檔中,好讓您可以重複將它用於另一個資料數列。

  6. 按一下 [確定]

  7. 在 [資料來源檢視] 設計介面中,以滑鼠右鍵按一下 [T1000 Pacific],並選取 [瀏覽資料],確認資料已正確篩選。

現在,您將會與往常一樣建立時間序列預測查詢,但是加入 REPLACE_MODEL_CASES 參數來指定,應該使用您所提供的新資料來取代預測所根據的資料數列。您也必須指定採礦模型與輸入資料表之間的對應。

若要建立預測查詢及提供取代資料

  1. 如果此模型尚未開啟,請按兩下 AllRegions 結構,然後在資料採礦設計師中按一下 [採礦模型預測] 索引標籤。

  2. [採礦模型] 窗格中應該已選取 AllRegions 模型;如果未選取的話,請按一下 [選取模型],再選取 AllRegions 模型。

  3. [選取輸入資料表] 窗格中,按一下 [選取案例資料表]

  4. [選取資料表] 對話方塊中,將資料來源變更為 [T1000 Pacific Region],再按一下 [確定]

    您建立的資料來源檢視會顯示為包含資料行的資料表。某些資料行可能已經對應到採礦模型資料行。

  5. 以滑鼠右鍵按一下採礦模型與輸入資料之間的聯結線,然後選取 [修改連接]

  6. [修改對應] 對話方塊中,確認採礦模型中的 ReportingDate 資料行已經對應到輸入資料中的 ReportingDate 資料行。

  7. [修改對應] 對話方塊中,於 AvgQty 的資料列中按一下 [資料表資料行] 底下,並選取 [T1000 Pacific.Quantity]。按一下 [確定]

    這個步驟會將一般模型中的彙總數量資料行對應到取代資料數列中的數量資料行。

  8. 在此方格中,按一下 [來源] 底下的第一個空白資料列,並選取 [AllRegions]。針對 [欄位] 選取 [Region]。針對 [別名] 輸入 Model Used。

    這個步驟會在結果中加入一個資料行,此資料行可幫助您記得預測是來自一般模型。

  9. 按一下新的空白資料列,然後選取 [來源] 底下的 [自訂運算式]。針對 [別名] 輸入 ModelRegion。在 [準則/引數] 中輸入 'T1000 Pacific'。

    這個步驟會在結果中加入一個標籤,此標籤可幫助您記得預測是針對哪些數列。

  10. 按一下新的空白資料列,然後選取 [來源] 底下的 [預測函數]。針對 [欄位] 選取 [PredictTimeSeries]。針對 [別名] 輸入 Predicted Values。

  11. 將 AvgQty 欄位從 [採礦模型] 窗格拖曳到 [準則/引數] 資料行中。

  12. [準則/引數] 方塊中,於欄位名稱後面輸入以下文字:,5, REPLACE_MODEL_CASES

    [準則/引數] 文字方塊的完整文字應該如下所示:[AllRegions].[AvgQty],5,REPLACE_MODEL_CASES

  13. 按一下 [結果]

檢視結果

預測查詢傳回的結果與下面類似:

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 Pacific

$TIMEAvg Qty
7/25/2004 12:00:00 AM68
8/25/2004 12:00:00 AM52
9/25/2004 12:00:00 AM48
10/25/2004 12:00:00 AM56
11/25/2004 12:00:00 AM44

若要將一般模型套用到不同的資料數列,例如北美地區的 T1000 產品型號,您必須為每一個數列建立不同的查詢。但是,您可以編輯您所建立的 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 DW2008],
    '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 產品在北美的預測 (根據一般模型中的模式)。

Model Used

ModelRegion

Predicted Quantity

All Regions

T-1000 North America

$TIMEAvg Qty
7/25/2004 12:00:00 AM103
8/25/2004 12:00:00 AM84
9/25/2004 12:00:00 AM79
10/25/2004 12:00:00 AM85
11/25/2004 12:00:00 AM68