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