
*基金项目:黑龙江省教育厅技术研究项目。
**刘春大庆师范学院计算机科学与信息技术系副教授(黑龙江,大庆163712)。
1关联规则挖掘
1.1问题描述
关联分析是寻找在同一个事件中出现的不同项的相关性。经典的问题是“尿布与啤酒”的故事。沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。利用数据挖掘方法对这些数据进行分析和挖掘。一个意外的发现是:“跟尿布一起购买最多的商品竟是啤酒。经过大量实际调查和分析,揭示了一个隐藏在“尿布与啤酒”背后的美国人的一种行为模式:一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。关联规则挖掘主要考虑支持度和置信度两个阈值。
设X 是项集,T 是数据库DB 中的任意一个记录。X 的支持度是指支持X 的记录数与全体记录数的比,Support (X )=│邀T │T#612;X ,T ∈DB妖│/│DB │。蕴涵关系X →Y 在数据库DB 中的置信度是指同时支持X 和Y 的记录数与支持X 的记录数之比,即:置信度(X →Y ,T ∈DB妖│。支持度可理解为在数据库DB 中随机抽取一个记录,该记录同时支持X 和Y 的概率。置信度可理解为在支持X 的记录
全体中随机抽取一个记录,该记录支持Y 的概率。具有高置信度和强支持度的规则称为
“强规则”,关联规则发现任务的本质就是要在数据库中发现强关联规则。
利用这些关联规则可以了解各种物资之间潜在的关系行为,这对于物资的二次销售有很大的决策帮助。1.2算法分析1.2.1Apriori 算法
算法的核心思想是使用候选项集找频繁项集。采用两阶段挖掘的思想,并且基于多次扫描事务数据库来执行的为了生成所有频集。其核心思想简要描述如下:(1)L1=邀large 1-itemsets妖;
(2)for (k=2;Lk-1¹F ;k++)do begin (3)Ck=apriori-gen (Lk-1);
(4)for all transactions t&Icirc ;D do begin (5)Ct=subset (Ck ,t );
(6)for all candidates c&Icirc ;Ct do
(7)c.count++;(8)end
(9)Lk=邀c&Icirc ;Ck |c.count³minsup妖(10)end
(11)Answer=∪kLk ;
首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的
2010年6月
第3期
电脑学习
摘
要:数据挖掘被称为数据库中的知识发现,是一个跨学科的研究领域。关联规则分析是数据挖掘中一个重要的课题,用于
关键词:中图分类号:TN311.11
文献标识码:A 文章编号:1002-2422(2010)03-0095-03
Research and Application of Association Rules in Data Mining
Liu Chun
Tan Kun
An Xiangming
Abstract :Data mining is also called knowledge discovery in database,which is an interdisciplinary research field.Association
Keyword:发现存在于数据库中的项或属性间的关联联系,这些联系是事先未知且隐藏的。关联规则的研究主要集中在生成频数据挖掘中关联规则的研究与应用*
ms or attributes,however these relations are unknown and hidden.Association rules are concerned with data mining 刘春**
谭琨安向明
繁项集的挖掘算法,通过对几种主要关联规则的算法分析,利用Apriori 算法研究再生资源系统中关联规则的确定,从rules analysis is a significant subject of data mining.It is used to discover the associations that exist between ite-而实现物资的二次销售。
关联规则
数据挖掘频繁项集支持度置信度
algorithm based on the frequent items collection.Through analyzing several main algorithms,Apriori algorithm is us-ed to implement second sail of materials by determining the association rules of the regenerated resource system.
Association Rule Data Mining Frequent Item Sets Support Degree Confidence Degree
·95·
1.2.2基于划分的算法
先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对其生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支
持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。
1.2.3FP-树频集算法
算法的核心思想是不产生侯选挖掘频繁项集的方法。在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree 可以放入主存中。
1.3关联规则挖掘过程
首先,先从收集的数据集合中找出所有的高频项目组。既指某一项目组出现的频率相对于所有记录而言,必须达到某一水平;然后利用前一步骤的高频项目组来产生规则,在最小支持度的下,若一规则所求得的信赖度满足最小支持度,称此规则为关联规则。其中同层关联规则可以采用两种支持度策略:
(1)统一的最小支持度。对于不同的层,都使用同一个最小支持度。
(2)递减的最小支持度,不同层次的最小支持度也不同,较低层次的最小支持度相对较小。
2应用
关联分析的目的就是为了挖掘出隐藏在数据间的关联规则。对再生资源数据库中的数据进行关联分析就是找到已有的积压物资与现在销售的物资之间的相互联系,构建关联模型。可以更好地组织销售,实现物资的二次销售,把状态良好的积压物资,并非报废物资,再次利用,变“废”为“宝”,逐年减少积压物资总额,降低企业营销成本,从而增创企业效益。那么衡量规则是否构建的理想,有两个量可以进行衡量,即置信度和支持度。以销售订单为例,分析表1如下。根据表1中物资销售情况,整理后产生表2,横栏和纵栏的数字表示同时销售出这两种商品的交易条数。如购买有防爆灯的交易数为4,而同时购买防爆灯和接线盒的交易数为2。
置信度是通常计算的条件概率P(Y,X)。计算公式为:关联规则X→Y的置信度
置信度(X→Y)=P(Y|X)=P(X,Y)/P(X)=#邀购买X 和Y的顾客妖/#邀购买X的顾客妖(1)
支持度(X,Y)=P(X,Y)=#邀购买X和Y的顾客妖/#邀顾客妖(2)根据公式(1)可见置信度表示了这条规则有多大程度上值得可信。设条件的项的集合为A,结果的集合为B。置信度计算在A中,同时也含有B的概率。即置信度(A→B)=P(B|A)。例如计算“如果防爆灯则接线盒”的置信度。由于在含有防爆灯的4条交易中,仅有2条交易含有接线盒,其置信度为0.5。
支持度计算在所有的交易集中,既有A又有B的概率。例如在4记录中,既有防爆灯又有接线盒的记录有2条。则此条规则的支持度为2/4=0.5。这条规则可表述为,如果销售一个防爆灯,则有50%的可能销售出接线盒。而这样的情况会有50%的可能发生。因此一方面,在进行库房物资管理时,把这类物资放置同一库房或同一层货架上,也便于保管员发货;另一方面,在组织销售时,可以把新物资防爆灯销售出去的同时不直接销售待购物资接线盒,而是销售积压物资中相关的产品,不但满足了顾客的需要,同时也产生降压增效的作用;再者,利用这些关联规则,可以为企业制定市场营销策略,使营销能够有针对性进行,减低销售成本,增加销售额。
3结束语
关联规则分析是数据挖掘中的一个重要方法,用于发现存在于数据库中的项或属性间的联系,这些联系是不能通过传统的数据库逻辑操作或统计的方法得出。因此关联规则挖掘不是基于数据自身的固有属性,而是基于数据项的同时出现特征。利用关联规则分析实现大量的良好状态积压物资的二次利用,不但提高销售业绩,而且能够逐年减少维护积压物资的人力、物力和财力,减低企业的成本,从而提高企业的经济效益。
参考文献
[1]R.Agrawal,T.Imielinski,A.Swami.Mining association rules
between sets of items in large databases.Proceedings of the
ACM SIGMOD Conference on Management of data,May1993.[2]R.Agrawal,and R.Srikant.Fast algorithms for mining ass-
ociation rules in large database.Technical Report FJ9839,IBM Almaden Research Center,San Jose,CA,Jun.1994.
[3]铁治欣,陈奇俞,瑞钊.关联规则采掘综述[J].北京:计算机应
用,2001(1).
[4]毛国君,殷立娟,王石.数据挖掘原理与算法[M].北京:清华大
物资名称
防爆灯、接线盒
组合开关、防爆灯,按钮
防爆灯
防爆灯、接线盒
按钮
订单
1
2
3
4
5
表1订单表
防爆灯
防爆灯
按钮
组合
开关
接线盒
表2交易情况表
按钮组合开关接线盒
4
1
2
1
2
2
12
10
20
2
2
·96·
·97·
学出版社,2007.
[5]张银奎,廖丽,宋俊.数据挖掘原理[M].北京:机械工业出版社,2003.
[6]李雄飞.数据挖掘与知识发现[M].北京:
高等教育出版社,2007.
收稿日期:2010-05-05
*胡海涛哈尔滨理工大学计算机科学与技术学院助理研究员(黑龙江,哈尔滨150080)。
在利用ADO 对象开发数据库应用程序时,查询数据的窗体被大量应用。通常只有复合查询才能满足实际工作情况需要。现有的实现组合查询的方法多以修改程序中查询数据的核心部分—SQL 语句为主。这种方法需要大量的程序代码来实现。为使生成的SELECT 语句符合语法要求,还需要很多校验语句合法性的代码。另一种方法是让用户直接输入SQL 语句,编程相对较为简单,但由于要求用户具备较高的专业知识,所以实际编程中较少使用。还有一种通用的组合查询程序设计方法,这种方法从系统表中读取字段信息,采用通用程序拼写SQL 语句。此方法通用程序编写难度较大,同时功能常常不能满足用户的特殊要求。
提出一种快速实现组合查询程序设计的方法,该方法借助ADO 对象模型中的Parameter 对象,用非常少的程序代码实现组合查询,灵活简便地实现大部分特殊查询要求。
1利用ADO 对象模型在SQL 语句中使用检索参数
ADO 对象模型中的Parameter 对象是专门为在SQL 语句中使用参数设计的。Command 对象中有一个Parameters 参数集合,其中包含的Parameter 对象代表参数或基于参数化查询或存储过程的Command 对象相关联的参数。这样Select 语句可使用某个参数定义Where 子句的匹配条件,Select 语句中的参数用芽表示。例如窗体有一文本框txtSex ,现需要查询某一性别的职工的结果集,假定职工表名为Staff ,数据结构如表1所示。设计实现这种功能的代码如下:
Dim cn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rst As New ADODB.Recordset
Dim par As New ADODB.Parameter cn.ConnectionString =″dsn=datas;″cn.Open
Set cmd.ActiveConnection =cn
par.Size =20:par.Type=adVarChar:par.Value=Text1.Text cmd.Parameters.Append par
cmd.CommandText =″select 觹from xuesheng where Sex=芽″Set rst =cmd.Execute
2组合条件查询的快速实现
利用Parameter 对象实现固定条件的查询非常简单方便,在此基础上对SQL 语句深入挖掘,即可实现组合条件查询。还是以职工表为例,假定需要查询某一专业及某一职称的职工名单、
或查询某一性别的部门职工名单、或查询某一年龄某一专业的男性职工名单等等。所有这些查询的共同特点是在编号、姓名、性别、部门、职称、年龄、专业、职务这些条件中选择几个条件进行组合并取满足这些条件的交集的数据集合。2.1
or 运算符与参数组合
为实现组合查询功能,首先巧妙利用or 运算符与参数组合设计高级的SQL-SELECT 语句,设某一条件的参数为
2010年6月
第3期
电脑学习
摘
要:论述了一种利用ADO 对象技术及SQL 语言实现对数据库多重条件组合查询的方法。此方法具有通用性,从而减少
关键词:中图分类号:TP311.52文献标识码:A
文章编号:1002-2422(2010)03-0097-02
A Method of Realizing a Combined Query by Using ADO Object
Hu Haitao
Abstract :
A method of quickly realizing a routine of combined query by using ADO object is presented in this paper.The
Keyword:开发所需时间。
method is quite easy to realize in VB and other software development tools.
胡海涛*
组合查询
ADO SQL 语句Combined Query ADO SQL
应用ADO 对象模型实现组合查询的方法
字段名
含义数据类型备注
主键
Number 姓名Char (20)Name 编号Char (20)Sex 部门Char (20)Dept 性别Char (20)Rank 年龄Char (20)Age 职称Integer Major 职务
Char (20)Duty
专业Char (20)
表1职工表数据结构
......................................................................................................................................
