レッスン 4: マーケット バスケット予測の実行
対象: SQL Server 2016 Preview
このレッスンでは、DMX を使用して 選択 関連付けに基づく予測を作成するステートメントをモデル化で作成した レッスン 2: Market Basket マイニング構造にマイニング モデルを追加するです。 DMX を使用して、予測クエリを作成 選択 ステートメントと追加、 PREDICTION JOIN 句。 予測結合の構文の詳細については、次を参照してください。 SELECT FROM <";"モデル"&"#62 です。予測結合 #40; DMX )します。
SELECT FROM PREDICTION JOIN の形式、 選択 ステートメントには、3 つの部分が含まれています。
結果セットで返される、マイニング モデル列と予測関数の一覧。 この一覧にはソース データからの入力列を含めることもできます。
予測の作成に使用するデータを定義するソース クエリ。 たとえば、多数の予測をバッチで作成する場合、ソース クエリで顧客の一覧を取得できます。
マイニング モデル列とソース データ間のマッピング。 列の名前が同じ場合使用して、 NATURAL PREDICTION JOIN 構文列マッピングを省略します。
予測関数を使用すると、クエリを改良できます。 予測関数では、予測が発生する可能性などの追加の情報や、トレーニング データセットでの予測サポートが提供されます。 予測関数の詳細については、次を参照してください。 関数 #40; DMX )します。
SQL Server Data Tools (SSDT) で予測クエリ ビルダーを使用して、予測クエリを作成することもできます。
単一 PREDICTION JOIN ステートメント
使用して、単一クエリを作成するには、まず、 SELECT FROM PREDICTION JOIN 構文と値のセットを入力として 1 つを指定します。 単一ステートメントの汎用例を次に示します。
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 が設定されたモデルを使用した予測の作成
アソシエーション クエリを作成するには
オブジェクト エクスプ ローラー, のインスタンスを右クリックして Analysis Services, 、] をポイント 新しいクエリ, 、] をクリックし、 DMX クエリ エディターを開きます。
汎用例をコピー、 PREDICTION JOIN ステートメントは空のクエリにします。
次の部分を探します。
<select list>
これを次の文字列に置き換えます。
PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
同じ列名 [Products] を含めることができますを使用して、 Predict #40; DMX ) 関数の場合、3 つに、アルゴリズムによって返される製品の数を制限することができます。 使用することも INCLUDE_STATISTICS, 、サポート、確率、および各製品の調整済みの確率が返されます。 これらの統計は、予測の精度を評価するときに役立ちます。
次の部分を探します。
[<mining model>]
これを次の文字列に置き換えます。
[Default 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
このステートメントを使用して、 共用体 ステートメント、予測された製品と共にショッピング カートに含める必要がある 3 つの製品を指定します。 内の 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
ファイル ] メニューのをクリックして 付けて DMXQuery1.dmx を保存します。
名前を付けて保存 ダイアログ ボックスで、適切なフォルダーに移動し、ファイル名 Association Prediction.dmxします。
ツールバーで、 Execute ] ボタンをクリックします。
クエリによって、HL Mountain Tire、Fender Set - Mountain、ML Mountain Tire の 3 つの製品が含まれたテーブルが返されます。 テーブルには、返された製品が確率の順に表示されます。 返された製品のうち、クエリで指定した 3 つの製品と同じショッピング カートに入っている可能性の最も高いものが、テーブルの一番上に表示されます。 続いて表示される 2 つは、ショッピング カートに入っている可能性が次に高い製品です。 さらに、このテーブルには、予測の精度を表す統計も含まれます。
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
このステートメントを使用して、 共用体 ステートメント、予測された製品と共にショッピング カートに含める必要がある 3 つの製品を指定します。
[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
ファイル ] メニューのをクリックして 付けて DMXQuery1.dmx を保存します。
名前を付けて保存 ダイアログ ボックスで、適切なフォルダーに移動し、ファイル名 変更 Association Prediction.dmxします。
ツールバーで、 Execute ] ボタンをクリックします。
クエリによって、HL Mountain Tire、Water Bottle、Fender Set - Mountain の 3 つの製品が含まれたテーブルが返されます。 テーブルには、これらの製品が確率の順に表示されます。 テーブルの一番上に表示されるのは、クエリで指定した 3 つの製品と同じショッピング カートに入っている可能性の最も高い製品です。 それ以外は、ショッピング カートに入っている可能性が次に高い製品です。 テーブルには、予測の精度を示す統計情報も含まれます。
わかるように、このクエリの結果の値、 MINIMUM_PROBABILITY パラメーターがクエリによって返される結果に影響します。
これで、マーケット バスケットのチュートリアルの最後の手順が終了します。 このチュートリアルでは、同時に購入される可能性がある製品を予測するときに使用できる、モデルのセットを作成しました。
別の予測シナリオで DMX を使用する方法については、次を参照してください。 Bike Buyer DMX のチュートリアルします。