查询逻辑回归模型(Analysis Services - 数据挖掘)
在对数据挖掘模型创建查询时,可以创建内容查询,也可以创建预测查询。内容查询提供有关分析时发现的模式的详细信息,预测查询使用模型中的模式来应用新数据进行预测。
本节介绍如何为基于 Microsoft 逻辑回归算法的模型创建查询。
内容查询
通过使用数据挖掘架构行集检索模型参数
通过使用 DMX 查找与模型有关的其他详细信息
预测查询
对连续值进行预测
对离散值进行预测
查找有关逻辑回归模型的信息
逻辑回归模型是使用带有一组特殊参数的 Microsoft 神经网络算法创建的;因此,逻辑回归模型具有某些与神经网络模型相同的信息,但是会简单些。若要了解模型内容的结构以及哪些节点类型存储哪类信息,请参阅逻辑回归模型的挖掘模型内容(Analysis Services - 数据挖掘)。
若要继续探讨查询方案,可以按“数据挖掘中级教程”中的下一节第 5 课:生成神经网络模型和逻辑回归模型(数据挖掘中级教程)所述,创建逻辑回归模型。
还可以使用数据挖掘基础教程中的挖掘结构 Targeted Mailing。然后,通过运行以下 DMX 脚本来添加逻辑回归模型:
ALTER MINING STRUCTURE [Targeted Mailing]
ADD MINING MODEL [TM_Logistic Regression]
([Customer Key],
[Age],
[Bike Buyer] PREDICT,
[Yearly Income] PREDICT,
[Commute Distance],
[English Education],
Gender,
[House Owner Flag],
[Marital Status],
[Number Cars Owned],
[Number Children At Home],
[Region],
[Total Children]
)
USING Microsoft_Logistic_Regression
示例查询 1:通过使用数据挖掘架构行集检索模型参数
通过查询数据挖掘架构行集,您可以找到关于模型的元数据,如模型创建时间、上次处理模型的时间、模型基于的挖掘结构的名称和用作可预测属性的列的名称。下面的示例返回首次创建模型时所用的参数、模型的名称和类型以及模型的创建时间。
SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center_LR'
示例结果:
MODEL_NAME |
SERVICE_NAME |
DATE_CREATED |
MINING_PARAMETERS |
---|---|---|---|
Call Center_LR |
Microsoft_Logistic_Regression |
04/07/2009 20:38:33 |
HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000 |
返回页首
示例查询 2:通过使用 DMX 查找与模型有关的其他详细信息
下面的查询返回有关逻辑回归模型的一些基本信息。逻辑回归模型在很多方面与神经网络模型类似,包括都存在描述用作输入的值的边际统计信息节点 (NODE_TYPE = 24)。此示例查询使用 Targeted Mailing 模型,并通过从嵌套表 NODE_DISTRIBUTION 中检索所有可能的输入值来获取这些值。
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM [TM_Logistic Regression].CONTENT
部分结果:
t.ATTRIBUTE_NAME |
t.ATTRIBUTE_VALUE |
t.SUPPORT |
t.PROBABILITY |
t.VARIANCE |
t.VALUETYPE |
---|---|---|---|---|---|
Age |
缺失 |
0 |
0 |
0 |
1 |
Age |
45.43491192 |
17484 |
1 |
126.9544114 |
3 |
Bike Buyer |
缺失 |
0 |
0 |
0 |
1 |
Bike Buyer |
0 |
8869 |
0.507263784 |
0 |
4 |
Bike Buyer |
1 |
8615 |
0.492736216 |
0 |
4 |
Commute Distance |
缺失 |
0 |
0 |
0 |
1 |
Commute Distance |
5-10 Miles |
3033 |
0.173472889 |
0 |
4 |
实际查询会返回多得多的行;但是此示例演示了所提供的有关输入的信息类型。例如,表中列出每个可能的离散值,而连续输入是离散化的。有关如何使用边际统计信息节点中信息的详细信息,请参阅逻辑回归模型的挖掘模型内容(Analysis Services - 数据挖掘)。
注意 |
---|
为便于查看,结果是平展的,但是,如果您的访问接口支持分层行集,则可在单个列中返回嵌套表。有关详细信息,请参阅“OLE DB Programmer's Guide”(OLE DB 程序员参考)中的 Hierarchical Rowsets(层次结构行集)。 |
返回页首
从逻辑回归模型创建预测
您对每种挖掘模型都可以使用 Predict (DMX) 函数来提供新数据并进行预测。还可以使用函数返回有关预测的其他信息,例如,预测正确性的概率。本节提供针对逻辑回归模型的预测查询的一些示例。
示例查询 3:对连续值进行预测
由于逻辑回归支持在输入和预测中都使用连续属性,因此可以轻松地在您的数据中创建与各种因素相关的模型。您可以使用预测查询来探查这些因素之间的关系。
以下查询示例基于 Call Center 模型,并创建了预测 Friday AM shift(周五早班)的服务等级的单独查询。PredictHistogram (DMX) 函数返回一个嵌套表,该表提供与用于了解预测值的有效性相关的统计信息。
SELECT
Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,
PredictHistogram([Call Center_LR].[Service Grade]) as [Results],
FROM
[Call Center_LR]
NATURAL PREDICTION JOIN
(SELECT 'Friday' AS [Day Of Week],
'AM' AS [Shift]) AS t
示例结果:
预测服务等级 |
结果 |
---|---|
0.102601830123659 |
服务等级$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.10260183012365983.02325581395350.98837209302325600.001205526606000870.034720694203902
0.9767441860465120.01162790697674420.011627906976744200
|
有关嵌套 NODE_DISTRIBUTION 表中的概率、支持和标准偏差值的详细信息,请参阅逻辑回归模型的挖掘模型内容(Analysis Services - 数据挖掘)。
返回页首
示例查询 4:对离散值进行预测
要分析产生二进制结果的因素时通常使用逻辑回归。尽管中级教程中使用的原始模型预测的是连续值 ServiceGrade,但实际生活中您还是希望预测服务等级是否符合特定的离散目标值。或者,您可以使用连续值来输出预测,之后将这些预测结果分组到较好、一般或较差这几个等级中。
下面的示例演示如何更改可预测属性的分组方式。为此,您生成挖掘结构的副本,然后更改目标列的离散化方法。以下过程介绍如何更改呼叫中心数据中的 Service Grade 值的分组。
创建呼叫中心挖掘结构和模型的离散化版本
在 Business Intelligence Development Studio 的解决方案资源管理器中,展开**“挖掘结构”**。
右键单击 Call Center.dmm,然后选择**“复制”**。
右键单击**“挖掘结构”并选择“粘贴”**。将添加名为 Call Center 1 的新挖掘结构。
右键单击这个新挖掘结构,然后选择**“重命名”**。键入新名称 Call Center Discretized。
双击该新挖掘结构以在设计器中将其打开。请注意,挖掘模型也已全部复制,并且全都具有扩展名 1。现在保持这些名称不变。
在**“挖掘结构”选项卡中,右键单击 Service Grade 对应的列,然后选择“属性”**。
将 Content 属性从 Continuous 更改为 Discretized。将 DiscretizationMethod 属性更改为 Clusters。对于 Discretization BucketCount,键入 3。
注意 这些参数仅用于演示上述过程,不一定生成有效模型。
从**“挖掘模型”菜单上,选择“处理结构和所有模型”**。
下面的示例查询基于此离散化模型,并且预测指定星期几的服务等级以及每个预测结果的概率。
SELECT
(PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]
FROM
[Call Center_LR 1]
NATURAL PREDICTION JOIN
(SELECT 'Saturday' AS [Day Of Week]) AS t
预期的结果:
预测 |
---|
服务等级$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
0.1087271838312535.72465047706410.4252934580602870.017016836003029300
0.0585576923062531.70988808007030.3774986676198850.02088202006045400
0.17016949152515.61091598832020.1858442379561920.066138657138604900
0.9545454545454550.01136363636363640.011363636363636400
|
请注意,预测结果已分组为指定的三个类别;但是,这些分组基于数据中实际值的聚类分析,而不是可设置为业务目标的任意值。
返回页首
预测函数的列表
所有 Microsoft 算法均支持一组通用的函数,但 Microsoft 逻辑回归算法还额外支持下表中列出的函数。
|
有关对所有 Microsoft 算法均通用的函数的列表,请参阅将函数映射到查询类型 (DMX)。有关特定函数的语法,请参阅 数据挖掘扩展插件 (DMX) 函数参考。
注意 |
---|
对于神经网络模型和逻辑回归模型,PredictSupport (DMX) 函数将返回表示整个模型的定型集大小的单个值。 |