共用方式為


第 4 課:執行購物籃預測

在這一課,您將使用 DMX SELECT 語句,根據您在 第 2 課:將採礦模型新增至購物籃採礦結構中所建立的關聯模型來建立預測。 使用 DMX SELECT 語句和新增 PREDICTION JOIN 子句來建立預測查詢。 如需預測聯結語法的詳細資訊,請參閱 SELECT FROM <模型> PREDICTION JOIN (DMX)

SELECT語句的 SELECT FROM <模型> PREDICTION JOIN形式包含三個部分:

  • 結果集中傳回的採礦模型數據行和預測函式清單。 此清單也可以包含來源數據的輸入欄位。

  • 定義用來建立預測之數據的來源查詢。 例如,如果您要在批次中建立許多預測,來源查詢可能會擷取客戶清單。

  • 採礦模型欄位與源資料之間的對應。 如果欄位名稱相符,您可以使用 NATURAL PREDICTION JOIN 語法並省略欄位對應。

您可以使用預測函數來增強查詢。 預測函式會提供其他資訊,例如預測發生的機率,或在訓練數據集中的預測支援。 如需預測函式的詳細資訊,請參閱函式(DMX)。

您也可以使用 SQL Server Data Tools (SSDT) 中的預測查詢產生器來建立預測查詢。

Singleton PREDICTION JOIN 語法

第一個步驟是使用 SELECT FROM <模型> PREDICTION JOIN 語法建立單一查詢,並提供單一值集做為輸入。 以下是單一語句的泛型範例:

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>]   

程序代碼的下一行表示要執行的作業。 因為您會為每個數據行指定值,並輸入數據行名稱,以便與模型相符,所以您可以使用 NATURAL PREDICTION JOIN 語法。 不過,如果數據行名稱不同,您必須藉由加入 ON 子句來指定模型中的數據行與新數據中的數據行之間的對應。

[NATURAL] PREDICTION JOIN  

程式代碼的下一行會定義購物車中的產品,以用來預測客戶將新增的其他產品:

(SELECT '<value>' AS [<column>],   
    (SELECT 'value' AS [<nested column>] UNION  
        SELECT 'value' AS [<nested column>] ...)   
    AS [<nested table>])  

課程任務

您將在此課程中執行下列工作:

  • 建立查詢,根據客戶購物車中已經存在的商品,預測客戶可能購買的其他商品。 您將使用採礦模型搭配預設 MINIMUM_PROBABILITY來建立此查詢。

  • 建立查詢語句,根據客戶購物車中已經存在的商品,預測客戶可能購買的其他商品。 此查詢是以不同的模型為基礎, 其中MINIMUM_PROBABILITY 已設定為0.01。 由於關聯模型中 MINIMUM_PROBABILITY 的預設值為 0.3,因此此模型上的查詢應該會傳回比預設模型查詢更多的可能專案。

使用具有預設MINIMUM_PROBABILITY的模型建立預測

建立關聯查詢

  1. [物件總管] 中,右鍵按一下 Analysis Services 實例,指向 [新增查詢],然後按一下 [DMX] 以開啟 [查詢編輯器]。

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

  3. 取代下列項目:

    <select list>   
    

    取代為:

    PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)  
    

    您可以只包含數據行名稱 [Products],但藉由使用 Predict (DMX) 函式,您可以將演算法傳回的產品數目限制為三個。 您也可以使用 INCLUDE_STATISTICS,這會傳回每個產品的支援、機率和調整的機率。 這些統計數據可協助您對預測的正確性進行評分。

  4. 取代下列項目:

    [<mining model>]   
    

    取代為:

    [Default Association]  
    
  5. 取代下列項目:

    (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 Model 數據行會對應至巢狀產品數據表中包含的模型數據行。

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

    SELECT  
      PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)  
    From  
      [Default 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  
    
  6. 在 [檔案] 功能表上,按一下 [另存新檔 DMXQuery1.dmx]。

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

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

    此查詢會傳回包含三個產品的數據表:HL Mountain Tire、Fender Set - Mountain 和 ML Mountain Tire。 數據表會依機率順序列出這些傳回的產品。 最有可能包含在與查詢中指定的三個產品相同的購物車中傳回的產品會出現在數據表頂端。 接下來的兩個產品最有可能包含在購物車中。 此數據表也包含描述預測精確度的統計數據。

使用具有 0.01 MINIMUM_PROBABILITY的模型建立預測

建立關聯查詢

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

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

  3. 取代下列項目:

    <select list>   
    

    取代為:

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)  
    
  4. 取代下列項目:

    [<mining model>]   
    

    取代為:

    [Modified Association]  
    
  5. 取代下列項目:

    (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 陳述來指定三個必須放入購物車中的產品,與預測的產品一起。 [Model]陳述中的數據列會對應至巢狀產品數據表中的數據列。

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

    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  
    
  6. 在 [檔案] 功能表上,按一下 [另存新檔 DMXQuery1.dmx]。

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

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

    此查詢會傳回包含三個產品的數據表:HL Mountain Tire、Water Bottle 和 Fender Set - Mountain。 數據表會依機率順序列出這些產品。 出現在數據表頂端的產品是最有可能包含在與查詢中指定的三個產品相同的購物車中的產品。 其餘產品是下一個最有可能包含在購物車中的產品。 數據表也包含描述預測精確度的統計數據。

    您可以從此查詢的結果中看到 ,MINIMUM_PROBABILITY 參數的值會影響查詢傳回的結果。

這是購物籃教學課程的最後一個步驟。 您現在有一組模型,可用來預測客戶可能同時購買的產品。

若要瞭解如何在另一個預測案例中使用 DMX,請參閱 Bike Buyer DMX 教學課程

另請參閱

關聯模型查詢範例
數據採礦查詢介面