モデルが処理されたら、モデルに格納されている関連付けに関する情報を使用して予測を作成できます。 このレッスンの最後のタスクでは、作成した関連付けモデルに対して予測クエリを作成する方法について説明します。 このレッスンでは、予測クエリ ビルダーの使用方法を理解していることと、関連付けモデルに対して予測クエリを作成する方法を学習することを前提としています。 予測クエリ ビルダーの使用方法の詳細については、「 データ マイニング クエリ インターフェイス」を参照してください。
シングルトン予測クエリの作成
アソシエーション モデルに対する予測クエリは、次のように非常に役立ちます。
以前または関連する購入に基づいて、顧客にアイテムを推奨する
関連するイベントを検索します。
トランザクションの 1 つのセット内または複数のセット間のリレーションシップを識別します。
予測クエリを作成するには、まず使用する関連付けモデルを選択してから、入力データを指定します。 入力は、値の一覧などの外部データ ソースから取得することも、シングルトン クエリを作成して値を指定することもできます。
このシナリオでは、最初にいくつかのシングルトン予測クエリを作成して、予測のしくみを把握します。 次に、顧客の現在の購入に基づいて推奨事項を作成するために使用できるバッチ予測のクエリを作成します。
関連付けモデルに対して予測クエリを作成するには
データ マイニング デザイナーの [ マイニング モデル予測 ] タブをクリックします。
[ マイニング モデル ] ウィンドウで、[ モデルの選択] をクリックします。 (正しいモデルが既に選択されている場合は、この手順と次の手順をスキップできます)。
[ マイニング モデルの選択 ] ダイアログ ボックスで、マイニング構造の 関連付けを表すノードを展開し、モデルの 関連付けを選択します。 OK をクリックします。
ここでは、入力ウィンドウを無視できます。
グリッドで、[ ソース ] の下にある空のセルをクリックし、[ 予測関数 ] を選択します。[ フィールド] のセルで、[
PredictAssociation] を選択します。Predict 関数を 使用して、関連付けを予測することもできます。 その場合は、テーブル列を引数として受け取る Predict 関数のバージョンを必ず選択してください。
[マイニング モデル] ウィンドウで、入れ子になったテーブル
vAssocSeqLineItemsを選択し、グリッド内のPredictAssociation関数の [抽出条件/引数] ボックスにドラッグします。テーブル名と列名をドラッグ アンド ドロップすると、構文エラーなしで複雑なステートメントを作成できます。 ただし、セルの現在の内容が置き換えられます。これには、
PredictAssociation関数の他の省略可能な引数が含まれます。 他の引数を表示するには、関数の 2 番目のインスタンスを参照用のグリッドに一時的に追加します。[ 抽出条件/引数 ] ボックスをクリックし、テーブル名の後に次のテキストを入力します。
,3[ 抽出条件/引数 ] ボックスの完全なテキストは次のようになります。
[Association].[v Assoc Seq Line Items],3予測クエリ ビルダーの右上隅にある [ 結果 ] ボタンをクリックします。
予想される結果には、 式という見出しを持つ 1 つの列が含まれます。 式列には、1 つの列と次の 3 つの行を含む入れ子になったテーブルが含まれています。 入力値を指定していないため、これらの予測は、モデル全体の最も可能性の高い製品の関連付けを表します。
| モデル |
|---|
| ウィメンズ マウンテン ショーツ |
| 水筒 |
| Touring-3000 |
次に、[ Singleton Query Input]\(シングルトン クエリ入力 \) ペインを使用して、クエリへの入力として製品を指定し、そのアイテムに関連付けられている可能性が最も高い製品を表示します。
入れ子になったテーブル入力を使用してシングルトン予測クエリを作成するには
予測クエリ ビルダーの隅にある [ デザイン ] ボタンをクリックして、クエリ作成グリッドに戻ります。
[ マイニング モデル ] メニューの [ シングルトン クエリ] を選択します。
[ マイニング モデル ] ダイアログ ボックスで、[ 関連付け モデル] を選択します。
グリッドで、[ ソース ] の下にある空のセルをクリックし、[ 予測関数 ] を選択します。[ フィールド] のセルで、[
PredictAssociation] を選択します。[マイニング モデル] ウィンドウで、入れ子になったテーブル
vAssocSeqLineItemsを選択し、グリッド内のPredictAssociation関数の [抽出条件/引数] ボックスにドラッグします。 前の手順と同様に、入れ子になったテーブル名の後に,3を入力します。[Singleton Query Input]\(シングルトン クエリ入力\) ダイアログ ボックスで、vAssoc Seq Line Items の横にある [値] ボックスをクリックし、[(...)] ボタンをクリックします。
[c0]入れ子テーブル入力[/c0] ダイアログ ボックスの [c2]キー列[/c2] ペインで
Touring Tireを選択し、[c3]追加[/c3] をクリックします。[結果] ボタンをクリックします。
結果には、ツーリング タイヤに関連している可能性が最も高い製品の予測が表示されるようになりました。
| モデル |
|---|
| ツーリング用タイヤチューブ |
| Sport-100 |
| 水筒 |
しかし、あなたはすでに、ツーリングタイヤチューブが頻繁にツーリングタイヤと一緒に購入されていることを、モデルを探索することによって知っています。あなたは、これらの商品を一緒に購入している顧客に推奨できる製品を知ることにより興味があります。 バスケット内の 2 つの項目に基づいて関連製品を予測するようにクエリを変更します。 また、予測された各製品の確率を追加するようにクエリを変更します。
シングルトン予測クエリに入力と確率を追加するには
予測クエリ ビルダーの隅にある [ デザイン ] ボタンをクリックして、クエリ作成グリッドに戻ります。
[Singleton Query Input]\(シングルトン クエリ入力\) ダイアログ ボックスで、vAssoc Seq Line Items の横にある [値] ボックスをクリックし、[(...)] ボタンをクリックします。
[ キー列 ] ウィンドウで、[
Touring Tire] を選択し、[ 追加] をクリックします。グリッドで、[ ソース ] の下にある空のセルをクリックし、[ 予測関数 ] を選択します。[ フィールド] のセルで、[
PredictAssociation] を選択します。[マイニング モデル] ウィンドウで、入れ子になったテーブル
vAssocSeqLineItemsを選択し、グリッド内のPredictAssociation関数の [抽出条件/引数] ボックスにドラッグします。 前の手順と同様に、入れ子になったテーブル名の後に,3を入力します。[入れ子テーブル入力] ダイアログ ボックスの [キー列] ペインで
Touring Tire Tubeを選択し、[追加] をクリックします。グリッドの
PredictAssociation関数の行で、[ 抽出条件/引数 ] ボックスをクリックし、引数を変更して、INCLUDE_STATISTICS という引数を追加します。[ 抽出条件/引数 ] ボックスの完全なテキストは次のようになります。
[Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3[結果] ボタンをクリックします。
入れ子になったテーブルの結果が変化し、サポートと確率と共に予測が表示されるようになりました。 これらの値を解釈する方法の詳細については、「 関連付けモデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。
| モデル | サポート | $PROBABILITY | $ADJUSTEDPROBABILITY |
|---|---|---|---|
| Sport-100 | 4334 | 0.291... | 0.252... |
| 水筒 | 2866 | 0.192... | 0.175... |
| パッチ キット | 2113 | 0.142... | 0.132 |
結果の取り扱い
結果に入れ子になったテーブルが多数ある場合は、表示しやすくするために結果をフラット化できます。 これを行うには、クエリを手動で変更し、 FLATTENED キーワードを追加します。
予測クエリで入れ子になった行セットをフラット化するには
予測クエリ ビルダーの隅にある [SQL ] ボタンをクリックします。
グリッドが開いているペインに変わり、予測クエリ ビルダーによって作成された DMX ステートメントを表示および変更できます。
SELECTキーワードの後に、「FLATTENED」と入力します。クエリの完全なテキストは次のようになります。
SELECT FLATTENED PredictAssociation([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,3) FROM [Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Touring Tire' AS [Model] UNION SELECT 'Touring Tire Tube' AS [Model]) AS [v Assoc Seq Line Items]) AS t予測クエリ ビルダーの右上隅にある [ 結果 ] ボタンをクリックします。
クエリを手動で編集した後は、変更を失わずにデザイン ビューに切り替えることができないことに注意してください。 クエリを保存する場合は、手動で作成した DMX ステートメントをテキスト ファイルにコピーできます。 デザイン ビューに戻ると、クエリはデザイン ビューで有効だった最新バージョンに戻ります。
複数の予測の作成
過去の購入に基づいて、個々の顧客に最適な予測を知りたいとします。 顧客 ID や最新の製品購入を含むテーブルなど、予測クエリへの入力として外部データを使用できます。 要件は、データ テーブルが Analysis Services データ ソース ビューとして既に定義されていることです。さらに、入力データには、モデルで使用されるケース テーブルやネストされたテーブルが含まれている必要があります。 同じ名前を持つ必要はありませんが、構造は似ている必要があります。 このチュートリアルでは、モデルがトレーニングされた元のテーブルを使用します。
予測クエリの入力方法を変更するには
[ マイニング モデル ] メニューの [シングルトン クエリ ] をもう一度選択して、チェック マークをオフにします。
シングルトン クエリが失われることを警告するエラー メッセージが表示されます。 [はい] をクリックします。
入力ダイアログ ボックスの名前が [ 入力テーブルの選択] に変わります。
顧客 ID と製品の一覧を入力として提供する予測クエリを作成することに関心があるため、顧客テーブルをケース テーブルとして追加し、購入テーブルを入れ子になったテーブルとして追加します。 次に、予測関数を追加して推奨事項を作成します。
入れ子になったテーブル入力を使用して予測クエリを作成するには
[マイニング モデル] ウィンドウで、[関連付けフィルター処理済みモデル] を選択します。
[ 入力テーブルの選択 ] ダイアログ ボックスで、[ ケース テーブルの選択] をクリックします。
[ テーブルの選択 ] ダイアログ ボックスの [ データ ソース] で、[AdventureWorksDW2008] を選択します。 [テーブル/ビュー名] ボックスの一覧で vAssocSeqOrders を選択し、[OK] をクリックします。
テーブル vAssocSeqOrders がペインに追加されます。
[ 入力テーブルの選択 ] ダイアログ ボックスで、[ 入れ子になったテーブルの選択] をクリックします。
[ テーブルの選択 ] ダイアログ ボックスの [ データ ソース] で、[AdventureWorksDW2008] を選択します。 [テーブル/ビュー名] ボックスの一覧で [vAssocSeqLineItems] を選択し、[OK] をクリックします。
テーブル vAssocSeqLineItems がペインに追加されます。
[ 入れ子になった結合の指定 ] ダイアログ ボックスで、ケース テーブルから OrderNumber フィールドをドラッグし、入れ子になったテーブルの OrderNumber フィールドにドロップします。
[ リレーションシップの追加 ] をクリックし、一覧から列を選択してリレーションシップを作成することもできます。
[ リレーションシップの指定 ] ダイアログ ボックスで、[OrderNumber] フィールドが正しくマップされていることを確認し、[OK] をクリック します。
[ OK] を クリックして [ 入れ子になった結合の指定 ] ダイアログ ボックスを閉じます。
ケース テーブルと入れ子になったテーブルがデザイン ウィンドウで更新され、外部データ列をモデル内の列に接続する結合が表示されます。 リレーションシップが間違っている場合は、結合行を右クリックして [接続の変更 ] を選択して列マッピングを編集するか、結合行を右クリックして [削除 ] を選択してリレーションシップを完全に削除できます。
グリッドに新しい行を追加します。 [ソース] で、vAssocSeqOrders テーブルを選択します。 [フィールド] で、[CustomerKey] を選択します。
グリッドに新しい行を追加します。 [ソース] で、vAssocSeqOrders テーブルを選択します。 [フィールド] で[リージョン]を選択します。
グリッドに新しい行を追加します。 [ソース] で [予測関数] を選択し、[フィールド] で [
PredictAssociationを選択します。PredictAssociation行の抽出条件/引数ボックスに vAssocSeqLineItems をドラッグします。 [ 抽出条件/引数 ] ボックスの末尾をクリックし、次のテキストを入力します。INCLUDE_STATISTICS,3[ 抽出条件/引数 ] ボックスの完全なテキストは次のようになります。
[Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3[ 結果 ] ボタンをクリックして、各顧客の予測を表示します。
フィルター処理によって予測結果が変更されるかどうかを確認するために、複数のモデルに対して同様の予測クエリを作成してみてください。 予測とその他の種類のクエリの作成の詳細については、「 アソシエーション モデル クエリの例」を参照してください。
こちらもご覧ください
関連付けモデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)
PredictAssociation (DMX)
予測クエリ ビルダーを使用して予測クエリを作成する