预测查询 (DMX)

在 Microsoft SQL Server Analysis Services 中,可以使用数据挖掘扩展插件 (DMX) 中的预测查询,根据挖掘模型的结果预测新数据集中的未知列值。

预测类型

可以使用 DMX 创建下列类型的预测:

  • 预测联接
    用于根据挖掘模型中存在的模式创建输入数据的预测。 该查询语句后面必须跟有 ON 子句,该子句提供挖掘模型列和输入列之间的联接条件。

  • 自然预测联接
    用于创建基于挖掘模型中的列名的预测,这些列名与您正在执行查询的表中的列名完全匹配。 该查询语句不需要 ON 子句,因为联接条件是根据挖掘模型列与输入列间的匹配名称自动生成的。

  • 空预测联接
    用于发现最可能的预测,无需提供输入数据。 返回的将是仅根据挖掘模型内容创建的预测。

  • 单独查询
    用于通过向查询提供数据来创建预测。 由于只需为查询提供一个事例便可快速获得结果,所以该语句非常有用。 例如,可以使用查询来预测某位年龄为 35 岁的已婚女士是否会购买自行车。 该查询不需要外部数据源。

使用何种查询类型,取决于您要从模型中获取的具体信息。 如果要实时创建简单预测,例如要知道网站上的一位潜在客户是否符合自行车购买者的特征,则可以使用单独查询。 如果要根据数据源中包含的一组事例创建一批预测,则可使用常规预测查询。

查询结构

若要在 DMX 中生成预测查询,请使用下列元素的组合:

  • SELECT [FLATTENED]

  • TOP

  • FROM <模型> PREDICTION JOIN

  • ON

  • WHERE

  • ORDER BY

预测查询的 SELECT 元素定义了将在结果集中出现的列和表达式,并且可以包括下列数据:

  • 来自挖掘模型的 Predict 或 PredictOnly 列。

  • 来自用于创建预测的输入数据的任何列。

  • 可以返回一列数据的函数。

FROM <模型> PREDICTION JOIN 元素定义了要用于创建预测的源数据。 对于单独查询,即为分配给列的一系列值。 对于空预测联接,该项将保留为空。

ON 元素可以将挖掘模型中定义的列映射到外部数据集中的列。 如果要创建空预测联接查询或自然预测联接,则不必包括该元素。

可以使用 WHERE 子句筛选预测查询的结果。 可以使用 TOP 或 ORDER BY 子句选择最可能的预测。 有关使用这些子句的详细信息,请参阅 SELECT (DMX)

有关预测语句语法的详细信息,请参阅 SELECT FROM <模型> PREDICTION JOIN (DMX)SELECT FROM <模型> (DMX)