SQL Server 中的9种数据挖掘算法.docx

上传人:b****5 文档编号:3526408 上传时间:2022-11-23 格式:DOCX 页数:16 大小:169.88KB
下载 相关 举报
SQL Server 中的9种数据挖掘算法.docx_第1页
第1页 / 共16页
SQL Server 中的9种数据挖掘算法.docx_第2页
第2页 / 共16页
SQL Server 中的9种数据挖掘算法.docx_第3页
第3页 / 共16页
SQL Server 中的9种数据挖掘算法.docx_第4页
第4页 / 共16页
SQL Server 中的9种数据挖掘算法.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

SQL Server 中的9种数据挖掘算法.docx

《SQL Server 中的9种数据挖掘算法.docx》由会员分享,可在线阅读,更多相关《SQL Server 中的9种数据挖掘算法.docx(16页珍藏版)》请在冰豆网上搜索。

SQL Server 中的9种数据挖掘算法.docx

SQLServer中的9种数据挖掘算法

SQLServer2008中的9种数据挖掘算法

1.决策树算法

决策树,又称判定树,是一种类似二叉树或多叉树的树结构。

决策树是用样本的属性作为结点,用属性的取值作为分支,也就是类似流程图的过程,其中每个内部节点表示在一个属性上的测试,每个分支代表一个测试输出,而每个树叶节点代表类或类分布。

它对大量样本的属性进行分析和归纳。

根结点是所有样本中信息量最大的属性,中间结点是以该结点为根的子树所包含的样本子集中信息量最大的属性,决策树的叶结点是样本的类别值。

从树的根结点出发,将测试条件用于检验记录,根据测试结果选择适当的分支,沿着该分支或者达到另一个内部结点,使用新的测试条件或者达到一个叶结点,叶结点的类称号就被赋值给该检验记录。

决策树的每个分支要么是一个新的决策节点,要么是树的结尾,称为叶子。

在沿着决策树从上到下遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不同回答导致不同的分支,最后会到达一个叶子节点。

这个过程就是利用决策树进行分类的过程。

决策树算法能从一个或多个的预测变量中,针对类别因变量,预测出个例的趋势变化关系。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看决策树模型。

如图1所示。

在图1中,我们可以看到决策树显示由一系列拆分组成,最重要的拆分由算法确定,位于“全部”节点中查看器的左侧。

其他拆分出现在右侧。

依赖关系网络显示了模型中的输入属性和可预测属性之间的依赖关系。

并能通过滑块来筛选依赖关系强度。

2.聚类分析算法

聚类分析算法就是衡量个体间的相似度,是依据个体的数据点在几何空间的距离来判断的,距离越近,就越相似,就越容易归为一类。

在最初定义分类后,算法将通过计算确定分类表示点分组情况的适合程度,然后尝试重新定义这些分组以创建可以更好地表示数据的分类。

该算法将循环执行此过程,直到它不能再通过重新定义分类来改进结果为止。

简单得说,聚类就是将数据对象的集合分组成为由类似的对象组成的多个类的过程。

聚类用在商务方面的客户分析中,可以从客户库中发现不同的客户群,并分析不同客户群的行为模式。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看聚类分析模型。

如图2所示。

在图2中,分类关系图表现个类间关联性的强弱。

分类剖面图了解因变量与自变量的关联性强弱程度。

分类特征主要呈现每一类的特性。

分类对比主要呈现出两类间特性的比较。

3.NaiveBayes算法

NaiveBayes算法是MicrosoftSQLServerAnalysisServices提供的一种分类算法,用于预测性建模。

NaiveBayes算法使用贝叶斯定理,假定一个属性值对给定类的影响独立于其他属性的值。

与其他算法相比,该算法所需的运算量小,因而能够快速生成挖掘模型,以发现输入列和可预测列之间的关系。

可以使用该算法进行初始数据探测,在用于大型数据库时,该算法也表现出了高准确率与高速度,能与决策树和神经网络相媲美。

算法采用监督式的学习方式,在分类之前,需要事先知道分类的类型。

通过对训练样本的学习,来有效得进行分类。

就是通过训练样本中的属性关系,产生训练样本的中心概念,用这些已经产生的中心概念,对未分类的数据对象进行预测。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看NaiveBayes模型。

如图3所示。

在图3中,依赖关系网络可以对数据的分布进一步了解。

属性配置文件可以了解每个变量的特性分布情况。

属性特征可以看出不同群分类的基本特性概率。

属性对比就是呈现属性之间的特性对比。

4.关联规则算法

关联算法规则是要发现数据库中变量和个体之间关系程度,也就是要发现大量数据中项集之间有趣的关联或相关联系。

例如,在关联规则挖掘中,典型的例子就是购物篮分析,该分析过程就是通过分析顾客所购买的不同商品之间的联系,来挖掘顾客的购买习惯,并帮助销售商制定营销策略。

关联规则算法中有两个重要的参数支持度和置信度。

支持度就是指X项集和Y项集中,同时发生X,Y事件的概率。

置信度就是指X项集和Y项集中,X事件发生的概率下,Y事件发生的概率。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看关联规则模型。

如图4所示

在图4中,规则可以查看算法中产生的关联规则,我们可以通过此来了解关联规则内容以及其支持度和置信度。

项集可以查看算法中产生的对象组,我们可以通过此来了解各个对象组内容及其支持。

依赖关系网络可以呈现产品间的相关性,并通过图形了解产品间的相关性。

5.顺序分析和聚类分析算法

顺序分析和聚类分析算法是由MicrosoftSQLServerAnalysisServices提供的一种顺序分析算法。

可以使用该算法来研究包含可通过下面的路径或顺序链接到的事件的数据。

该算法通过对相同的顺序进行分组或分类来查找最常见的顺序。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看顺序分析模型。

如图5所示

在图5中分类关系图可以显示挖掘模型中的所有分类,分类之间连线的明暗程度表示分类的相似程度。

通过调整分类右侧的滑块,可以调整显示的连线数。

分类剖面图提供算法创建的分类的总体视图,显示了分类中的每个属性以及属性的分布。

分类特征可以检查分类的组成特征。

分类对比可以比较两个分类的属性。

状态转换可以在选中一个分类后,可在选中的分类中浏览序列状态之间的转换。

6.时序算法

时序算法提供了一些针对连续值预测进行了优化的回归算法,并将时间序列分解成主要趋势成分,季节变化成分,并检验理论模型是否能反应现象。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看时序模型。

如图6所示

在图6中,图表栏显示预测变量个产品过去值以及预测值,以及误差区间。

模型将算法以完成的模型显示为树。

Microsoft时序算法是MicrosoftSQLServer2005AnalysisServices(SSAS)提供的回归算法,用于创建数据挖掘模型以预测连续列,如预测方案中的产品销售额。

其他Microsoft算法创建依靠给定输入列来预测可预测列的模型(如决策树模型),而时序模型的预测则仅根据算法在创建模型时从原始数据集派生的趋势。

以下关系图显示了一个典型模型,用于预测各个时间的销售额。

 

关系图中显示的该模型由两部分组成:

历史信息以红色显示,预测信息以蓝色显示。

红色数据代表算法用于创建模型的信息,而蓝色数据则代表模型作出的预测。

由红色数据和蓝色数据联合形成的线称为“序列”。

每个预测模型必须包含一个事例序列,即区分序列列中不同点的列。

例如,因为关系图中的数据显示了几个月中的历史和预测销售额序列,因此数据列为事例序列。

Microsoft时序算法的一个重要功能就是可以执行交叉预测。

也就是说,如果使用两个单独但相关的序列为该算法定型,就可以使用得到的模型根据其他序列的行为预测一个序列的结果。

例如,一个产品的实际销售额可能会影响另一个产品的预测销售额。

示例

AdventureWorksCycle公司的管理层希望预测来年的自行车每月销售额。

该公司尤其关注的是不同型号的自行车的销售是否彼此相关,一种自行车型号的销售情况是否可用于预测另一种型号的销售情况。

通过对过去三年的历史数据使用Microsoft时序算法,该公司可以生成一个数据挖掘模型,用于预测未来的自行车销售情况。

此外,该公司还可以执行交叉预测,以查看各个自行车型号的销售趋势是否相关。

算法的原理

Microsoft决策树算法通过使用自动回归决策树来为模型定型。

每个模型都包含一个KEYTIME列,该列定义了模型将定义的时间段。

该算法将过去的项的可变数目关联到要预测的每个当前项目。

有关Microsoft时序算法如何运行的详细说明,请参阅AutoregressiveTreeModelsforTime-SeriesAnalysis。

可以用两种方式定义Microsoft时序模型的输入数据。

为了了解第一种方法,请考虑下表中的输入事例:

TimeID

Product

Sales

Volume

1/2001

A

1000

600

2/2001

A

1100

500

1/2001

B

500

900

2/2001

B

300

890

表中的TimeID列包含一个时间标识符,每个日期有两个条目。

Product列定义数据库中的产品。

Sales列说明指定产品一天的毛利润,Volume列说明仓库中保存的指定产品的数量。

在本例中,模型可以包含两个可预测列:

Sales和Volume。

此外,时序模型的输入数据可定义为如下表所示:

TimeID

A_Sales

A_Volume

B_Sales

B_Volume

1/2001

1000

600

500

900

2/2001

1100

500

300

890

在上表中,Sales和Volume列分别被拆分成两列,每个列都用产品名称作前缀。

结果,TimeID列中每天只有一个条目。

该模型包含了四个可预测列:

A_Sales、A_Volume、B_Sales和B_Volume。

这两种定义输入数据的方法都会使模型中显示相同信息,而输入事例的格式将改变定义挖掘模型的方式。

使用算法

时序算法要求要预测的列必须是连续的。

每个模型只允许使用一个事例序列。

Microsoft时序算法支持特定输入列内容类型、可预测列内容类型和建模标志,这些类型和标志如下表所列。

输入列内容类型

Continuous、Key、KeyTime和Table

可预测列内容类型

Continuous和Table

建模标志

NOTNULL和REGRESSOR

所有Microsoft算法均支持一些通用的函数。

但是,Microsoft时序算法还支持下表所列的其他函数。

Lag

PredictTimeSeries

PredictNodeId

PredictVariance

PredictStdev

有关对所有Microsoft算法都通用的函数列表,请参阅数据挖掘算法。

有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件(DMX)函数参考。

Microsoft时序算法不支持使用预测模型标记语言(PMML)创建挖掘模型。

Microsoft时序算法支持多个参数,这些参数可影响生成的挖掘模型的性能和准确性。

下表对各参数进行了说明:

参数

说明

MINIMUM_SUPPORT

指定在每个时序树中生成一个拆分所需的最小时间段数。

默认值为10。

COMPLEXITY_PENALTY

控制决策树的增长。

减少该值将增加拆分的可能性。

增加该值将降低拆分的可能性。

默认值为0.1。

PERIODICITY_HINT

提供算法的有关数据周期的提示。

例如,如果销售逐年变化,序列中的度量单位是月,则周期为12。

此参数采用{n[,n]}的格式,其中的n是任意正数。

方括号[]中的n是可选项,可以按需重复多次。

默认值为{1}。

MISSING_VALUE_SUBSTITUTION

指定用于填充历史数据中空白的方法。

默认情况下,数据中不允许存在不规则的空白或参差不齐的边缘。

以下是可用来填充不规则空白或边缘的方法:

使用以前的值、使用平均值或使用特定数值常量。

AUTO_DETECT_PERIODICITY

指定一个介于0和1之间的数字值,用于检测周期。

如果将此值设置为更接近于1的数,则允许查找许多接近周期的模式并允许自动生成周期提示。

处理大量的周期提示可能会导致模型定型时间明显加长,模型更准确。

如果将此值设置为更接近于0的数,则只检测周期性强的数据的周期。

默认值为0.6。

HISTORIC_MODEL_COUNT

指定将要生成的历史模型的数量。

默认值为1。

HISTORICAL_MODEL_GAP

指定两个连续的历史模型之间的时间间隔。

例如,如果将此值设置为g,则以g、2*g、3*g(依此类推)的时间间隔为被时间段截断的数据生成历史模型。

默认值为10。

注意:

周期提示对模型质量很敏感。

如果给出的提示与实际周期不同,结果会受不良影响。

 

7.神经网络算法

神经网络是一组连接的输入输出单元,其中每一个连接都与一个权相连接。

在训练学习阶段,通过调整训练网络的权,使得能够预测输入样本的正确类标号。

神经网络算法创建由多至三层神经元组成的网络。

这些层分别是输入层、可选隐藏层和输出层。

输入层:

输入神经元定义数据挖掘模型的所有输入属性值及其概率。

隐藏神经元接收来自输入神经元的输入,并向输出神经元提供输出。

隐藏层是向各种输入概率分配权重的位置。

权重说明某一特定输入对于隐藏神经元的相关性或重要性。

输入所分配的权重越大,则输入的值越重要。

输出神经元代表数据挖掘模型的可预测属性值。

在SQLServer2008中,我们可以通过挖掘模型查看器来查看神经网络模型。

如图7所示

在图7中,输入选择神经网络模型将用作输入的属性和属性值。

输出指定使用输出的神经网络的属性。

变量指定属性右侧的条表示指定输入属性状态所倾向的输出属性状态。

条的大小则表示输出状态倾向于输入状态的程度。

8.逻辑回归算法

逻辑回归是根据输入域值对记录进行分类的统计方法,通过建立一组方程,把输入域值与输出字段每一类的概率联系起来。

模型在分析二分类或有序因变量与解释变量的关系,用自变量去预测因变量在给定某个值的概率。

一旦生成模型,便可用于估计新的数据的概率。

概率最大的目标类被指定为该记录的预测输出值。

逻辑回归算法是神经网络算法的一种变体,用于确定多个因素对一对结果的影响。

通过对输入和输出之间的关系进行建模。

来测量每个输入对输出的影响,并权衡不同输入在完成的模型中的作用。

9.线性回归算法

线形回归算法是一种常用的用于统计并作出预测的方法,使决策树算法的一种变体,有助于计算依赖变量和独立变量之间的线性关系,根据输入字段估计预测输出字段的最佳线形方程,然后使用该关系进行预测。

使用线性回归确定两个连续列之间的关系,代表一条直线或者平面,以评估数据列之间的关系。

详解在不同的SQLServer数据库之间查询数据

 2009-04-3009:

28 yaosansi cnblogs 我要评论(0)

∙摘要:

如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?

如果,你想在同一台数据服务器上,在不同的数据库之间查询数据,又该怎么办呢?

那就让我为你介绍Synonym和openquery吧。

∙标签:

Synonym  Openquery  SQLServer

Oracle帮您准确洞察各个物流环节

1,什么是Synonym

Synonym(同义词)是Sql2005的新特性。

推出已经好几年了。

你可以简单的理解Synonym为其他表的别名。

我们使用Northwind数据库为例。

比如,看下面的例子

Synonym MyCustomers FOR Customers

为Customers表创建一个Synonym,叫MyCustomers。

你可以把这个MyCustomers当作一个普通的表,可以对它进行查询,更新,删除和插入。

比如

查询:

Select*fromMyCustomers.

插入:

 InsertintoMyCustomers (CustomersID,CompanyName)values('Tom','MS')

所有的操作,和普通的表没有区别。

2,Synonym的应用

在你的程序发布的时候,你突然发现你需要更改某个表名,或字段名。

而你的程序已经不可能修改。

这时,怎么办呢?

那就创建Synonym吧。

当然,在sql2000时代,你可以使用view来做这个事情,或sprocs或udf等。

但Synonym有其它所不能的功能,那就是跨数据库,跨服务器。

3,Synonym在同一服务器上的不同数据库

对于同一服务器上的不同数据库,我们可以使用Synonym,将其他数据库中的表或view或sprocs及udf在本数据库中映射别名。

这样,就可以不用更改连接字符串,而在当前对话数据库的情况下,获取其他数据库的数据,并对它进行,查询,更新,删除和插入工作。

先假设已经存在Northwind数据库,然后,再建一个数据库。

我们在新的数据库上,创建Customer表的Synonym.

Create Synonym MyCustomers For Northiwind.dbo.Customers 

需要注意的是,后面需要写清那个数据库,那个表,中间dbo为表的owner.然后,运行InsertintoMyCustomers (CustomersID,CompanyName)values('Tom','MS')和Select*fromMyCustomers.看看是不是真的像普通表那样。

4,Synonym在不同服务器上的不同数据库

假设,我们有一台数据库服务器叫SqlTest。

上面有个数据库叫Northwind。

我们本地还有一台数据库服务器。

叫LocalTest.其上面有一数据库叫Northwind或其他什么的。

突然有一天,为了使本地的数据库跑的更快,本地的老数据被移到SqlTest上去了,本地只保存最近更新的。

那老数据总还是要用的,怎么样实现不同服务器之间的数据操作呢?

那就用Synonym吧。

如下

Create Synonym MyCustomers For SqlTest.Northiwind.dbo.Customers 

在上一个例子的基础上,加了个机器名字而已。

就这么简单?

不是吧?

那台服务器还不一定知道用户名和密码呢。

恩,是的,还要在本地服务器上,注册下远程的服务器。

使用sp_addlinkedserver,次存储过程定义如下:

sp_addlinkedserver[@server=]'server'

[,[@srvproduct=]'product_name']

[,[@provider=]'provider_name']

[,[@datasrc=]'data_source']

[,[@location=]'location']

[,[@provstr=]'provider_string']

[,[@catalog=]'catalog']

可以运行下面的脚本,将SqlTest注册到本地

EXECsp_addlinkedserver

@server='SqlTest',

@provider='MSDASQL',

@provstr='DRIVER={SQLServer};SERVER=SqlTest;UID=sa;PWD=;'

这样,就可以把远程数据库当成本地的来使用。

5,Synonym的其他功能和用UI创建Synonym

Synonym不光可以对表创建,也可以为view,sprocs,以及udf创建相应的Synonym.如图:

Sql2005的ServerManagermentStudio有这么一项,选择后,会出现下面画面。

添入名称等,选择object的类型,你就可以选为View,Table,Sprocs和udf创建Synonym了。

6,openquery

相对于Synonym,OpenQuery相对来说,功能就弱了点。

其只是在调用其它数据库上的sprocs.比如

select * from openquery([SqlTest], 'exec northwind.dbo.

[Customers By City] @param1=N''London''')where CustomerID = 'AROUT'

这就是在执行SqlTest服务器上的,northwind数据库下的,[CustomersByCity]的存储过程。

你可以在LinqToSql进阶系列(五)StoreProcedure篇一文中,获得该存储过程。

openquery其第一个参数为数据服务器的名称。

如果是异地的,也需要在本地注册它,和Synonym相同。

你也可以写本地的机器名,那就成了本地跨数据库的操作了。

在上面的这个例子中,其语句中有London,是传入存储过程的值。

因为其已经被'引过,在openquery函数下,又要被'引。

所以,它两头加了两个''。

如果有疑问,请参阅SQL语句中特殊字符的处理及预防sql注射

7,Linq对Synonym的支持

目前SqlMetal和ORdesigner无法对Synonym做映射。

但是,用户依然可以通过手工修改dbml达到映射的目的。

Synonym在Linq中的使用。

和其他表等没有任何差别。

结论:

通过Synonym,我们可以实现不同数据库,以及不同服务器之间的数据分流。

以达到平衡负载的目的,提高效率的目的。

【编辑推荐】

1.SQLServer群集的几个关键技巧

2.SQLServer2008深度应用

3.浅谈配置SQLServer远程备份的方法

决策树算法的系统实现与修剪优化[作者:

佚名    转贴自:

本站原创    点击数:

6145    更新时间:

4/4/2004    文章录入:

admin]

决策树是对分类问题进行深入分析的一种方法,在实际问题中,按算法生成的决策树往往复杂而庞大,令用户难以理解。

这就告诉我们在重分类精确性的同时,也要加强对树修剪的研究。

本文以一个决策树算法的程序实现为例,进一步讨论了对树进行修剪优化时可能涉及的问题,目的在于给决策树研究人员提供一个深入和清晰的简化技术视图。

引言

机器学习领域研究对数据的归纳分类,主要集中在预测精确度方面。

然而,在许多实际业务中,只有"数据的预测结构更易于理解"的分类规则才易让人接受,就象这个分类规则所解决的决策问题一样让人清楚明白。

在机器学习和统计领域,决策树归纳作为一种分类问题的解决方法正在被广泛的研究。

由于许多树简化规则正在生成越来越简单和越来越小的决策树,树简化规则已经成为继预测精度之后的第二个研究焦点。

总结树简化技术的关键问题在于解决方法的多样性。

要驾御这种多样性,可以将这些方法分为五类。

类的建立是将树归纳看作是对预想树空间的即席状态搜索。

一、决策树算法的程序实现

决策树归纳算法在机器学习、统计和其它解决分类问题的领域有着广泛的应用。

决策树可以按如下方式分类一个查询事例,给定要分类的查询Q,树将沿一条路径从根遍历到叶节点,直到将类标签分配给Q。

测试通常能够评价描述事例的特征或(如布尔或线形)组合特征集。

笔者开发的决策树算法包括四个输入:

1.C--培训事例集,由特征集和一个类标签定义

2.R--测试集,用于将培训事例集分成若干子集

3.E()--评价函数,用于评价分类结果的质量

4.Stop()--暂停函数,用于确定何时结束决策树

算法输出的决策树T的每一叶代表一个类,通常有唯一的类标签。

决策树由根部向下运用递归分割算法。

Make-T函数生成决策树,并完成后期修剪工作,这可能有三种结果:

维持原状、修剪或转换成另一种数据结构。

Induce-T函数输出

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

当前位置:首页 > 初中教育 > 数学

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

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