SELECT FROM <模型> 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 岁
  • 拥有一套住房
  • 拥有两部汽车
  • 家中有两个孩子

使用 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 关联算法生成的模型创建预测。该查询返回最有可能与下列三种产品属于同类产品的三种产品:

  • 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) 语句参考

帮助和信息

获取 SQL Server 2005 帮助