SELECT FROM <model> PREDICTION JOIN (DMX)
マイニング モデルを使用して、外部データ ソース内の列の状態を予測します。PREDICTION JOIN ステートメントは、ソース クエリからモデルまでの各ケースに一致します。
構文
SELECT [FLATTENED] [TOP <n>] <select expression list>
FROM <model> | <sub select> [NATURAL] PREDICTION JOIN
<source data query> [ON <join mapping list>]
[WHERE <condition expression>]
[ORDER BY <expression> [DESC|ASC]]
引数
- n
省略可。返す行数を指定する整数値です。
- select expression list
マイニング モデルから派生する、列の識別子と式のコンマ区切りのリストです。
- model
モデル識別子です。
- sub select
埋め込まれた select ステートメントです。
- source data query
ソース クエリです。
- join mapping list
省略可。モデルの列とソース クエリの列を比較する論理演算子です。
- condition expression
省略可。列のリストから返される値を制限する条件です。
- expression
省略可。スカラ値を返す式です。
解説
ON 句は、ソース クエリの列とマイニング モデルの列の間のマッピングを定義します。このマッピングは、作成する予測の入力として列を使用できるように、ソース クエリからマイニング モデルへ列を指定するために使用します。そのため、次の例に示すように、<join mapping list> の列は、等号 (=) を使用して関連付けられています。
[MiningModel].ColumnA = [source data query].Column1 AND
[MiningModel].ColumnB = [source data query].Column2 AND
...
入れ子になったテーブルを ON 句にバインドする場合、入れ子になった列のレコードが所属するケースをアルゴリズムが正しく識別できるように、キー列をすべての非キー列とバインドします。
予測結合のソース クエリは、テーブルまたは単一クエリのどちらかにできます。
<select expression list> と <condition expression> にテーブル式を返さない予測関数を指定できます。
NATURAL PREDICTION JOIN は、モデル内の列名に一致するソース クエリの列名と共に、自動的にマップされます。NATURAL PREDICTION を使用する場合、ON 句を省略する必要があります。NATURAL は、ON 句が指定されておらず、列が名前によってマッピングされていることを意味します。
単一クエリの例
次の例は、特定の人物が実際に自転車を購入するかどうかを予測する、クエリの作成方法を示します。データを格納しない代わりに、クエリ内に直接入力されます。クエリ内の人物は、次の特徴を持ちます。
- 35 才
- 持ち家所有
- 2 台の自家用車を所有
- 子供は 2 名
クエリは、TM Decision Tree マイニング モデルと、対象についての既知の特徴を使用して、予測を行う方法を示す PredictHistogram 関数から引き出された、その人物が自転車を購入するかどうかを示すブール値と一連の表形式値を返します。
SELECT
[TM Decision Tree].[Bike Buyer],
PredictHistogram([Bike Buyer])
FROM
[TM Decision Tree]
NATURAL PREDICTION JOIN
(SELECT 35 AS [Age],
'5-10 Miles' AS [Commute Distance],
'1' AS [House Owner Flag],
2 AS [Number Cars Owned],
2 AS [Total Children]) AS t
クエリを開く例
次の例は、外部データセットの各人物が自転車を購入するかどうかを予測するクエリの作成方法を示します。Analysis Services のインスタンスのデータ ソース ビュー内にテーブルが存在するため、クエリは OPENQUERY を使用してデータを取得します。テーブルがマイニング モデルの列構造と異なるため、ON ステートメントを使用して、テーブルをモデルにマップします。
クエリは、各個人が自転車を購入しそうかどうかと、購入する確率を示すブール型の列と共に、各人物の氏名をテーブルに返します。
SELECT
t.[LastName],
t.[FirstName],
[TM Decision Tree].[Bike Buyer],
PredictProbability([Bike Buyer])
From
[TM Decision Tree]
PREDICTION JOIN
OPENQUERY([Adventure Works DW],
'SELECT
[LastName],
[FirstName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[Education],
[Occupation],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[dbo].[ProspectiveBuyer]
') AS t
ON
[TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND
[TM Decision Tree].[Gender] = t.[Gender] AND
[TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND
[TM Decision Tree].[Total Children] = t.[TotalChildren] AND
[TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM Decision Tree].[Education] = t.[Education] AND
[TM Decision Tree].[Occupation] = t.[Occupation] AND
[TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned]
アソシエーション アルゴリズムの例
次の例は、Microsoft アソシエーション アルゴリズムから作成したモデルを使用して予測を作成する方法を示します。クエリは、次の 3 つの製品のように、同じ買い物かごに存在する可能性の最も高い製品を 3 件返します。
- Mountain Bottle Cage
- Mountain Tire Tube
- Mountain-200
パラメータは、予測関数と共に SELECT リストで使用され、クエリによって返されるアイテムの数を制限します。
SELECT
PREDICT([Association].[v Assoc Seq Line Items], 3)
FROM
[Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model]
UNION SELECT 'Mountain Tire Tube' AS [Model]
UNION SELECT 'Mountain-200' AS [Model]) AS [products]) AS t
参照
関連項目
SELECT (DMX)
データ マイニング拡張機能 (DMX) データ定義ステートメント
データ マイニング拡張機能 (DMX) データ操作ステートメント
データ マイニング拡張機能 (DMX) ステートメント リファレンス