Share via


アソシエーションの予測 (中級者向けデータ マイニング チュートリアル)

 

対象: SQL Server 2016 Preview

モデルの処理が完了したら、モデルに格納されているアソシエーションに関する情報を使用して予測を作成できます。 このレッスンの最後の作業では、作成したアソシエーション モデルに対して予測クエリを作成する方法について学習します。 このレッスンは、予測クエリ ビルダーの使用方法について理解していることを前提に、アソシエーション モデルに対する予測クエリの作成方法について説明します。 詳細については予測クエリ ビルダーを使用する方法 データ マイニング クエリ ツールします。

単一予測クエリの作成

アソシエーション モデルに対する予測クエリは、次のようなときに、非常に役に立ちます。

  • 以前の購入または関連する購入に基づいて、製品を顧客に勧める。

  • 関連するイベントを検索する。

  • 取引のセット内の、またはそれらにまたがる関係を識別する。

予測クエリを作成するには、まず使用するアソシエーション モデルを選択し、次に入力データを指定します。 値の一覧などの外部データ ソースから入力を得ることも、単一クエリを作成して値を指定することもできます。

このシナリオでは、まずいくつかの単一予測クエリを作成して、予測がどのように機能するかについて確認します。 次に、顧客の現在の購入状況に基づいて提案を行う場合に使用するバッチ予測用のクエリを作成します。

アソシエーション モデルに対する予測クエリを作成するには

  1. クリックして、 マイニング モデル予測 データ マイニング デザイナーのタブをクリックします。

  2. マイニング モデルの ] ウィンドウで、をクリックして モデルの選択します。 (適切なモデルが既に選択されている場合は、この手順と次の手順をスキップできます)。

  3. マイニング モデルの選択 ] ダイアログ ボックスで、マイニング構造を表すノードを展開 アソシエーション, 、モデルを選択して アソシエーションします。 **[OK]**をクリックします。

ここでは、入力ペインは無視します。  
  1. グリッドで、下の空のセルをクリックして ソース 選択 予測関数です。 下のセルで フィールド, [ PredictAssociationします。

    使用することも、 Predict アソシエーションを予測する関数。 バージョンを選択することを確認するには、ある場合、 Predict 関数の引数としてテーブル列を取得します。

  2. マイニング モデルの ] ウィンドウで、入れ子になったテーブルを選択して vAssocSeqLineItems, に、グリッドにドラッグ、 条件と引数 のボックス、 PredictAssociation 関数です。

テーブル名と列名をドラッグ アンド ドロップすると、構文エラーを発生させずに複雑なステートメントを作成できます。 ただし、現在の他のオプションの引数を含むセルの内容を置き換えます、 **PredictAssociation** 関数です。 その他の引数を表示するには、関数の 2 番目のインスタンスを参照用として一時的にグリッドに追加します。  
  1. クリックして、 条件と引数 テーブル名の後、次のテキストを入力: ,3

    完全なテキスト、 条件と引数 ボックスは次のようになります。

    [Association].[v Assoc Seq Line Items],3

  2. クリックして、 結果 予測クエリ ビルダーの上隅でボタンをクリックします。

期待どおりの結果を含む 1 つの列見出しを含む します。 列には、1 つの列と次の 3 つの行を含む入れ子になったテーブルが含まれています。 入力値を指定していないため、これらの予測は、モデル全体で最も可能性の高い製品のアソシエーションを表します。

[モデル]
Women's Mountain Shorts
Water Bottle
Touring-3000

次に、使用する、 単一クエリ入力 その項目に関連付けられているウィンドウで、クエリへの入力として製品を指定し、可能性が最も高い製品を表示します。

入れ子になったテーブルの入力を使用する単一予測クエリを作成するには

  1. クリックして、 デザイン クエリ作成グリッドに戻るに予測クエリ ビルダーの隅にあるボタンをクリックします。

  2. マイニング モデルの メニューの [ 単一クエリします。

  3. マイニング モデルの ダイアログ ボックスで、 アソシエーション モデルです。

  4. グリッドで、下の空のセルをクリックして ソース 選択 予測関数です。 下のセルで フィールド, [ PredictAssociationします。

  5. マイニング モデルの ] ウィンドウで、入れ子になったテーブルを選択して vAssocSeqLineItems, に、グリッドにドラッグ、 条件と引数 のボックス、 PredictAssociation 関数です。 型 ,3 、前の手順と同じように入れ子になったテーブル名の後にします。

  6. 単一クエリ入力 ダイアログ ボックスで、をクリックして、 横のボックス vAssoc Seq Line Items, 、順にクリック、 (...) ] ボタンをクリックします。

  7. 入れ子になったテーブルの入力 ダイアログ ボックスで、 Touring Tire で、 キー列 ] ウィンドウで、クリックして 追加します。

  8. クリックして、 結果 ] ボタンをクリックします。

Touring Tire との関連が最も高い製品の予測が結果として表示されます。

[モデル]
Touring Tire Tube
Sport-100
Water Bottle

ただし、Touring Tire Tube が Touring Tire と一緒に購入されることが多いのは、モデルの調査から既にわかっています。それよりも関心があるのは、これらの製品を同時に購入した顧客にどの製品を提案できるかということです。 買い物かごに入っている 2 つの商品を基に関連する製品を予測するように、クエリを変更します。 また、予測された製品ごとに確率を追加するようにクエリを変更します。

単一予測クエリに入力と確率を追加するには

  1. クリックして、 デザイン クエリ作成グリッドに戻るに予測クエリ ビルダーの隅にあるボタンをクリックします。

  2. 単一クエリ入力 ダイアログ ボックスで、をクリックして、 横のボックス vAssoc Seq Line Items, 、順にクリック、 (...) ] ボタンをクリックします。

  3. キー列 ] ウィンドウの [ Touring Tire, 、クリックして 追加します。

  4. グリッドで、下の空のセルをクリックして ソース 選択 予測関数です。 下のセルで フィールド, [ PredictAssociationします。

  5. マイニング モデルの ] ウィンドウで、入れ子になったテーブルを選択して vAssocSeqLineItems, に、グリッドにドラッグ、 条件と引数 のボックス、 PredictAssociation 関数です。 型 ,3 、前の手順と同じように入れ子になったテーブル名の後にします。

  6. 入れ子になったテーブルの入力 ダイアログ ボックスで、 Touring Tire Tube で、 キー列 ] ウィンドウで、クリックして 追加します。

  7. グリッドの行のデータで、 PredictAssociation をクリックして、関数、 条件と引数 ボックス、および引数 INCLUDE_STATISTICS を追加する引数を変更します。

    完全なテキスト、 条件と引数 ボックスは次のようになります。

    [Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3

  8. クリックして、 結果 ] ボタンをクリックします。

入れ子になったテーブル内の結果が変更され、予測がサポートおよび確率と共に表示されます。 これらの値を解釈する方法の詳細については、次を参照してください。 マイニング モデル コンテンツのアソシエーション モデルと #40 です。Analysis Services - データ マイニング )します。

[モデル] $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY
Sport-100 4334 0.291… 0.252…
Water Bottle 2866 0.192… 0.175…
Patch Kit 2113 0.142… 0.132

結果の操作

結果に多数の入れ子になったテーブルが含まれている場合は、結果をフラット化して見やすくすることができます。 これを行うには、手動でクエリを変更して、追加することができます、 FLATTENED キーワードです。

予測クエリで入れ子になった行セットをフラット化するには

  1. クリックして、 SQL 予測クエリ ビルダーの隅にあるボタンをクリックします。

    グリッドが開いたペインに変わり、予測クエリ ビルダーで作成された DMX ステートメントを表示および変更できるようになります。

  2. 後に、 選択 キーワード、型 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  
    
  3. クリックして、 結果 予測クエリ ビルダーの上隅でボタンをクリックします。

クエリを手動で編集した後に [デザイン] ビューに戻ると、変更が失われることに注意してください。 クエリを保存する場合は、手動で作成した DMX ステートメントをテキスト ファイルにコピーします。 [デザイン] ビューに戻ると、クエリが [デザイン] ビューで有効であった最後のバージョンに戻ります。

複数の予測の作成

過去の購入記録を基に、各顧客に対して最も精度の高い予測を作成するとします。 予測クエリには、顧客 ID と最近購入した製品が記録されているテーブルなどの外部データを入力として使用できます。 その場合は、データ テーブルが Analysis Services データ ソース ビューとして既に定義されていることが条件となります。さらにモデルで使用されているものと同様のケース テーブルと入れ子になったテーブルが入力データに含まれている必要があります。 テーブル名が同じである必要はありませんが、構造は類似している必要があります。 このチュートリアルでは、モデルのトレーニングが行われた元のテーブルを使用します。

予測クエリの入力方法を変更するには

  1. マイニング モデルの メニューの [ 単一クエリ もう一度チェック マークをオフにします。

  2. 単一クエリが失われることを警告するエラー メッセージが表示されます。 **[はい]**をクリックします。

    入力ダイアログ ボックスの名前を変更する [入力テーブルのです。

顧客 ID と製品一覧を入力として提供する予測クエリを作成することが目的であるため、ケース テーブルとして顧客テーブルを、入れ子になったテーブルとして購入記録テーブルをそれぞれ追加します。 その後に、提案を作成するための予測関数を追加します。

入れ子になったテーブルの入力を使用する予測クエリを作成するには

  1. [マイニング モデル] ペインで、[Association Filtered] モデルを選択します。

  2. 入力テーブルの選択 ] ダイアログ ボックスをクリックして [ケース テーブルのです。

  3. テーブルの選択 ] ダイアログ ボックスの データソース, 、AdventureWorksDW2008 を選択します。 テーブル/ビュー名 ボックスの一覧を vAssocSeqOrders] を選択してクリックして OKします。

テーブル vAssocSeqOrders がペインに追加されます。  
  1. 入力テーブルの選択 ダイアログ ボックスで、をクリックして 入れ子になったテーブルの選択します。

  2. テーブルの選択 ] ダイアログ ボックスの データソース, 、AdventureWorksDW2008 を選択します。 テーブル/ビュー名 ボックスの一覧を vAssocSeqLineItems] を選択してクリックして OKします。

テーブル vAssocSeqLineItems がペインに追加されます。  
  1. 入れ子になった結合指定 ダイアログ ボックスで、ドラッグ、OrderNumber は、ケース テーブルからフィールドし、入れ子になったテーブルの [OrderNumber] フィールドにドロップします。
クリックすることも **リレーションシップの追加** し、一覧から列を選択してリレーションシップを作成します。  
  1. リレーションシップの指定 ] ダイアログ ボックスで、[OrderNumber] フィールドは正しくマップされます] をクリックし、ことを確認 **[ok]**します。

  2. をクリックして OK を閉じる、 入れ子になった結合の指定 ] ダイアログ ボックス。

    ケース テーブルと入れ子になったテーブルがデザイン ペインで更新され、外部データの列とモデル内の列を結ぶ結合が表示されます。 リレーションシップが正しくない場合は、結合線を右クリックし、選択 接続の変更 列の編集をマッピングかできる結合線を右クリックを選択 削除 リレーションシップを完全に削除します。

  3. グリッドに新しい行を追加します。 ソース, [ vAssocSeqOrders テーブルします。 フィールド, 、CustomerKey] を選択します。

  4. グリッドに新しい行を追加します。 ソース, [ vAssocSeqOrders テーブルします。 フィールド, 、リージョンを選択します。

  5. グリッドに新しい行を追加します。 ソース, を選択 予測関数, 、および フィールド, [ PredictAssociationします。

  6. VAssocSeqLineItems、ドラッグ、 条件と引数 のボックス、 PredictAssociation 行です。 末尾をクリックして、 条件と引数 ボックスし、次のテキストを入力: INCLUDE_STATISTICS, 3

    完全なテキスト、 条件と引数 ボックス必要があります。 [Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3

  7. クリックして、 結果 を顧客ごとの予測を表示するボタンをクリックします。

同様の予測クエリを複数のモデルに対して作成し、フィルター処理によって予測結果が変わるかどうかを確認してみてください。 予測およびその他の種類のクエリの作成方法の詳細については、次を参照してください。 アソシエーション モデルのクエリ例します。

参照

アソシエーション モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)
PredictAssociation (DMX)
予測クエリ ビルダーを使用した予測クエリの作成