第 4 課:執行購物籃預測
新增: 2005 年 12 月 5 日
在這一課,您將使用 SELECT 陳述式的 SELECT FROM <model> PREDICTION JOIN (DMX) 格式,並以您在<第 2 課:將採礦模型加入購物籃採礦結構中>建立的關聯模型為基礎來建立預測。這些預測類型定義如下。
SELECT 陳述式的 SELECT FROM <model> PREDICTION JOIN (DMX) 格式包含三個部份:
- 結果集傳回的採礦模型資料行和預測函數的清單。這也可以包含來源資料的輸入資料行。
- 定義用來建立預測資料的來源查詢。例如,在批次查詢中,這可能是一份客戶名單。
- 採礦模型資料行和來源資料之間的對應。如果這些名稱相符,您就可以使用 NATURAL 語法,並省略資料行對應。
您可以使用預測函數,進一步加強查詢。預測函數提供其他資訊,例如發生預測的機率,以及對培訓資料集的預測支援。如需有關預測函數的詳細資訊,請參閱<函數 (DMX)>。
您也可以在 Business Intelligence Development Studio 中使用預測查詢產生器來建立預測查詢。如需詳細資訊,請參閱<使用預測查詢產生器來建立 DMX 預測查詢>。
課程工作
您將在這一課執行下列工作:
- 建立查詢,依據客戶購物車已有的項目來判斷客戶可能購買的其他項目。您將使用具有預設 MINIMUM_PROBABILITY 的採礦模型來建立此查詢。
- 建立查詢,依據客戶購物車已有的項目來判斷客戶可能購買的其他項目。您將使用具有預設 MINIMUM_PROBABILITY 0.01 的採礦模型來建立此查詢。
單一 PREDICTION JOIN 陳述式
第一步是在單一預測查詢中使用 SELECT FROM <model> PREDICTION JOIN (DMX)。以下是單一陳述式的一般範例:
SELECT <select list>
FROM [<mining model>] NATURAL PREDICTION JOIN
(SELECT '<value>' AS [<column>],
(SELECT 'value' AS [<nested column>] UNION
SELECT 'value' AS [<nested column>] ...)
AS [<nested table>])
AS [<input alias>]
程式碼的第一行定義在採礦模型中由查詢傳回的資料行,以及用來產生預測的採礦模型:
SELECT <select list> FROM [<mining model>]
接下來幾行的程式碼定義購物車中的產品,它們將用來預測客戶可能加入的其他產品:
(SELECT '<value>' AS [<column>],
(SELECT 'value' AS [<nested column>] UNION
SELECT 'value' AS [<nested column>] ...)
AS [<nested table>])
使用具有預設 MINIMUM_PROBABILITY 的模型建立預測
若要建立關聯查詢
在 [物件總管] 中,以滑鼠右鍵按一下 Analysis Services 的執行個體,指向 [新增查詢],然後按一下 [DMX]。
此時會開啟 [查詢編輯器] 且包含新的空白查詢。
將 PREDICTION JOIN 陳述式的一般範例複製到空白查詢中。
取代下列項目:
<select list>
成為:
PREDICT([Association].[Products],INCLUDE_STATISTICS,3)
您可以只包含資料行名稱 [Products],但若使用 Predict 函數,您可以將演算法傳回的產品數限制為 3。您也可以使用 INCLUDE_STATISTICS,可傳回每一項產品的案例數、機率和調整機率。這些統計資料有助您評比預測的精確性。
取代下列項目:
[<mining model>]
成為:
[Association]
取代下列項目:
(SELECT '<value>' AS [<column>], (SELECT 'value' AS [<nested column>] UNION SELECT 'value' AS [<nested column>] ...) AS [<nested table>])
成為:
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
此陳述式使用 UNION 陳述式指定三項產品,它們必須連同預測的產品一起併入購物車內。SELECT 陳述式中的 [模型] 資料行對應到巢狀產品資料表所包含的模型資料行。
現在,完整的陳述式應該如下所示:
SELECT PREDICT([Association].[Products],INCLUDE_STATISTICS,3) From [Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
按一下 [檔案] 功能表上的 [將 DMXQuery1.dmx 另存為]。
在 [另存新檔] 對話方塊中,瀏覽至適當的資料夾,並將檔案命名為 Association Prediction.dmx。
在工具列上按一下 [執行] 按鈕。
此查詢依照可能存在於與查詢所指定的三項產品相同之購物車的順序來傳回包含三項產品的資料表 (HL Mountain Tire、Fender Set - Mountain 和 ML Mountain Tire)。此資料表也包含描述預測精確性的統計資料。
使用具有 MINIMUM_PROBABILITY 0.01 的模型建立預測
若要建立關聯查詢
在 [物件總管] 中,以滑鼠右鍵按一下 Analysis Services 的執行個體,指向 [新增查詢],然後按一下 [DMX]。
此時會開啟 [查詢編輯器] 且包含新的空白查詢。
將 PREDICTION JOIN 陳述式的一般範例複製到空白查詢中。
取代下列項目:
<select list>
成為:
PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
取代下列項目:
[<mining model>]
成為:
[Modified Association]
取代下列項目:
(SELECT '<value>' AS [<column>], (SELECT 'value' AS [<nested column>] UNION SELECT 'value' AS [<nested column>] ...) AS [<nested table>])
成為:
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
此陳述式使用 UNION 陳述式指定三項產品,它們必須連同預測的產品一起併入購物車內。SELECT 陳述式中的 [模型] 資料行對應到巢狀產品資料表所包含的模型資料行。
現在,完整的陳述式應該如下所示:
SELECT PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3) From [Modified Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
按一下 [檔案] 功能表上的 [將 DMXQuery1.dmx 另存為]。
在 [另存新檔] 對話方塊中,瀏覽至適當的資料夾,並將檔案命名為 Modified Association Prediction.dmx。
在工具列上按一下 [執行] 按鈕。
此查詢依照可能存在於與查詢所指定的三項產品相同之購物車的順序來傳回包含三項產品的資料表 (HL Mountain Tire、Water Bottle、Fender Set - Mountain)。此資料表也包含描述預測精確性的統計資料。
您可以從此查詢的結果看到,MINIMUM_PROBABILITY 參數的值會影響查詢傳回的結果。
這是購物籃教學課程的最後步驟。現在您有模型集,可用來預測客戶可能同時購買的產品類型。
若要瞭解如何在另一個預測狀況中使用 DMX,請參閱<Bike Buyer DMX 教學課程>。