モデルへの予測関数の適用
予測クエリを作成するには、クエリの基になるマイニング モデルを選択する必要があります。 現在のプロジェクトに存在するマイニング モデルを選択できます。
モデルを選択した後は、クエリに予測関数を追加します。 予測関数はさまざまな目的で使用されることを理解しておくことが重要です。値の予測だけでなく、関連する統計や、予測の生成に使用された情報も取得できます。 予測関数は、次の種類の値を返すことができます。
予測可能な属性の名前と、予測された値。
予測値の分布と分散に関する統計。
指定した結果、またはすべての可能な結果の確率。
トップ (最高) またはボトム (最低) のスコアまたは値。
指定したノード、オブジェクト、または属性に関連付けられた値。
使用できる予測関数は多種多様ですが、作成したモデルの種類に適した関数を選択する必要があります。 通常、この選択は、モデルの作成に使用したアルゴリズムによって異なります。
ほぼすべてのモデルの種類でサポートされている予測関数の一覧については、「一般的な予測関数 (DMX)」を参照してください。
さらに、個々のアルゴリズムは、さまざまな特別な関数をサポートしています。 たとえば、Microsoft クラスタリング アルゴリズムに基づくマイニング モデルを作成する場合は、クラスターに関する情報 (データ値からクラスター重心までの距離など) を取得するための特別な予測関数を使用できます。
特定の種類のマイニング モデルに対するクエリの実行方法の例については、「データ マイニング アルゴリズム (Analysis Services - データ マイニング)」のアルゴリズム リファレンス トピックを参照してください。
予測に使用するマイニング モデルの選択
SQL Server Management Studio でモデルを右クリックし、[予測クエリの作成] を選択します。
-- または --
SQL Server データ ツール (SSDT) で [マイニング モデル予測] タブをクリックし、[マイニング モデル] テーブルの [モデルの選択] をクリックします。
[マイニング モデルの選択] ダイアログ ボックスでマイニング モデルを選択し、[OK] をクリックします。
現在の Analysis Services データベース内の任意のモデルを選択できます。 別のデータベース内のモデルを使用してクエリを作成するには、そのデータベースのコンテキストで新しいクエリ ウィンドウを開くか、そのモデルを含んでいるソリューション ファイルを開く必要があります。
クエリへの予測関数の追加
[予測クエリ ビルダー] で、[単一クエリ入力] ダイアログ ボックスで値を指定するか、モデルを外部データ ソースにマップして、予測に使用する入力データを構成します。
詳細については、「予測クエリの入力データの選択およびマップ」を参照してください。
注意 予測を生成するための入力を用意する必要はありません。 入力がない場合は、通常、アルゴリズムがすべての可能な入力を通じて最も可能性の高い予測値を返します。
[ソース] 列をクリックし、一覧から値を選択します。
<モデル名>
このオプションを選択すると、マイニング モデルの値が結果に含められます。 予測可能な列のみを追加できます。
モデルから列を追加すると、返される結果はその列の値の個別でないリストになります。
このオプションで追加する列は、作成される DMX ステートメントの SELECT 部分に含まれます。
予測関数
このオプションを選択すると、予測関数の一覧を参照できます。
選択した値または関数は、作成される DMX ステートメントの SELECT 部分に追加されます。
予測関数の一覧が、選択したモデルの種類によってフィルター処理や制限を受けることはありません。 そのため、現在のモデルの種類で関数がサポートされていることが確実でない場合は、関数を一覧に追加して、エラーが起きないかどうかを確認します。
$ で始まる一覧の項目 ($AdjustedProbability など) は、関数の PredictHistogram を使用した場合の結果である、入れ子になったテーブルの列を表しています。 これらは、入れ子になったテーブルの代わりに単一の列を返すために使用できるショートカットです。
カスタム式
このオプションを選択すると、カスタム式を入力し、結果に別名を割り当てることができます。
カスタム式は、作成される DMX 予測クエリの SELECT 部分に追加されます。
このオプションは、各行で結果のためのテキストを追加して、VB 関数やカスタム ストアド プロシージャを呼び出す場合に便利です。
DMX から VBA および Excel 関数を使用する方法の詳細については、「MDX および DAX での VBA 関数」を参照してください。
各関数または式の追加後は、DMX ビューに切り替えて、関数がどのように DMX ステートメント内に追加されたかを確認します。
注意 予測クエリ ビルダーでは、[結果] をクリックするまで、DMX は検証されません。 クエリ ビルダーによって生成された式は、有効な DMX でないことがよくあります。 主な原因は、予測可能列に関連付けられていない列の参照や、入れ子になったテーブル内の列の予測 (サブ SELECT ステートメントが必要) です。 この時点で、DMX ビューに切り替えて、ステートメントの編集を続行できます。
例: クラスター モデルに対するクエリの作成
このサンプル クエリを作成するために使用できるクラスター モデルがない場合は、基本的なデータ マイニング チュートリアルを使用して、モデルの [TM_Clustering] を作成してください。
SQL Server Management Studio でモデルの [TM_Clustering] を右クリックし、[予測クエリの作成] を選択します。
[マイニング モデル] メニューの [単一クエリ] を選択します。
[単一クエリ入力] ダイアログ ボックスで、入力として次の値を設定します。
Gender = M
Commute Distance = 5-10 miles
クエリ グリッドの [ソース] で TM_Clustering マイニング モデルを選択し、列の [Bike Buyer] を追加します。
[ソース] で [予測関数] を選択し、関数の Cluster を追加します。
[ソース] で [予測関数] を選択し、関数の PredictSupport を追加して、モデル列の [Bike Buyer] を [条件と引数] ボックスにドラッグします。 [別名] 列に「Support」と入力します。
予測関数を表す式および列参照を [条件と引数] ボックスからコピーします。
[ソース] で [カスタム式] を選択し、別名を入力してから、次の構文を使用して Excel の CEILING 関数を参照します。
Excel![CEILING](<arguments) as <return type>
関数の引数として列参照を貼り付けます。
たとえば、次の式ではサポート値の CEILING が返されます。
EXCEL!CEILING(PredictSupport([TM_Clustering].[Bike Buyer]),2)
[別名] 列に「CEILING」と入力します。
[クエリ テキスト ビューに切り替え] をクリックして、生成された DMX ステートメントを確認してから、[クエリ結果ビューに切り替え] をクリックして、予測クエリによって出力された列を表示します。
予想される結果を次の表に示します。
Bike Buyer
$Cluster
SUPPORT
CEILING
0
Cluster 8
954
953.948638926372
他の句 (たとえば WHERE 句) をステートメントのどこかに追加する場合、グリッドを使用して追加することはできません。まず、DMX ビューに切り替える必要があります。