预测查询 (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)。