マイニング モデルの精度をテストし、結果に満足していると判断したら、データ マイニング デザイナーの [ マイニング モデル 予測] タブで予測クエリ ビルダーを使用して予測を生成できます。
予測クエリ ビルダーには、3 つのビューがあります。 [デザイン] ビューと [クエリ] ビューを使用すると、クエリをビルドして調べることができます。 その後、クエリを実行し、 結果 ビューで結果を表示できます。
すべての予測クエリでは DMX が使用されます。これは、データ マイニング拡張機能 (DMX) 言語の略です。 DMX には T-SQL のような構文がありますが、データ マイニング オブジェクトに対するクエリに使用されます。 DMX 構文は複雑ではありませんが、このようなクエリ ビルダーや OFFICE 用 SQL Server データ マイニング Add-Ins のクエリ ビルダーを使用すると、入力の選択と式の作成がはるかに簡単になるため、基本を学習することを強くお勧めします。
クエリの作成
予測クエリを作成する最初の手順は、マイニング モデルと入力テーブルを選択することです。
モデルと入力テーブルを選択するには
データ マイニング デザイナーの [ マイニング モデル予測 ] タブの [ マイニング モデル ] ボックスで、[ モデルの選択] をクリックします。
[ マイニング モデルの選択 ] ダイアログ ボックスで、ツリー内を移動して 対象の宛名 構造に移動し、構造を展開し、
TM_Decision_Treeを選択して、[ OK] をクリックします。[ 入力テーブルの選択 ] ボックスで、[ ケース テーブルの選択] をクリックします。
[ テーブルの選択 ] ダイアログ ボックスの [データ ソース ] ボックスの一覧で、データ ソース ビュー Adventure Works DW 多次元 2012 を選択します。
[テーブル/ビュー名] で、ProspectiveBuyer (dbo) テーブルを選択し、[OK] をクリックします。
ProspectiveBuyerテーブルは、vTargetMail ケース テーブルによく似ています。
列のマッピング
入力テーブルを選択すると、予測クエリ ビルダーは、列の名前に基づいて、マイニング モデルと入力テーブルの間に既定のマッピングを作成します。 構造体の少なくとも 1 つの列が外部データの列と一致している必要があります。
重要
モデルの精度を判断するために使用するデータには、予測可能な列にマップできる列が含まれている必要があります。 このような列が存在しない場合は、空の値を持つ列を作成できますが、予測可能な列と同じデータ型が必要です。
入力をモデルにマップするには
[マイニング モデル] ウィンドウを [入力テーブルの選択] ウィンドウに接続する線を右クリックし、[接続の変更] を選択します。
すべての列がマップされているわけではないことに注意してください。 いくつかの テーブル列のマッピングを追加します。 また、現在の日付列に基づいて新しい生年月日列を生成し、列の一致が向上します。
[ テーブル列] の [
Bike Buyer] セルをクリックし、ドロップダウンから [ProspectiveBuyer.Unknown] を選択します。これにより、予測可能列 [Bike Buyer] が入力テーブル列にマップされます。
OK をクリックします。
ソリューション エクスプローラーで、[ターゲットメーリング] データ ソース ビューを右クリックし、[ビュー デザイナー] を選択します。
テーブル [ProspectiveBuyer] を右クリックし、[ 新しい名前付き計算] を選択します。
[ 名前付き計算の作成 ] ダイアログ ボックスで、[ 列名] に「
calcAge」と入力します。[ 説明] に「 生年月日に基づいて年齢を計算する」と入力します。
式ボックスに「
DATEDIFF(YYYY,[BirthDate],getdate())」と入力し、[OK] をクリックします。入力テーブルにはモデル内の列に対応する Age 列がないため、この式を使用して、入力テーブルの BirthDate 列から顧客の年齢を計算できます。 年齢は自転車購入を予測するための最も影響力のある列として識別されたので、モデルと入力テーブルの両方に存在する必要があります。
データ マイニング デザイナーで、[ マイニング モデル予測 ] タブを選択し、[接続の 変更 ] ウィンドウを再度開きます。
[ テーブル列] の [ Age ] セルをクリックし、ドロップダウンから [ProspectiveBuyer.calcAge] を選択します。
警告
一覧に列が表示されない場合は、デザイナーに読み込まれたデータ ソース ビューの定義を更新する必要があります。 これを行うには、[ ファイル ] メニューから [ すべて保存] を選択し、デザイナーでプロジェクトを閉じて再度開きます。
OK をクリックします。
予測クエリの設計
[ マイニング モデルの予測 ] タブのツール バーの最初のボタンは、[ デザイン ビューに切り替える] / [結果ビューに切り替える] / [クエリ ビューに切り替える] ボタンです。 このボタンの下矢印をクリックし、[ デザイン] を選択します。
[ マイニング モデル予測 ] タブのグリッドで、[ ソース ] 列の最初の空の行にあるセルをクリックし、[ 予測関数] を選択します。
[ 予測関数 ] 行の [フィールド ] 列で、
PredictProbabilityを選択します。同じ行の [エイリアス ] 列に、「 結果の確率」と入力します。
上の [マイニング モデル ] ウィンドウで、[Bike Buyer] を選択し、[ 抽出条件/引数 ] セルにドラッグします。
終了すると、[TM_Decision_Tree]。[Bike Buyer] が 抽出条件/引数 セルに表示されます。
これは、
PredictProbability関数のターゲット列を指定します。 関数の詳細については、「 データ マイニング拡張機能 (DMX) 関数リファレンス」を参照してください。[ ソース ] 列の次の空の行をクリックし、マイニング モデル TM_Decision_Tree 選択します。
TM_Decision_Tree行の [フィールド] 列で、Bike Buyerを選択します。TM_Decision_Tree行の [抽出条件]/[引数] 列に、「=1」と入力します。[ ソース ] 列の次の空の行をクリックし、[ ProspectiveBuyer] テーブルを選択します。
ProspectiveBuyer行の [フィールド] 列で、[ProspectiveBuyerKey] を選択します。これにより、予測クエリに一意の識別子が追加され、自転車を購入する可能性がある人とない人を識別できます。
グリッドにさらに 5 つの行を追加します。 各行で、[ソース] として [ProspectiveBuyer] テーブルを選択し、[フィールド] セルに次の列を追加します。
calcAge
苗字
ファーストネーム
AddressLine1
AddressLine2
最後に、クエリを実行し、結果を参照します。
予測クエリ ビルダーには、次のコントロールも含まれています。
[表示 ] チェック ボックス
デザイナーから句を削除する必要なく、クエリから句を除去できます。 これは、複雑なクエリを操作していて、DMX をコピーしてウィンドウに貼り付けなくても構文を保持したい場合に便利です。
グループ
選択した行の先頭に左かっこ(開き)を挿入するか、現在の行の末尾に右かっこ(閉じ)を挿入します。
や
現在の関数または列の直後に、
AND演算子またはOR演算子を挿入します。
クエリを実行して結果を表示するには
[ マイニング モデル予測 ] タブで、[ 結果 ] ボタンを選択します。
クエリが実行され、結果が表示されたら、結果を確認できます。
[ マイニング モデルの予測 ] タブには、自転車購入者である可能性が高い潜在顧客の連絡先情報が表示されます。 結果列の確率は、予測が正しい確率を示します。 これらの結果を使用して、メーリングの対象となる潜在顧客を決定できます。
この時点で、結果を保存できます。 次の 3 つのオプションがあります。
結果のデータ行を右クリックし、[ コピー ] を選択して、その値 (および列見出し) のみをクリップボードに保存します。
結果の任意の行を右クリックし、[ すべてコピー ] を選択して、列見出しを含む結果セット全体をクリップボードにコピーします。
[ クエリ結果の保存] をクリックして、次のように結果をデータベースに直接保存します。
[ データ マイニング クエリ結果の保存 ] ダイアログ ボックスで、データ ソースを選択するか、新しいデータ ソースを定義します。
クエリ結果を含むテーブルの名前を入力します。
[ DSV に追加] オプションを使用してテーブルを作成し、既存のデータ ソース ビューに追加します。 これは、トレーニング データ、予測ソース データ、クエリ結果など、モデルのすべての関連テーブルを同じデータ ソース ビューに保持する場合に便利です。
既存のテーブルを最新の結果で更新するには、[ 存在する場合は上書き] オプションを使用します。
予測クエリに列を追加した場合、予測クエリ内の列の名前またはデータ型を変更した場合、または変換先テーブルで ALTER ステートメントを実行した場合は、テーブルを上書きするオプションを使用する必要があります。
また、複数の列に同じ名前 (既定の列名 式など) がある場合は、重複する名前を持つ列のエイリアスを作成する必要があります。または、デザイナーが結果を SQL Server に保存しようとするとエラーが発生します。 その理由は、SQL Server では複数の列に同じ名前を付けないようにするためです。
詳細については、「 データ マイニング クエリの結果の保存」 ダイアログ ボックス (マイニング モデル予測ビュー) を参照してください。
このレッスンの次の作業
構造データでのドリルスルーの使用 (基本的なデータ マイニング チュートリアル)