レッスン 4: マーケット バスケット予測の実行

新規 : 2005 年 12 月 5 日

このレッスンでは、SELECT ステートメントを SELECT FROM <model> PREDICTION JOIN (DMX) の形式で使用して、「レッスン 2: Market Basket マイニング構造へのマイニング モデルの追加」で作成したアソシエーション モデルに基づく予測を作成します。これらの予測の種類は、下で定義します。

SELECT FROM <model> PREDICTION JOIN (DMX) の形式の SELECT ステートメントは、次の 3 つの部分で構成されます。

  • 結果セットで返される、マイニング モデル列と予測関数の一覧。これにはソース データからの入力列を含めることもできます。
  • 予測の作成に使用するデータを定義しているソース クエリ。たとえば、バッチ クエリの場合は顧客の一覧などが該当します。
  • マイニング モデル列とソース データ間のマッピング。これらの名前が同じ場合は、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>]

コードの第 1 行では、クエリが返すマイニング モデルの列と、予測の生成に使用するマイニング モデルを定義します。

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 が設定されたモデルを使用した予測の作成

アソシエーション クエリを作成するには

  1. オブジェクト エクスプローラで、Analysis Services インスタンスを右クリックし、[新しいクエリ] をポイントして [DMX] をクリックします。

    クエリ エディタが開き、新しい空のクエリが表示されます。

  2. 上の PREDICTION JOIN ステートメントの汎用例を空のクエリにコピーします。

  3. 次の部分を探します。

    <select list> 
    

    これを次の文字列に置き換えます。

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

    ここでは、列名 [Products] だけを含めることも、Predict 関数を使用して、アルゴリズムからツリーに返される製品数を制限することもできます。さらに、INCLUDE_STATISTICS を使用して、製品ごとのサポート、確率、および調整済みの確率を返すこともできます。これらの統計は、予測の精度を評価するときに役立ちます。

  4. 次の部分を探します。

    [<mining model>] 
    

    これを次の文字列に置き換えます。

    [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 ステートメントを使用して、予測された製品と共にショッピング カートに含まれる 3 つの製品を指定します。SELECT ステートメント内の Model 列は、入れ子になった製品テーブル内のモデル列に対応しています。

    最終的なステートメントは次のようになります。

    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
    
  6. [ファイル] メニューで、[名前を付けて DMXQuery1.dmx を保存] をクリックします。

  7. [名前を付けて保存] ダイアログ ボックスで、適切なフォルダを参照して指定し、ファイルに「Association Prediction.dmx」という名前を付けます。

  8. ツール バーの [実行] ボタンをクリックします。

    クエリが実行され、3 つの製品 (HL マウンテン タイヤ、マウンテンのフェンダー セット、および ML マウンテン タイヤ) が含まれるテーブルが返されます。製品は、クエリで指定した 3 つの製品と同じショッピング カートに入っている可能性が高い順に示されます。さらに、このテーブルには、予測の精度を表す統計も含まれます。

MINIMUM_PROBABILITY が 0.01 に設定されたマイニング モデルを使用した予測の作成

アソシエーション クエリを作成するには

  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 ステートメントを使用して、予測された製品と共にショッピング カートに含まれる 3 つの製品を指定します。SELECT ステートメント内の 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. ツール バーの [実行] ボタンをクリックします。

    クエリが実行され、3 つの製品 (HL マウンテン タイヤ、水筒、およびマウンテンのフェンダー セット) が含まれるテーブルが返されます。製品は、クエリで指定した 3 つの製品と同じショッピング カートに入っている可能性が高い順に示されます。さらに、このテーブルには、予測の精度を表す統計も含まれます。

    このクエリの結果を見ると、MINIMUM_PROBABILITY パラメータの値によって結果が異なることがわかります。

これで、マーケット バスケットのチュートリアルの最後の手順が終了します。このチュートリアルでは、同時に購入されるの可能性が高い製品の種類を予測するときに使用できる、モデルのセットを作成しました。

別の予測シナリオで DMX を使用する方法については、「Bike Buyer DMX のチュートリアル」を参照してください。