SELECT FROM <MODEL> PREDICTION JOIN (DMX)

適用: SQL Server Analysis Services

マイニング モデルを使用して、外部データ ソース内の列の状態を予測します。 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
省略可能。 返す行数を指定する整数値です。

式リストの選択
マイニング モデルから派生する、列の識別子と式のコンマ区切りのリストです。

model
モデル識別子。

sub select
埋め込み select ステートメント。

source data query
ソース クエリです。

結合マッピング リスト
省略可能。 モデルの列とソース クエリの列を比較する論理式。

condition 式
省略可能。 列リストから返される値を制限する条件。

式 (expression)
省略可能。 スカラー値を返す式。

注釈

ON 句は、ソース クエリの列とマイニング モデルの列の間のマッピングを定義します。 このマッピングは、列を予測を作成するための入力として使用できるように、ソース クエリからマイニング モデル内の列に列を転送するために使用されます。 結合マッピング リスト>の<列は、次の例に示すように等号 (=) を使用して関連しています。

[MiningModel].ColumnA = [source data query].Column1 AND   
[MiningModel].ColumnB = [source data query].Column2 AND  
...  

入れ子になったテーブルを ON 句にバインドする場合、入れ子になった列のレコードが所属するケースをアルゴリズムが正しく識別できるように、キー列をすべての非キー列とバインドします。

予測結合のソース クエリは、テーブルまたは単一クエリのどちらかにできます。

select 式リスト>と条件>式でテーブル式を<返さない予測関数を<指定できます。

NATURAL PREDICTION JOIN では 、モデル内の列名と一致するソース クエリの列名が自動的にマップされます。 NATURAL PREDICTION を使用する場合は、ON 句を省略できます。

WHERE 条件は、予測可能な列または関連する列にのみ適用できます。

ORDER by 句は、引数として 1 つの列のみを受け入れ可能です。つまり、複数の列で並べ替えることはできません。

例 1: シングルトン クエリ

次の例では、特定のユーザーが自転車をリアルタイムで購入するかどうかを予測するクエリを作成する方法を示します。 このクエリでは、データはテーブルまたはその他のデータ ソースに格納されませんが、クエリに直接入力されます。 クエリ内の人物は、次の特徴を持ちます。

  • 35 才

  • 持ち家所有

  • 2 台の自家用車を所有

  • 2人の子供が家に住んでいる

TM デシジョン ツリー マイニング モデルとサブジェクトに関する既知の特性を使用して、クエリは、自転車を購入したかどうかを示すブール値と、予測がどのように行われたかを示す PredictHistogram (DMX) 関数によって返される一連の表形式の値を返します。

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  

例 2: OPENQUERY の使用

次の例は、外部データセットに格納されている潜在顧客の一覧を使用してバッチ予測クエリを作成する方法を示しています。 テーブルは Analysis Services のインスタンスで定義されているデータ ソース ビューの一部であるため、クエリでは OPENQUERY を使用してデータを取得できます。 テーブル内の列の名前はマイニング モデルの列とは異なるため、 ON 句を使用して、テーブル内の列をモデル内の列にマップする必要があります。

このクエリでは、テーブル内の各人物の姓と名と共に、各ユーザーが自転車を購入する可能性があるかどうかを示すブール型 (Boolean) の列が返されます。0 は "自転車を購入しない" ことを意味し、1 は "おそらく自転車を購入する" ことを意味します。 最後の列には、予測結果の確率が含まれます。

SELECT  
  t.[LastName],  
  t.[FirstName],  
  [TM Decision Tree].[Bike Buyer],  
  PredictProbability([Bike Buyer])  
From  
  [TM Decision Tree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    '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]  

自転車の購入が予測される顧客のみにデータ セットを制限し、顧客名でリストを並べ替えるには、前の例に WHERE 句と ORDER BY 句を追加します。

WHERE [BIKE Buyer]  
ORDER BY [LastName] ASC  

例 3: アソシエーションの予測

次の例は、Microsoft Association アルゴリズムから構築されたモデルを使用して予測を作成する方法を示しています。 関連付けモデルの予測を使用して、関連製品を推奨できます。 たとえば、次のクエリは、一緒に購入される可能性が最も高い 3 つの製品を返します。

  • Mountain Bottle Cage

  • Mountain Tire Tube

  • Mountain-200

Predict (DMX) 関数はポリモーフィックであり、すべてのモデル型で使用できます。 関数の引数として value3 を使用して、クエリによって返される項目の数を制限します。 NATURAL PREDICTION JOIN 句に続く SELECT リストは、予測の入力として使用する値を提供します。

SELECT FLATTENED  
  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 [v Assoc Seq Line Items ]) AS t  

結果の例:

Expression.Model
HL Mountain Tire
Water Bottle
Fender Set - Mountain

予測可能な属性 [v Assoc Seq Line Items]を含む列はテーブル列であるため、クエリは入れ子になったテーブルを含む 1 つの列を返します。 既定では、入れ子になったテーブル列の名前 Expressionは です。 プロバイダーが階層行セットをサポートしていない場合は、この例に示すように FLATTENED キーワード (keyword)を使用して、結果を表示しやすくすることができます。

参照

SELECT (DMX)
データ マイニング拡張機能 (DMX) データ定義ステートメント
データ マイニング拡張機能 (DMX) データ操作ステートメント
データ マイニング拡張機能 (DMX) ステートメント リファレンス