查询线性回归模型(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)来引用嵌套表的单个列,则必须将某些列(如 SUPPORT 或 PROBABILITY)用括号括起来,以将它们与同名的保留字区分开。 |
预期的结果:
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) 函数参考。
更改历史记录
更新的内容 |
---|
添加了主题内链接,更便于查看查询示例了。 |
更改了示例以便使用具有最佳调整的模型。添加了指向新主题的链接,该主题说明如何生成线性回归模型示例。 |