查询线性回归模型(Analysis Services - 数据挖掘)

创建针对数据挖掘模型的查询时,您既可以创建内容查询,也可以创建预测查询。内容查询提供有关分析过程中发现的模式的详细信息,而预测查询则使用模型中的模式来对新数据进行预测。例如,内容查询可能会提供有关回归公式的更多详细信息,而预测查询则可能会告诉您新数据点是否适合模型。也可以使用查询来检索有关模型的元数据。

本节介绍如何针对基于 Microsoft 线性回归算法的模型创建查询。有关线性回归模型的结构的详细信息,请参阅线性回归模型的挖掘模型内容(Analysis Services - 数据挖掘)

注意注意

由于线性回归基于 Microsoft 决策树算法的特殊情况,因而某些使用连续可预测属性的决策树模型可包含回归公式。有关详细信息,请参阅 Microsoft 决策树算法技术参考

  • 内容查询

    通过使用数据挖掘架构行集返回模型参数

    通过使用 DMX 返回模型的回归公式

    返回模型的系数

  • 预测查询

    使用单独查询进行预测

    从回归模型返回说明性统计信息

返回页首

为了重新生成示例查询的结果,您可以根据以下主题中的说明创建线性回归模型。该模型非常简单,但演示了如何使用数据挖掘设计器自定义线性回归模型的基本概念。

如何在模型中强制使用回归量

查找有关线性回归模型的信息

线性回归模型的结构极其简单:挖掘模型将数据表示为单个节点并且该节点定义回归公式。

本节提供演示如何获取与模型本身有关的详细信息的示例,包括回归公式以及与数据有关的说明性统计信息。

示例查询 1:通过使用数据挖掘架构行集返回模型参数

通过查询数据挖掘架构行集,您可找到模型的元数据。这包括模型创建时间、上次处理模型时间、模型所基于的挖掘结构的名称以及指定为可预测属性的列的名称。也可以返回首次创建模型时所使用的参数。

SELECT MINING_PARAMETERS 
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center Regression'

示例结果:

MINING_PARAMETERS

MINING_PARAMETERS

MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, FORCE_REGRESSOR=[Average Time Per Issue],[Total Operators]

注意注意

如果您尚未指定任何回归量,则参数 FORCE_REGRESSOR 将具有值“FORCE_REGRESSOR =”。

返回页首

示例查询 2:通过使用 DMX 返回模型的回归公式

以下查询将返回线性回归模型的挖掘模型内容。查询返回包含回归公式的节点的内容。如果节点之一包含回归公式,您还可以在决策树模型中使用此查询。

所有变量和系数均存储在嵌套表 NODE_DISTRIBUTION 的单独行中。如果要查看完整的回归公式,请使用 Microsoft 树查看器,单击**“(全部)”节点,然后打开“挖掘图例”**。

SELECT FLATTENED NODE_DISTRIBUTION as t
FROM [Call Center Regression].CONTENT
注意注意

如果通过使用查询(如 SELECT <column name> from NODE_DISTRIBUTION)来引用嵌套表的单个列,则必须将某些列(如 SUPPORTPROBABILITY)用括号括起来,以将它们与同名的保留字区分开。

预期的结果:

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VARIANCE

t.VALUETYPE

Service Grade

Missing

0

0

0

1

Service Grade

0.09875

120

1

0.00157927083333334

3

Average Time Per Issue

0.00136989326310586

0

0

187.866597222222

7

Average Time Per Issue

12.0822151449249

0

0

0

8

Average Time Per Issue

79.8416666666667

0

0

187.866597222222

9

Total Operators

-0.000426156789860463

0

0

24.0799305555556

7

Total Operators

-3.19762422385219

0

0

0

8

Total Operators

10.6916666666667

0

0

24.0799305555556

9

-0.00606823493688524

0

0

0.00121526993847281

11

我们来做个比较,在**“挖掘图例”**中,该回归公式显示如下:

Service Grade = 0.070+0.001*(Average Time Per Issue-79.842)-0.0004*(Total Operators-10.692)

在**“挖掘图例”中,对某些数值可能进行了舍入;但 NODE_DISTRIBUTION 表与“挖掘图例”**实际上包含的是相同的值。

VALUETYPE 列中的值可告诉您每一行所包含的信息的类型,这在以编程方式处理结果时很有用。下表给出了一个线性回归公式的输出值的类型。

VALUETYPE

1(缺失)

3(连续)

7(系数)

8(得分)

9(统计信息)

7(系数)

8(得分)

9(统计信息)

11(截距)

有关回归模型的每种值类型含义的详细信息,请参阅线性回归模型的挖掘模型内容(Analysis Services - 数据挖掘)

返回页首

示例查询 3:返回模型的系数

通过使用 VALUETYPE 枚举,您可以仅返回回归公式的系数,如下面的查询所示:

SELECT FLATTENED MODEL_NAME,
    (SELECT ATTRIBUTE_VALUE, VALUETYPE
     FROM NODE_DISTRIBUTION
     WHERE VALUETYPE = 11) 
AS t
FROM [Call Center Regression].CONTENT

此查询返回两行:一行来自挖掘模型内容,另一行来自包含系数的嵌套表。此处未包括 ATTRIBUTE_NAME 列,因为对于系数,该列始终为空。

MODEL_NAME

t.ATTRIBUTE_VALUE

t.VALUETYPE

Call Center Regressors2

-0.00606823493688524

11

使用模型进行预测

您可以使用数据挖掘设计器中的“挖掘模型预测”选项卡来生成针对线性回归模型的预测查询。您可从 SQL Server Management Studio 和 Business Intelligence Development Studio 使用预测查询生成器。

注意注意

此外,您还可以通过使用 SQL Server 2005 Excel 数据挖掘外接插件或 SQL Server 2008 Excel 数据挖掘外接插件来创建针对回归模型的查询。即使 Excel 数据挖掘外接插件无法创建回归模型,您也可以浏览并查询 Analysis Services 实例中所存储的所有模型。

返回页首

示例查询 4:使用单独查询进行预测

创建针对回归模型的查询的最简便方法是使用**“单独查询输入”对话框。例如,生成下面的 DMX 查询可以使用以下方法:先选择相应的回归模型,再选择“单独查询”**,然后为 Total Operators 键入 10。

SELECT
  Predict([Call Center Regression].[Service Grade])
FROM
  [Call Center Regression]
NATURAL PREDICTION JOIN
(SELECT 10 AS [Total Operators]) AS t

示例结果:

Yearly Income

0.0992841946529471

返回页首

示例查询 5:从回归模型返回说明性统计信息

您可以对线性回归模型使用许多标准预测函数。下面的示例演示如何向预测查询结果中添加说明性统计信息。

SELECT
  Predict([Call Center Regression].[Service Grade]) as [Predicted Service],
  PredictStdev([Call Center Regression].[Service Grade]) as [Standard Deviation]
FROM
  [Call Center Regression]
NATURAL PREDICTION JOIN
(SELECT 10 AS [Total Operators]) AS t

示例结果:

预测的服务

标准偏差

0.0990447584463201

0.0348607220015996

返回页首

预测函数的列表

所有 Microsoft 算法均支持一组通用的函数,此外,Microsoft 线性回归算法还额外支持下表中列出的函数。

有关所有 Microsoft 算法都支持的通用函数的列表,请参阅数据挖掘算法(Analysis Services – 数据挖掘)。有关如何使用这些函数的详细信息,请参阅 数据挖掘扩展插件 (DMX) 函数参考

更改历史记录

更新的内容

添加了主题内链接,更便于查看查询示例了。

更改了示例以便使用具有最佳调整的模型。添加了指向新主题的链接,该主题说明如何生成线性回归模型示例。