SQL Server 中运用数据挖掘模型.docx

上传人:b****7 文档编号:10259273 上传时间:2023-02-09 格式:DOCX 页数:196 大小:742.42KB
下载 相关 举报
SQL Server 中运用数据挖掘模型.docx_第1页
第1页 / 共196页
SQL Server 中运用数据挖掘模型.docx_第2页
第2页 / 共196页
SQL Server 中运用数据挖掘模型.docx_第3页
第3页 / 共196页
SQL Server 中运用数据挖掘模型.docx_第4页
第4页 / 共196页
SQL Server 中运用数据挖掘模型.docx_第5页
第5页 / 共196页
点击查看更多>>
下载资源
资源描述

SQL Server 中运用数据挖掘模型.docx

《SQL Server 中运用数据挖掘模型.docx》由会员分享,可在线阅读,更多相关《SQL Server 中运用数据挖掘模型.docx(196页珍藏版)》请在冰豆网上搜索。

SQL Server 中运用数据挖掘模型.docx

SQLServer中运用数据挖掘模型

SQLServer2008中运用数据挖掘模型

日期:

2009年4月9日

为一个数据挖掘模型定型后,可以通过运用SQLServerManagementStudio或BusinessIntelligenceDevelopmentStudio中提供的自定义查看器来阅读此模型。

但是,如果您希望执行预测或者从模型中获取更深入的或更具体的信息,则必须依据此数据挖掘模型建立一个查询。

在以下情况下,查询可帮助您更好地理解和处理模型中的信息:

执行单个预测和批预测。

了解有关模型发觉的模式的更多信息。

查看有关模型的特定模式或子集的细致信息或定型事例。

在挖掘模型中钻取到事例的细致信息。

提取有关全部或部分模型和数据的公式、准则或统计信息。

SQLServerAnalysisServices提供用于建立查询的图形设计界面,以及一种称为数据挖掘扩展插件(DMX)的查询语言,这种语言对于建立自定义预测和复杂查询很有用。

若要生成DMX预测查询,可以运用SQLServerManagementStudio和BusinessIntelligenceDevelopmentStudio中均提供的查询生成器。

SQLServerManagementStudio中还提供了一组DMX查询模板。

有关如何运用查询生成器的细致信息,请参阅运用预测查询生成器建立DMX预测查询。

有关如何运用DMX查询模板的细致信息,请参阅在SQLServerManagementStudio中建立DMX查询或如何在SQLServerManagementStudio中运用模板。

预测查询

许多数据挖掘项目的主要目标是运用挖掘模型来执行预测。

例如,您可能要在十二月期间预测公司明年销售的产品数量,或者可能要预测在某个广告活动后潜在客户能不能会购买产品。

建立预测时,通常会提供一些新数据,并要求模型基于新数据生成一个预测。

可以通过在“预测联接”中将模型映射到一个外部数据源来以批方式执行预测。

或者,可以通过建立一个“单独”查询一次提供一个值。

单独预测查询和批预测查询都运用PREDICTIONJOIN语法来定义新数据:

不同之处在于预测联接输入端的指定方式。

在单独查询中,数据是作为查询的一部分内联提供的。

在批查询中,数据来自运用OPENQUERY语法指定的外部数据源。

有关细致信息,请参阅OPENQUERY(DMX)。

此外,运用时序模型可以仅仅基于模型来执行预测,即不须要提供任何新数据,而仅仅基于现有序列来请求预测。

下面提供有关如何建立上述每一类查询的信息:

查询类型查询选项

单独预测查询

针对在查询中键入的单个新事例或者多个新事例执行预测。

批预测

将外部数据源中的新事例映射到模型并执行预测。

时序预测

基于现有模型预测指定数目的将来步骤。

通过添加新数据来扩展现有模型,并基于组合序列来执行预测。

通过运用REPLACE_MODEL_CASES选项向新数据序列使用现有模型。

除了预测特定值,例如,下个月的销售额,或者要向客户建议的产品,您还可以自定义预测查询,以返回与预测有关的各种类型的信息。

例如,知道预测正确的概率可能很有帮助,这样您就可以决定能不能向用户提出建议。

若要自定义预测查询所返回的信息,应向查询中添加“预测函数”。

每个模型或查询类型都支持特定的函数。

例如,聚类分析模型支持特殊预测函数,这些函数提供有关模型建立的分组的额外细致信息。

时序模型支持计算随时间的变化的预测函数。

还有可处理几乎所有模型类型的通用预测函数。

有关不同查询类型支持的预测函数的列表,请参阅将函数映射到查询类型(DMX)。

有关预测函数的完整列表,请参阅数据挖掘扩展插件(DMX)函数参考。

单独查询

如果要实时建立基本预测,则单独查询很有用。

例如,您可能通过运用站点从客户那里获取信息,然后运用这些数据返回预测,这些预测以特定于该客户的建议信息的形式呈现。

或者,您也可能分析电子邮件的内容,然后运用现有分类模型来对电子邮件执行分类,并相应地传送邮件。

单独查询不须要包含输入的单独表。

只需将一行数据传递给模型,便会实时地返回一个预测。

您还可以将单独查询扩展为执行多个预测,要领是键入包含单个事例的SELECT语句,再添加UNION运算符,然后键入另一个SELECT语句以指定另一个事例。

可以通过以下方式基于现有模型建立单独查询:

运用数据挖掘设计器。

运用单独查询模板。

以编程方式或者在另一个AnalysisServices客户端中建立DMX语句。

建立单独查询时,必须以PREDICTIONJOIN的形式向模型提供新数据。

这意味着即使不映射到实际表,也必须确保新数据与挖掘模型中的现有列匹配。

如果新数据列与新数据完全匹配,则AnalysisServices将自动映射列。

这称为“NATURALPREDICTIONJOIN”。

但是,如果列不匹配,或者新数据在类型和量上与模型所包含的数据并不相同,则必须指定模型映射中的哪些列映射到新数据,或者指定缺少的值。

批预测查询

执行预测联接时,应将模型映射到新数据源,之后AnalysisServices将基于模型中的模式针对新数据中的每一行执行预测。

如果表或其他外部数据源中有许多信息,并且您要运用经过定型的模型来执行预测,则预测联接很有用。

可以通过以下方式基于现有模型建立批预测查询:

运用数据挖掘设计器。

运用模板。

以编程方式或者在另一个AnalysisServices客户端中建立DMX语句。

如果通过运用数据挖掘设计器来建立批预测查询,则必须先将外部数据源定义为一个数据源视图。

如果运用DMX来建立预测联接,则可以通过运用OPENQUERY、OPENROWSET或SHAPE命令来指定外部数据源。

DMX模板中的默认数据访问要领是OPENQUERY。

有关这些要领的信息,请参阅

无论您如何定义外部数据,指定的数据源都必须包含其数据与模型中的数据类似的列。

但是,新的信息可以是不完整的。

例如,您的客户列表可能包含年龄列,但不包含有关收入的信息。

即使在为模型定型时运用了收入数据,仍可以将新数据映射到该模型并建立一个预测;但是,在某些情况下,缺少完整的信息可能会影响预测的质量。

为获得最佳结果,应当在新数据与模型之间联接尽可能多的匹配列。

但是,即使没有匹配项,查询也会成功。

如果不联接任何列,则查询将返回边缘预测,这与不含PREDICTIONJOIN子句的语句SELECTFROM是等效的。

处理预测查询的结果

预测查询与联系数据库中的查询不同。

您添加到查询中的每个预测函数都返回它自己的行集。

因此,当您针对一个事例执行预测时,结果可能是一个预测的值,以及包含其他细致信息的多个嵌套表列。

只要在一个查询中组合多个函数,返回结果都将组合为一个分层行集。

但是,如果提供程序不能处理分层的行集,则可以通过在预测查询中运用FLATTEN关键字来对结果执行平展处理。

时序挖掘模型中的预测

在运用新数据和建立预测的要领这一方面,时序模型具有更高的灵活性。

您既可以在须要建立预测时运用此模型,也可以向模型提供新数据,以基于最近的趋势更新预测。

如果您添加新数据,则可以指定新数据的运用方式,以扩展或更换模型事例。

扩展模型事例时,应向时序模型添加新的事实数据,从而使进一步的预测基于新的组合序列。

更换模型事例时,应保留定型后的模型,但将基础事例更换为新的一组事例数据。

无论您运用那种要领,预测的起点都总是原始序列的终点。

例如,假定您有一个现有的时序模型,它的上一年销售数据已定型。

收集了多个月的新销售数据后,您决定更新今年的销售预测。

您可以添加新数据并扩展模型以执行新预测,从而建立更新模型的预测联接。

或者,可以基于现有数据生成模型,然后建立将事例数据更换为新数据的预测联接。

这在某些情况下是很有用的,例如,当一个存储缺少很多数据,并且您希望运用基于其他存储数据生成的模型来执行预测时。

有关如何在时序模型上建立预测联接的细致信息,请参阅“查询时序模型”或PredictTimeSeries(DMX)。

内容查询

内容查询是一种提取有关内部统计信息以及挖掘模型结构信息的一种方式。

有时,内容查询可提供在查看器中不易查看的细致信息。

您还可以运用内容查询的结果以编程方式提取信息以供他用。

例如,可以提取公式或概率执行自己的计算,或者检索有关模型中的事例的可操作信息。

查询类型查询选项

SELECTFROM<模型>.CASES

查找用于定型或测试模型的事例。

钻取到数据,包括基础挖掘结构中的列。

SELECTFROM<结构>.CASES

查看结构中包含的所有数据,包括特定挖掘模型中不包括的列。

SELECTFROM<模型>.CONTENT

检索有关模型中特定节点的细致信息,包括准则和公式、支持和方差统计信息等。

SELECTFROM<模型>.DIMENSIONCONTENT

支持对数据挖掘维度的查询。

此查询类型主要供内部运用。

如果您开发自己的插件算法,则可运用此语法测试您的模型。

并非所有算法都支持此功能。

能不能支持将通过MINING_SERVICES架构行集中的一个标志来指示。

一些模型内容在所有算法中都是标准的。

但是,通常而言,每个模型的内容都依赖于用来生成模型的算法。

因此,在建立内容查询时,必须了解模型中哪些类型的信息是最有用的。

例如,如果建立一个运用SELECTFROM.CONTENT语法的查询,则根据模型是顺序分析和聚类分析模型、决策树模型还是时序模型,此查询会返回差异很大的信息。

对于关联模型,您可能要检索特定准则的说明,以便可以在自定义使用程序中运用准则,而在时序或顺序分析和聚类分析模型中,您可能要查找有关模型所检测的时间模式的更多信息。

以下部分提供了一些示例,以说明可以从内容查询中获得的信息的广度和深度;但是,有关挖掘模型内容以及特定于每种模型类型的内容的信息,请参阅挖掘模型内容(AnalysisServices-数据挖掘)。

示例1:

关联模型中的内容查询

可以运用SELECTFROM<模型>.CONTENT语句来返回不同类型的内容,具体取决于所查询的模型的类型。

对于关联模型,表示准则的节点具有NODE_TYPE值8,而项集则具有NODE_TYPE值7。

因此,下面的查询将返回最前面的10个项集,这些项集按支持度排序(默认排序顺序)。

SELECTTOP10NODE_DESCRIPTION,NODE_PROBABILITY,SUPPORT

FROM.CONTENTWHERENODE_TYPE=7下面的示例返回三个列:

节点的ID、完整准则以及项集右侧的产品,也就是被预测将作为项集的一部分与其他某些产品关联的产品。

FLATTENED关键字表示嵌套行集应转换为平面表。

表示准则右侧产品的属性包含在NODE_DISTRIBUTION表中;因此,我们通过添加长度大于2的要求来仅检索包含属性名的行。

运用一个基本的字符串函数从第三列中删除模型的名称。

通常,模型名称总是作为嵌套列的值的前缀。

WHERE子句指定NODE_TYPE的值应当为8,这表示仅仅检索准则。

SELECTFLATTENEDNODE_UNIQUE_NAME,NODE_DESCRIPTION,

(SELECTRIGHT(ATTRIBUTE_NAME,(LEN(ATTRIBUTE_NAME)-LEN('Associationmodelname')))

FROMNODE_DISTRIBUTION

WHERELEN(ATTRIBUTE_NAME)>2

ASRightSideProduct

FROM[Associationmodelname].CONTENT

WHERENODE_TYPE=8

ORDERBYNODE_SUPPORTDESC有关细致信息,请参阅查询关联模型(AnalysisServices–数据挖掘)。

示例2:

决策树模型的内容查询

查询模型内容非常主要的一种情况是:

您想返回准则,说明预测该状态的原由,从而对预测查询执行进一步的操作。

例如,可以通过运用如下语法向查询中添加预测函数PredictNodeId,以获取包含准则的节点的ID:

SELECTPredict([CollegePlans]),PredictNodeID([CollegePlans])

FROM[CollegePlansTree]PREDICTIONJOIN

对于决策树模型,标题包含指向输出的路径的说明。

因此,一旦您具有包含输出的节点的ID,就可通过建立如下所示的内容查询来检索说明此预测的准则或路径:

SELECTNODE_CAPTION

FROM[CollegePlansTree]

WHERENODE_UNIQUE_NAME=''

SQLServer2008建立挖掘模型内容查询

日期:

2009年4月9日

运用AMO或XML/A可以采用编程方式查询挖掘模型内容,但是运用DMX建立查询更基本。

同时,在SQLServer2008中,您还可以通过建立与AnalysisServices服务器的连接并运用Transact-SQL语法键入查询,来针对数据挖掘架构行集建立查询。

下面的流程介绍如何运用DMX以及通过查询数据挖掘架构行集表来对挖掘模型建立查询。

有关如何运用XML/A建立类似查询的示例,请参阅如何运用XML/A建立数据挖掘查询。

运用DMX查询数据挖掘模型的内容

建立DMX模型内容查询

在SQLServerManagementStudio的“视图”菜单中,单击“模板资源管理器”。

在“模板资源管理器”窗格中,单击四方体图标,以修改列表并显示AnalysisServices模板。

在模板类别列表中,展开DMX,再展开ModelContent,然后双击ContentQuery。

在“连接到AnalysisServices”对话框中,选择包含要查询的挖掘模型的实例,然后单击“连接”。

此时将在相应代码编辑器中打开“内容查询”模板。

元数据窗格列出了当前数据库中的可用模型。

若要修改数据库,请从“可用数据库”列表中选择不同的数据库。

在FROM[].CONTENT行中输入挖掘模型的名称。

如果挖掘模型的名称包含空格,则必须用方括号将该名称括起来。

如果不希望键入名称,则可以在对象资源管理器中选择某个挖掘模型,并将其拖放到模板中。

在SELECT行中,键入挖掘模型内容架构行集中的列的名称。

若要查看可在挖掘模型内容查询中返回的列的列表,请参阅挖掘模型内容(AnalysisServices-数据挖掘)。

或者,您也可以在模板的WHERE子句中键入条件,以将返回的行限定为特定的节点或值。

单击“执行”。

查询数据挖掘架构行集

对数据挖掘架构行集建立查询

在SQLServerManagementStudio的“新建查询”工具栏中,单击“AnalysisServicesDMX查询”或“AnalysisServicesMDX查询”。

在“连接到AnalysisServices”对话框中,选择包含要查询的对象的实例,然后单击“连接”。

此时将在相应代码编辑器中打开“内容查询”模板。

元数据窗格列出了当前数据库中的可用对象。

若要修改数据库,请从“可用数据库”列表中选择不同的数据库。

在查询编辑器中,键入以下内容:

SELECT*

FROM$system.DMSCHEMA_MINING_MODEL_CONTENT

WHEREMODEL_NAME=''

单击“执行”。

“结果”窗格将显示模型的内容。

留心:

若要查看当前实例上可查询的所有架构行集的列表,请运用以下查询:

SELECT*FROM$system.DBSCHEMA_TABLES。

或者,若要查看特定于数据挖掘的架构行集的列表,请参阅数据挖掘架构行集。

SQLServer数据挖掘在企业中的应用

责任编辑:

胡铭娅作者:

IT168陈亮2009-02-17

什么是数据挖掘?

对于数据挖掘有两个常见的误区,一个是认为数据挖掘就是商业智能,另一种则认为数据挖掘高不可攀遥不可及,前者夸大了数据挖掘的能力,后者则夸大了数据挖掘的难度。

那么什么是数据挖掘呢?

数据挖掘是商务智能应用中较高层次的一项技术,而商务智能中还包括数据仓库、ETL、联机分析、商业报表等多项技术。

数据挖掘在商务智能应用中提供的是一种自动化或半自动化的数据分析手段,利用数据挖掘用户将可以更加方便地发现数据的模式(其实就是用户关心的业务模式),用户还可以利用这些模式对某些符合特征的数据作出预测。

那么数据挖掘究竟是怎么做到上面这些貌似神奇的事情的呢?

现在主流的数据挖掘技术有两种,其中之一来源于我们每一个人可能都学习过的一门学科——统计学,例如聚类、关联规则、时间序列等,而另外一种则来源于我们每一个人都听说过的一门学科——机器学习(俗称人工智能),例如神经元网络、遗传算法等。

数据挖掘能干什么?

前面提到数据挖掘是用于发现数据模式的,那么什么是模式呢?

例如著名的啤酒和尿布,这就是数据模式。

除了这个之外,根据风向、湿度、云图等进行天气预测、根据网络数据包的分析进行入侵检测、根据用户在线浏览路径推荐商品等等都和数据模式有关系。

最神奇的是,在我和我太太准备要宝宝的时候很多朋友都提到了这个说法那个经验,突然发现这也和数据模式有关系。

扯远了!

数据模式在企业中有什么作用呢?

分类

在西方电信经常有促销活动,也就是客户可以免费试用该电信服务商一段时间的服务,结果就发现有些客户经常在多个电信商之间来回选择免费试用服务而永远不会转成长期客户。

数据挖掘技术就曾经帮助这些电信公司在客户申请试用服务的时候筛选出那些有可能滥用试用服务的客户而减少成本支出。

这就是一个分类的问题。

数据挖掘中有很多算法可以进行分类,例如决策树、神经元网络、贝叶斯算法等。

分类可以把大量数据(在数据挖掘中也称为事例CASE)分成多个类别,而分类的依据就是这些事例中的属性。

前面提到的电信服务商就是通过用户最近几期的家用账单、收入、职业等来进行分类的。

聚类

听说过物以类聚么?

分类有一个同胞兄弟就是聚类,聚类相对分类更加自动,聚类也将大量实例分成多个类别,不过这次是根据属性值的相似程度自动汇聚成不同的类别。

通常把分类成为有监督的算法,而聚类则被称为无监督的算法,主要原因就是分类在执行前就已经有了明确的类别,例如前面所说的客户——两种,试用后会选择的和试用不购买的,而聚类在分析前还不知道有多少分类,而是通过不断的迭代使得各分类之间的边界更加清晰,然后再分析这些分类之间的差别,因此聚类也成为无监督的算法。

如果你有足够多的详细人口资料,那么我说某男30岁、大学教育、在大型外企从事IT业,你也许可以判断出我的收入,这是分类,不过如果我问什么样的女孩子愿意嫁给我那么看上去就更像是聚类的问题了。

关联

我在为一家大型国际餐饮连锁集团作商务智能咨询的时候曾经向客户提供过一个数据挖掘原型应用,在这个原型应用中客户认为购买汉堡包和辣鸡翅的用户有47%的可能性会购买百事冰可乐(这是第一次挖掘的结果,我们后面会讨论这个比例的问题),而这个就是一个关联的问题,因此关联分析另外一个相当响亮的名字就是购物篮分析。

关联是找到事例中出现频率较高的组合规则,能做出上面这种判断的原因是47%的客户在购买汉堡包和辣鸡翅的时候同时购买了百事冰可乐,我们称之为“支持度”。

序列

提到关联,另外一个同胞兄弟就是序列。

序列也是发现组合规律的,不过关联中所提到的规律不涉及到先后次序,而序列则是有先后次序的。

一个客户在网站上浏览了几种品牌的笔记本,如果顺序是Thinkpad->HP->DELL->XX牌,那么我们说他很有可能想买笔记本,不过更有可能买的是XX牌或者同一档次的笔记本,如果顺序倒过来,最后还看了MacAir,那么还是说明他想买笔记本,不过他更有可能会买X300或者MacAir,至少也是HP,这就是序列和关联的区别。

回归

温度、气压、风向和湿度,大体上气象预报员可以告诉你明天的天气怎么样。

这就使回归。

上周股票平均交易价格是29元,30元,31元,33元,35元,那么貌似这周一的价格是多少呢?

当然不一定是37元,我不炒股也知道这个原因,但是如果我有三个月或者更长时间的股票交易价格历史,我倒是愿意估计一下,这也是一个回归的问题。

当然有人愿意把这个问题叫做时间序列分析,不过我更加愿意把对连续的结果值(不依靠人为分段Discretize)进行预测的算法归为回归,其原因是其最为流行的方法就是发现回归公式。

企业中应用数据挖掘需要注意什么问题

还记得那个47%的值么,当时一定有人说47%这种比例很不靠谱阿!

对的,原因是那是一个原型,原型永远是可以工作,但工作不好的!

企业在数据挖掘的时候需要注意的一个问题是过适应!

造成之前47%结果的原因之一的,我们答应了客户的一个要求,测试数据挖掘的性能压力,我们对这个连锁餐饮集团全国一周所有门店交易明细数据进行了挖掘,约合8000万条数据!

因此第一得到的结果不是47%,依稀记得是5%一下!

后来对数据进行筛选后,逐渐得到了47%的结果,客户没有正式开始实施项目前我们就停在了这个值上面,因为客户已经愿意开始继续商务谈判了。

?

另外一个问题就是挖掘的收益率问题!

客户愿意继续商务谈判的一个原因是我们推荐的SQLServer2008果然能对5000万条数据进行数据挖掘(虽然很荒谬的要求),另一个原因是我们告诉了客户47%的这条规则并不有用,因为就算能多卖出1万杯百事冰可乐,收益也不会比的上在某些符合特殊特征的门店成功多销售出5000个新款汉堡包。

因此数据挖掘得到的规则必须和这条规则可以产生的收益挂钩!

那些只会产生1%改变的规则没有10%改变的规则来的重要。

群众才是力量!

我曾经告诉客户,数据挖掘得到的规则可能80%一些长期在一线的门店经理都知道,但是这些经理只会占到所有门店经理的20%,28原则哪儿都存在么!

如果说是员工的话,那么可能1%都不到,因此怎么让所有员工都能应用这些规则才是最重要的!

将数据挖掘规则嵌入到一线的POS机应用中,这样收银员就不会只知道推销那些促销组合,而知道如何根据用户已经点的餐品来多掏客户十块钱,记住,是所有的收银员,包括那些刚刚穿上制服的新人!

最后一个问题就是数据挖掘的时效性!

我们不可能两次踏入同一条河流。

尽管对于大的商业企业来说,业务的变化不会那么迅速,但是定期更新规则,并且尝试利用数据挖掘规则作一些新的预测分析偶尔会有一些惊喜,至少长期来看会更加卓有成效。

SQLServer2008数据挖掘的概念

责任编辑:

胡铭娅作者:

IT2009-02-12

【IT168技术文档】数据挖掘是从大型数据集中发现可

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1