研究方向前沿读书报告
数据挖掘技术的算法与应用
目录
第一章 数据仓库... 5
1.1 概论... 5
1.2 数据仓库体系结构... 6
1.3 数据仓库规划、设计与开发... 7
1.3.1 确定范围... 7
1.3.2 环境评估... 7
1.3.3 分析... 7
1.3.4 设计... 8
1.3.5 开发... 8
1.3.5 测试... 8
1.3.6 运行... 8
1.4 小结... 9
第二章 数据挖掘... 9
2.1 概论... 9
2.2 数据挖掘研究的内容和本质... 10
2.2.1 广义知识... 10
2.2.2 关联知识... 10
2.2.3 分类知识... 11
2.2.4 预测型知识... 11
2.3 数据挖掘流程... 11
2.3.1 确定业务对象... 12
2.3.2 数据准备... 12
2.3.3 数据挖掘... 12
2.3.4 结果分析... 12
2.3.5 知识的同化... 13
2.4 数据挖掘的方法... 13
2.4.1 神经网络方法... 13
2.4.2 遗传算法... 13
2.4.3 决策树方法... 14
2.4.4 粗集方法... 14
2.4.5 覆盖正例排斥反例方法... 14
2.4.6 统计分析方法... 14
2.4.7 模糊集方法... 14
2.6 数据挖掘工具的现状... 15
2.7 数据挖掘未来研究方向及热点... 16
2.4.1 网站的数据挖掘... 16
2.4.2 生物信息或基因数据挖掘... 17
2.4.3 文本的数据挖掘... 17
2.4.4 2005年十大热点问题... 17
2.5 小结... 18
第三章 关联规则... 18
3.1 概论... 18
3.2 基本概念... 18
3.3 关联规则种类... 19
3.4 主要研究方向和典型算法分析... 20
3.4.1 多循环方式的采掘算法... 20
3.4.2 增量式更新算法... 21
3.4.3 并行发现算法... 22
3.5 频集算法的几种优化方法... 24
3.4.1 基于划分的方法... 24
3.4.2 基于Hash的方法... 24
3.4.3 基于采样的方法... 25
3.4.4 减少交易的个数... 25
3.4.5 其他的频集挖掘方法... 25
3.4.6 提高效率的几种方法说明... 26
3.6 多层和多维关联规则的挖掘... 27
3.7 关联规则价值衡量的方法... 28
3.6.1 系统客观层面... 28
3.6.2 用户主观层面... 29
3.8 选择规则的方法... 29
3.9 小结... 30
第四章 正负关联规则研究... 30
4.1 概述... 30
4.2 研究现状... 31
4.3 关联规则具体研究... 31
4.3.1 关联规则挖掘的矩阵算法... 31
4.3.2 基于相关系数的正、负关联规则... 32
4.3.3 项集的相关性判断正负关联规则... 32
4.3.4 正、负关联规则间的置信度关系研究... 33
4.3.5 挖掘正负关联规则... 33
4.3.6 布尔加权关联规则的几种开采算法及比较... 34
4.3.6 关联规则的增量式更新... 34
4.3.7 并行化的分组关联规则算法... 36
4.3.8 分布式的数据挖掘... 36
4.6 研究方向的理论意义和实用价值... 38
4.7 小结... 38
第五章 可视化研究... 39
5.1 概述... 39
5.2 研究现状... 39
5.3 研究方向的理论意义和实用价值... 39
5.4 可视化具体研究... 39
5.4.1 矩阵表示... 39
5.4.2 规则多边形... 40
5.4.3 平行坐标系... 41
5.5 小结... 41
参考资料:... 42
本报告的组织
第一章 数据仓库的内容
第二章 数据挖掘的内容
第三章 关联规则的内容
第四章 正负关联规则的研究,各种方法的具体算法 实现。
第五章 可视化研究
第一章 数据仓库
1.1 概论
传统数据库在日常的管理事务处理中获得了巨大的成功,但是对管理人员的决策分析要求却无法满足。因为,管理人员常常希望能够对组织中的大量数据进行分析,了解业务的发展趋势。而传统数据库只保留了当前的业务处理信息,缺乏决策分析所需要的大量历史信息。为满足管理人员的决策分析需要,就需要在数据库的基础上产生适应决策分析的数据环境——数据仓库(DW,Data Warehouse)。[1]
目前,数据仓库一词尚没有一个统一的定义,著名的数据仓库专家W。H。Inmon在其著作《Building the Data Warehouse》一书中给予如下描述:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。对于数据仓库的概念我们可以从两个层次予以理解,首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
根据数据仓库概念的含义,数据仓库拥有以下四个特点:
1、面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
2、集成的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
3、相对稳定的。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
4、反映历史变化。操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
通过利用数据仓库系统,人们可以获得许多方面的知识。[7]
1.2 数据仓库体系结构
企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。整个数据仓库系统是一个包含四个层次的体系结构,具体由下图表示:
·数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等。
·数据的存储与管理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
·OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
·前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。[8]
1.3 数据仓库规划、设计与开发
对企业自身来说,数据仓库的建设是一个系统工程,是一个不断建立、发展、完善的过程,通常需要较长的时间。这就要求各企业对整个系统的建设提出一个全面、清晰的远景规划及技术实施蓝图,将整个项目的实施分成若干个阶段,以“总体规划、分步实施、步步见效”为原则,不仅可迅速从当前投资中获得收益,而且可以在已有的基础上,结合其他已有的业务系统,逐步构建起完整、健壮的数据仓库系统。
企业数据仓库的建设通常按照快速原型法予以实施,主要包括:确定范围、环境评估、分析、设计、开发、测试和运行等几个阶段。同时企业数据仓库又是一个在原型的基础上进行不断迭代的过程。
1.3.1 确定范围
确定范围的主要任务包括了解方向性分析处理需求,确定信息需求,确定数据覆盖范围。方向性需求包括:决策类型、决策者感兴趣的问题(或对象)等。在确定范围时应该重视的因素是必须用户驱动和数据驱动相结合,同时可以借鉴国内外已有的成功经验。
1.3.2 环境评估
环境评估是对企业数据仓库系统建设的硬件环境和软件环境进行选型和准备。在硬件平台选择中需要选择与数据仓库系统规模相适应的核心服务器,同时我们认为数据仓库系统平台与业务处理平台应该相分离。软件平台的选择主要包括数据仓库引擎、OLAP引擎、前端分析展现工具的选择。产品进行测试是软件选型的一种有效方法,各个企业可以根据自身的数据状况对各类产品进行测试。
1.3.3 分析
分析阶段主要包括两个方面的任务是深入了解数据源和分析数据仓库系统所包含的主题域及其相互之间的关系。分析阶段必须坚持用户参与,并且与原有系统开发或维护人员进行深入的沟通。
需求分析包括一下的工作:确定数据仓库的粒度;确定候选的衡量指标(Candidate Measure)、事实表以及维度,包括确定维度的层次结构;构建初始的多维模型。[5]
1.3.4 设计
数据仓库设计的主要任务包括与操作型系统接口的设计和数据仓库本身的设计两个部分的内容。其中与操作型系统接口的设计主要是指数据抽取、清理、转换和刷新策略的设计。从多个不同的数据源中抽取数据,需要解决数据的不一致性,保证数据的质量。其中的不一致性主要包含模式冲突和语义冲突。从操作型数据库模型到数据仓库模型的转变需要大量细致的工作,例如:-消除纯粹是操作型的数据;-将包含在多个表中的有关数据进行合理合并;-适当增加部分导出数据;-在码值中增加时间关键字;-按照合适的数据粒度进行综合。
数据仓库本身的设计包括数据仓库逻辑数据模型的设计、数据仓库物理数据模型的设计。由于目前数据仓库产品尚未形成一套统一的标准,因此在数据仓库设计阶段必须要有数据仓库专家和数据仓库系统产品提供商的参与。
目前,主流的数据仓库建模技术分为两种:实体关系建模(Entity-Relationship Modeling)以及维建模(Dimension Modeling)。其中,维建模又分为星型结构以及雪花型结构等。[5]
数据仓库设计工具的选择有:
EDA/SQL。(SAS Institute Inc。)SAS研究所
(Sybase,Inc。)Sysbase有限公司[3]
CA公司的Erwin[5]
1.3.5 开发
开发阶段所要完成的主要内容包括数据仓库建模、数据抽取和加载模块、数据访问模块以及开发实际应用。实际应用开发建议采用撌缘銛的方法,从急需的业务开始进行,应该重视的因素包括必须有行业专家的参与,同时必须有数据仓库专家的参与。
1.3.5 测试
测试是保证系统可靠性的重要手段。数据仓库测试与一般软件系统测试不同的是数据仓库的测试不仅包括对软件系统的测试,同时包括对数据的测试。在测试阶段必须保证测试的充分性,同时注意测试数据的覆盖范围。
1.3.6 运行
系统运行主要包括用户培训、数据加载、数据访问及应用等。在数据仓库系统的运行过程中,不断收集用户新的需求。
数据仓库系统的建设不可能一蹴而就,它是一个不断建立、完善、健全的过程。这个过程是随着业务量、业务范围和客户的不断发展而发展的,其成长的速度非常之快,同时随着业务的发展,数据仓库的价值也将随之增长。[8]
1.4 小结
本章主要介绍说明数据仓库的相关概念、体系结构和设计开发等。为数据挖掘的前期工作做准备。为数据挖掘提供良好的环境。当然,数据仓库并不是数据挖掘的先决条件,因为有很多数据挖掘可直接从操作数据源中挖掘信息。
第二章 数据挖掘
2.1 概论
数据挖掘(Data Mining)是发现数据中有用模式的过程。数据挖掘会话的目的是确定数据的趋势和模式。[4] 数据挖掘强调对大量观测到的数据库的处理。它是涉及数据库管理,人工智能,机器学习,模式识别,及数据可视化等学科的边缘学科。用统计的观点看,它可以看成是通过计算机对大量的复杂数据集的自动探索性分析。
顾名思义, 数据挖掘就是从大量的数据中挖掘出有用的信息。它是根据人们的特定要求,从浩如烟海的数据中找出所需的信息来,供人们的特定需求使用。2000年7月,IDC发布了有关信息存取工具市场的报告。1999年,数据挖掘市场大概约为7。5亿美元,估计在下个5年内市场的年增长率为32。4%,其中亚太地区为26。6%。到2002年,该市场会发展到22亿美元。据国外专家预测,随着数据量的日益积累和计算机的广泛应用,在今后的5—10年内,数据挖掘将在中国形成一个新型的产业。
数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在数据挖掘技术在商业应用中已经可以马上投入使用,因为对这种技术进行支持的三种基础技术已经发展成熟,他们是:(1) 海量数据搜集;(2)强大的多处理器计算机;(3)数据挖掘算法。Friedman[1997]列举了四个主要的技术理由激发了数据挖掘的开发、应用和研究的兴趣:(1)超大规模数据库的出现,例如商业数据仓库和计算机自动收集的数据记录;(2)先进的计算机技术,例如更快和更大的计算能力和并行体系结构;(3)对巨大量数据的快速访问;(4) 对这些数据应用精深的统计方法计算的能力。
商业数据库现在正在以一个空前的速度增长,并且数据仓库正在广泛地应用于各种行业;对计算机硬件性能越来越高的要求,也可以用现在已经成熟的并行多处理机的技术来满足;另外数据挖掘算法经过了这10多年的发展也已经成为一种成熟,稳定,且易于理解和操作的技术。
随着在80年代末一个新的术语,它就是数据库中的知识发现,简称KDD(Knowledge discovery in database)。它泛指所有从源数据中发掘模式或联系的方法,人们接受了这个术语,并用KDD来描述整个数据发掘的过程,包括最开始的制定业务目标到最终的结果分析,而用数据挖掘(data mining)来描述使用挖掘算法进行数据挖掘的子过程。[9]
数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先未知,有效和可实用三个特征。
基于并行系统的数据库管理系统也给数据挖掘技术的应用带来了便利。如果你有一个庞大而复杂的数据挖掘问题要求通过访问数据库取得数据,那么效率最高的办法就是利用一个本地的并行数据库。
现在面临一个尴尬的境地——数据丰富信息匮乏(data rich but information poor)!快速增长的海量数据,已经远远的超过了人们的理解能力,如果不借助强有力的工具,很难弄清大堆数据中所蕴含的知识。结果,重要决策只是基于制定决策者的个人经验,而不是基于信息丰富的数据。数据挖掘就这样应运而生,数据挖掘填补了数据和信息之间的鸿沟。[11]
2.2 数据挖掘研究的内容和本质
随着DM/KDD研究逐步走向深入,数据挖掘和知识发现的研究已经形成了三根强大的技术支柱:数据库、人工智能和数理统计。因此,KDD大会程序委员会曾经由这三个学科的权威人物同时来任主席。目前DM/KDD的主要研究内容包括基础理论、发现算法、数据仓库、可视化技术、定性定量互换模型、知识表示方法、发现知识的维护和再利用、半结构化和非结构化数据中的知识发现以及网上数据挖掘等。
数据挖掘所发现的知识最常见的有以下四类:
2.2.1 广义知识
广义知识指类别特征的概括性描述知识。根据数据的微观特性发现其表征的、带有普遍性的、较高层次概念的、中观和宏观的知识,反映同类事物共同性质,是对数据的概括、精炼和抽象。
广义知识的发现方法和实现技术有很多,如数据立方体、面向属性的归约等。数据立方体还有其他一些别名,如“多维数据库”、“实现视图”、“OLAP"等。该方法的基本思想是实现某些常用的代价较高的聚集函数的计算,诸如计数、求和、平均、最大值等,并将这些实现视图储存在多维数据库中。既然很多聚集函数需经常重复计算,那么在多维数据立方体中存放预先计算好的结果将能保证快速响应,并可灵活地提供不同角度和不同抽象层次上的数据视图。另一种广义知识发现方法是加拿大SimonFraser大学提出的面向属性的归约方法。这种方法以类SQL语言表示数据挖掘查询,收集数据库中的相关数据集,然后在相关数据集上应用一系列数据推广技术进行数据推广,包括属性删除、概念树提升、属性阈值控制、计数及其他聚集函数传播等。
2.2.2 关联知识
它反映一个事件和其他事件之间依赖或关联的知识。如果两项或多项属性之间存在关联,那么其中一项的属性值就可以依据其他属性值进行预测。最为著名的关联规则发现方法是R。Agrawal提出的Apriori算法。关联规则的发现可分为两步。第一步是迭代识别所有的频繁项目集,要求频繁项目集的支持率不低于用户设定的最低值;第二步是从频繁项目集中构造可信度不低于用户设定的最低值的规则。识别或发现所有频繁项目集是关联规则发现算法的核心,也是计算量最大的部分。
2.2.3 分类知识
它反映同类事物共同性质的特征型知识和不同事物之间的差异型特征知识。最为典型的分类方法是基于决策树的分类方法。它是从实例集中构造决策树,是一种有指导的学习方法。该方法先根据训练子集(又称为窗口)形成决策树。如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到窗口中,重复该过程一直到形成正确的决策集。最终结果是一棵树,其叶结点是类名,中间结点是带有分枝的属性,该分枝对应该属性的某一可能值。 数据分类还有统计、粗糙集(RoughSet)等方法。线性回归和线性辨别分析是典型的统计模型。为降低决策树生成代价,人们还提出了一种区间分类器。最近也有人研究使用神经网络方法在数据库中进行分类和规则提取。
2.2.4 预测型知识
它根据时间序列型数据,由历史的和当前的数据去推测未来的数据,也可以认为是以时间为关键属性的关联知识。
目前,时间序列预测方法有经典的统计方法、神经网络和机器学习等。1968年Box和Jenkins提出了一套比较完善的时间序列建模理论和分析方法,这些经典的数学方法通过建立随机模型,如自回归模型、自回归滑动平均模型、求和自回归滑动平均模型和季节调整模型等,进行时间序列的预测。由于大量的时间序列是非平稳的,其特征参数和数据分布随着时间的推移而发生变化。因此,仅仅通过对某段历史数据的训练,建立单一的神经网络预测模型,还无法完成准确的预测任务。为此,人们提出了基于统计学和基于精确性的再训练方法,当发现现存预测模型不再适用于当前数据时,对模型重新训练,获得新的权重参数,建立新的模型。也有许多系统借助并行算法的计算优势进行时间序列预测。
此外,还可以发现其他类型的知识,如偏差型知识(Deviation),它是对差异和极端特例的描述,揭示事物偏离常规的异常现象,如标准类外的特例,数据聚类外的离群值等。所有这些知识都可以在不同的概念层次上被发现,并随着概念层次的提升,从微观到中观、到宏观,以满足不同用户不同层次决策的需要。[9]
2.3 数据挖掘流程
数据挖掘是指一个完整的过程,该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识。
数据挖掘环境可示意如下图:
下图描述了数据挖掘的基本过程和主要步骤
数据挖掘的基本过程和主要步骤:
在数据挖掘中被研究的业务对象是整个过程的基础,它驱动了整个数据挖掘过程,也是检验最后结果和指引分析人员完成数据挖掘的依据和顾问。
过程中各步骤的大体内容如下:
2.3.1 确定业务对象
清晰地定义出业务问题,认清数据挖掘的目的是数据挖掘的重要一步。挖掘的最后结构是不可预测的,但要探索的问题应是有预见的,为了数据挖掘而数据挖掘则带有盲目性,是不会成功的。
2.3.2 数据准备
(1) 数据的选择
搜索所有与业务对象有关的内部和外部数据信息,并从中选择出适用于数据挖掘应用的数据。
(2) 数据的预处理
研究数据的质量,为进一步的分析作准备。并确定将要进行的挖掘操作的类型。
(3) 数据的转换
将数据转换成一个分析模型。这个分析模型是针对挖掘算法建立的。建立一个真正适合挖掘算法的分析模型是数据挖掘成功的关键。
2.3.3 数据挖掘
对所得到的经过转换的数据进行挖掘。除了完善从选择合适的挖掘算法外,其余一切工作都能自动地完成。
2.3.4 结果分析
解释并评估结果。其使用的分析方法一般应作数据挖掘操作而定,通常会用到可视化技术。
2.3.5 知识的同化
将分析所得到的知识集成到业务信息系统的组织结构中去。
数据挖掘过程的分步实现,不同的步会需要是有不同专长的人员,他们大体可以分为三类。
业务分析人员:要求精通业务,能够解释业务对象,并根据各业务对象确定出用于数据定义和挖掘算法的业务需求。
数据分析人员:精通数据分析技术,并对统计学有较熟练的掌握,有能力把业务需求转化为数据挖掘的各步操作,并为每步操作选择合适的技术。
数据管理人员:精通数据管理技术,并从数据库或数据仓库中收集数据。
从上可见,数据挖掘是一个多种专家合作的过程,也是一个在资金上和技术上高投入的过程。这一过程要反复进行牞在反复过程中,不断地趋近事物的本质,不断地优先问题的解决方案。数据重组和细分添加和拆分记录选取数据样本可视化数据探索聚类分析神经网络、决策树数理统计、时间序列结论综合解释评价数据知识数据取样数据探索数据调整模型化评价。[9]
2.4 数据挖掘的方法
2.4.1 神经网络方法
神经网络由于本身良好的健壮性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,因此近年来越来越受到人们的关注。典型的神经网络模型主要分3大类:以感知机、BP反向传播模型、函数型网络为代表的,用于分类、预测和模式识别的前馈式神经网络模型;以Hopfield的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以ART模型、Koholon模型为代表的,用于聚类的自组织映射方法。神经网络方法的缺点是"黑箱"性,人们难以理解网络的学习和决策过程。
2.4.2 遗传算法
遗传算法是一种基于生物自然选择与遗传机理的随机搜索算法,是一种仿生全局优化方法。遗传算法具有的隐含并行性、易于和其它模型结合等性质使得它在数据挖掘中被加以应用。
Sunil已成功地开发了一个基于遗传算法的数据挖掘工具,利用该工具对两个飞机失事的真实数据库进行了数据挖掘实验,结果表明遗传算法是进行数据挖掘的有效方法之一[4]。遗传算法的应用还体现在与神经网络、粗集等技术的结合上。如利用遗传算法优化神经网络结构,在不增加错误率的前提下,删除多余的连接和隐层单元;用遗传算法和BP算法结合训练神经网络,然后从网络提取规则等。但遗传算法的算法较复杂,收敛于局部极小的较早收敛问题尚未解决。
2.4.3 决策树方法
决策树是一种常用于预测模型的算法,它通过将大量数据有目的分类,从中找到一些有价值的,潜在的信息。它的主要优点是描述简单,分类速度快,特别适合大规模的数据处理。最有影响和最早的决策树方法是由Quinlan提出的著名的基于信息熵的ID3算法。它的主要问题是:ID3是非递增学习算法;ID3决策树是单变量决策树,复杂概念的表达困难;同性间的相互关系强调不够;抗噪性差。针对上述问题,出现了许多较好的改进算法,如 Schlimmer和Fisher设计了ID4递增式学习算法;钟鸣,陈文伟等提出了IBLE算法等。
2.4.4 粗集方法
粗集理论是一种研究不精确、不确定知识的数学工具。粗集方法有几个优点:不需要给出额外信息;简化输入信息的表达空间;算法简单,易于操作。粗集处理的对象是类似二维关系表的信息表。目前成熟的关系数据库管理系统和新发展起来的数据仓库管理系统,为粗集的数据挖掘奠定了坚实的基础。但粗集的数学基础是集合论,难以直接处理连续的属性。而现实信息表中连续属性是普遍存在的。因此连续属性的离散化是制约粗集理论实用化的难点。现在国际上已经研制出来了一些基于粗集的工具应用软件,如加拿大Regina大学开发的KDD-R;美国Kansas大学开发的LERS等。
2.4.5 覆盖正例排斥反例方法
它是利用覆盖所有正例、排斥所有反例的思想来寻找规则。首先在正例集合中任选一个种子,到反例集合中逐个比较。与字段取值构成的选择子相容则舍去,相反则保留。按此思想循环所有正例种子,将得到正例的规则(选择子的合取式)。比较典型的算法有Michalski的AQ11方法、洪家荣改进的AQ15方法以及他的AE5方法。
2.4.6 统计分析方法
在数据库字段项之间存在两种关系:函数关系(能用函数公式表示的确定性关系)和相关关系(不能用函数公式表示,但仍是相关确定性关系),对它们的分析可采用统计学方法,即利用统计学原理对数据库中的信息进行分析。可进行常用统计(求大量数据中的最大值、最小值、总和、平均值等)、回归分析(用回归方程来表示变量间的数量关系)、相关分析(用相关系数来度量变量间的相关程度)、差异分析(从样本统计量的值得出差异来确定总体参数之间是否存在差异)等。
2.4.7 模糊集方法
即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。系统的复杂性越高,模糊性越强,一般模糊集合理论是用隶属度来刻画模糊事物的亦此亦彼性的。李德毅等人在传统模糊理论和概率统计的基础上,提出了定性定量不确定性转换模型--云模型,并形成了云理论。
2.5 如何评价数据挖掘软件
越来越多的软件供应商加入了数据挖掘这一领域的竞争。用户如何正确评价一个商业软件,选择合适的软件成为数据挖掘成功应用的关键。
评价一个数据挖掘软件主要应从以下四个主要方面:
⑴计算性能:如该软件能否在不同的商业平台运行;软件的架构;能否连接不同的数据源;操作大数据集时,性能变化是线性的还是指数的;算的效率;是否基于组件结构易于扩展;运行的稳定性等;
⑵功能性:如软件是否提供足够多样的算法;能否避免挖掘过程黑箱化;软件提供的算法能否应用于多种类型的数据;用户能否调整算法和算法的参数;软件能否从数据集随机抽取数据建立预挖掘模型;能否以不同的形式表现挖掘结果等;
⑶可用性:如用户界面是否友好;软件是否易学易用;软件面对的用户:初学者,高级用户还是专家?错误报告对用户调试是否有很大帮助;软件应用的领域:是专攻某一专业领域还是适用多个领域等;
⑷辅助功能:如是否允许用户更改数据集中的错误值或进行数据清洗;是否允许值的全局替代;能否将连续数据离散化;能否根据用户制定的规则从数据集中提取子集;能否将数据中的空值用某一适当均值或用户指定的值代替;能否将一次分析的结果反馈到另一次分析中,等等。
2.6 数据挖掘工具的现状
比较著名的有IBM Intelligent Miner、SAS Enterprise Miner、SPSS Clementine等,它们都能够提供常规的挖掘过程和挖掘模式。
(1) Intelligent Miner
由美国IBM公司开发的数据挖掘软件Intelligent Miner是一种分别面向数据库和文本信息进行数据挖掘的软件系列,它包括Intelligent Miner for Data和Intelligent Miner for Text。Intelligent Miner for Data可以挖掘包含在数据库、数据仓库和数据中心中的隐含信息,帮助用户利用传统数据库或普通文件中的结构化数据进行数据挖掘。它已经成功应用于市场分析、诈骗行为监测及客户联系管理等;Intelligent Miner for Text允许企业从文本信息进行数据挖掘,文本数据源可以是文本文件、Web页面、电子邮件、Lotus Notes数据库等等。
(2) Enterprise Miner
这是一种在我国的企业中得到采用的数据挖掘工具,比较典型的包括上海宝钢配矿系统应用和铁路部门在春运客运研究中的应用。SAS Enterprise Miner是一种通用的数据挖掘工具,按照"抽样--探索--转换--建模--评估"的方法进行数据挖掘。可以与SAS数据仓库和OLAP集成,实现从提出数据、抓住数据到得到解答的"端到端"知识发现。
(3) SPSS Clementine
SPSS Clementine是一个开放式数据挖掘工具,曾两次获得英国政府SMART 创新奖,它不但支持整个数据挖掘流程,从数据获取、转化、建模、评估到最终部署的全部过程,还支持数据挖掘的行业标准--CRISP-DM。Clementine的可视化数据挖掘使得"思路"分析成为可能,即将集中精力在要解决的问题本身,而不是局限于完成一些技术性工作(比如编写代码)。提供了多种图形化技术,有助理解数据间的关键性联系,指导用户以最便捷的途径找到问题的最终解决办法。
其它常用的数据挖掘工具还有LEVEL5 Quest 、MineSet (SGI) 、Partek 、SE-Learn 、SPSS 的数据挖掘软件Snob、Ashraf Azmy 的SuperQuery 、WINROSA 、XmdvTool 等[26]。
2.7 数据挖掘未来研究方向及热点
当前,DM/KDD研究方兴未艾,其研究与开发的总体水平相当于数据库技术在70年代所处的地位,迫切需要类似于关系模式、DBMS系统和SQL查询语言等理论和方法的指导,才能使DM/KDD的应用得以普遍推广。预计在本世纪,DM/KDD的研究还会形成更大的高潮,研究焦点可能会集中到以下几个方面:
发现语言的形式化描述,即研究专门用于知识发现的数据挖掘语言,也许会像SQL语言一样走向形式化和标准化;
寻求数据挖掘过程中的可视化方法,使知识发现的过程能够被用户理解,也便于在知识发现的过程中进行人机交互;
研究在网络环境下的数据挖掘技术(WebMining),特别是在因特网上建立DM/KDD服务器,并且与数据库服务器配合,实现WebMining;
加强对各种非结构化数据的开采(DataMiningforAudio&Video),如对文本数据、图形数据、视频图像数据、声音数据乃至综合多媒体数据的开采;
处理的数据将会涉及到更多的数据类型,这些数据类型或者比较复杂,或者是结构比较独特。为了处理这些复杂的数据,就需要一些新的和更好的分析和建立模型的方法,同时还会涉及到为处理这些复杂或独特数据所做的费时和复杂数据准备的一些工具和软件。
交互式发现;
知识的维护更新。
但是,不管怎样,需求牵引与市场推动是永恒的,DM/KDD将首先满足信息时代用户的急需,大量的基于DM/KDD的决策支持软件产品将会问世。
就目前来看,将来的几个热点包括网站的数据挖掘(Web site data mining)、生物信息或基因(Bioinformatics/genomics)的数据挖掘及其文本的数据挖掘(Textual mining)。下面就这几个方面加以简单介绍。
2.4.1 网站的数据挖掘
需求随着Web技术的发展,各类电子商务网站风起云涌,建立起一个电子商务网站并不困难,困难的是如何让您的电子商务网站有效益。要想有效益就必须吸引客户,增加能带来效益的客户忠诚度。电子商务业务的竞争比传统的业务竞争更加激烈,原因有很多方面,其中一个因素是客户从一个电子商务网站转换到竞争对手那边,只需点击几下鼠标即可。网站的内容和层次、用词、标题、奖励方案、服务等任何一个地方都有可能成为吸引客户、同时也可能成为失去客户的因素。而同时电子商务网站每天都可能有上百万次的在线交易,生成大量的记录文件(Logfiles)和登记表,如何对这些数据进行分析和挖掘,充分了解客户的喜好、购买模式,甚至是客户一时的冲动,设计出满足于不同客户群体需要的个性化网站,进而增加其竞争力,几乎变得势在必行。若想在竞争中生存进而获胜,就要比您的竞争对手更了解客户。
电子商务网站数据挖掘,在对网站进行数据挖掘时,所需要的数据主要来自于两个方面:一方面是客户的背景信息,此部分信息主要来自于客户的登记表;而另外一部分数据主要来自浏览者的点击流(Click-stream),此部分数据主要用于考察客户的行为表现。但有的时候,客户对自己的背景信息十分珍重,不肯把这部分信息填写在登记表上,这就会给数据分析和挖掘带来不便。在这种情况之下,就不得不从浏览者的表现数据中来推测客户的背景信息,进而再加以利用。
就分析和建立模型的技术和算法而言,网站的数据挖掘和原来的数据挖掘差别并不是特别大,很多方法和分析思想都可以运用。所不同的是网站的数据格式有很大一部分来自于点击流,和传统的数据库格式有区别。因而对电子商务网站进行数据挖掘所做的主要工作是数据准备。目前,有很多厂商正在致力于开发专门用于网站挖掘的软件。
2.4.2 生物信息或基因数据挖掘
生物信息或基因数据挖掘则完全属于另外一个领域,在商业上很难讲有多大的价值,但对于人类却受益非浅。例如,基因的组合千变万化,得某种病的人的基因和正常人的基因到底差别多大?能否找出其中不同的地方,进而对其不同之处加以改变,使之成为正常基因?这都需要数据挖掘技术的支持。
对于生物信息或基因的数据挖掘和通常的数据挖掘相比,无论在数据的复杂程度、数据量还有分析和建立模型的算法而言,都要复杂得多。从分析算法上讲,更需要一些新的和好的算法。现在很多厂商正在致力于这方面的研究。但就技术和软件而言,还远没有达到成熟的地步。
(1)
2.4.3 文本的数据挖掘
人们很关心的另外一个话题是文本数据挖掘。举个例子,在客户服务中心,把同客户的谈话转化为文本数据,再对这些数据进行挖掘,进而了解客户对服务的满意程度和客户的需求以及客户之间的相互关系等信息。从这个例子可以看出,无论是在数据结构还是在分析处理方法方面,文本数据挖掘和前面谈到的数据挖掘相差很大。文本数据挖掘并不是一件容易的事情,尤其是在分析方法方面,还有很多需要研究的专题。目前市场上有一些类似的软件,但大部分方法只是把文本移来移去,或简单地计算一下某些词汇的出现频率,并没有真正的分析功能。
随着计算机计算能力的发展和业务复杂性的提高,数据的类型会越来越多、越来越复杂,数据挖掘将发挥出越来越大的作用。[9]
2.4.4 2005年十大热点问题
在2005ICDM的大会上,给出了一下10个挑战性的问题:
(1) 发展统一的数据挖掘理论
(2) 多维的数据挖掘和高速流的数据挖掘
(3) 时序系列的数据挖掘
(4) 从复杂数据中的复杂知识的挖掘
(5) 网络的数据挖掘
(6) 分布式数据挖掘和多代理的数据挖掘
(7) 生物和环境问题的数据挖掘
(8) 相关问题的数据挖掘过程
(9) 安全,隐私和数据一致性
(10) 动态、不均衡和权值数据的数据挖[12]
2.5 小结
本章主要介绍数据挖掘的相关知识。看看是否发现有什么可以研究的,并了解其过程以及未来研究的方向热点等问题。通过对数据挖掘的了解,可以在以后的挖掘过程中相互采用比较好的算法,实现综合应用。或对自己的思想有所启发。创造更好的挖掘算法。
第三章 关联规则
3.1 概论
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。
关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。关联规则挖掘的一个典型例子是购物篮分析。关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。
Agrawal等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题[20],以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算法挖掘规则的效率;对关联规则的应用进行推广。
最近也有独立于Agrawal的频集方法的工作,以避免频集方法的一些缺陷,探索挖掘关联规则的新方法。也有一些工作注重于对挖掘到的模式的价值进行评估,他们提出的模型建议了一些值得考虑的研究方向。
3.2 基本概念
在1993年,R.Agrawal等人首次提出了关联规则的概念。其一般定义如下:J={ I1, I2, …, Im }是一项目集,D是一事务数据库,其中每个事务T J。每个事务都有一个标识符,称之为TID。若A一是项目集,当且仅当A T时,我们说事务T包含了A。一条关联规则就是形如A B的蕴含关系,其中A J,B J且A B= 。如果D中包含A B的比例是s,就称关联规则A B在D中的支持度为s,也可以表示为概率P(A B);如果D中包含A的同时也包含B的比例是c ,则说关联规则A B的置信度为c,表示为条件概率P(B|A)。就是:
Support(A B)= P(A B)
Confidence(A B)= P(B|A)
支持度(support)和置信度(confidence)两个阈值是描述关联规则的两个重要概念,支持度反映关联规则在数据库中的重要性,置信度衡量关联规则的可信程度。如果某条规则同时满足最小支持度(min-support)和最小置信度(min-confidence),则称它为强关联规则。
3.3 关联规则种类
我们将关联规则按不同的情况进行分类:
(1) 基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:性别=“女”=>职业=“秘书” ,是布尔型关联规则;性别=“女”=>avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。
(2) 基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。
(3) 基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。
4 关联规则挖掘的算法
(1) 经典频集方法
Agrawal等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题,其核心方法是基于频集理论的递推方法。以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算法挖掘规则的效率;提出各种变体,如泛化的关联规则、周期关联规则等,对关联规则的应用进行推广。
(2) 核心算法
Agrawal等在1993年设计了一个基本算法,提出了挖掘关联规则的一个重要方法 — 这是一个基于两阶段频集思想的方法,将关联规则挖掘算法的设计可以分解为两个子问题:
(1)找到所有支持度大于最小支持度的项集(Itemset),这些项集称为频集(Frequent Itemset)。
(2)使用第1步找到的频集产生期望的规则。这里的第2步相对简单一点。如给定了一个频集Y=I1I2...Ik,k³2,Ij∈I,产生只包含集合{I1,I2,...,Ik}中的项的所有规则(最多k条),其中每一条规则的右部只有一项,(即形如[Y-Ii]ÞIi,"1£i£k),这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。其核心思想如下:
(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ÎD do begin
(5) Ct=subset(Ck,t); //事务t中包含的候选集
(6) for all candidates cÎ Ct do
(7) c.count++;
(8) end
(9) Lk={cÎ Ck |c.count³minsup}
(10) end
(11) Answer=ÈkLk;
首先产生频繁1-项集L1,然后是频繁2-项集L2,直到有某个r值使得Lr为空,这时算法停止。这里在第k次循环中,过程先产生候选k-项集的集合Ck,Ck中的每一个项集是对两个只有一个项不同的属于Lk-1的频集做一个(k-2)-连接来产生的。Ck中的项集是用来产生频集的候选集,最后的频集Lk必须是Ck的一个子集。Ck中的每个元素需在交易数据库中进行验证来决定其是否加入Lk,这里的验证过程是算法性能的一个瓶颈。这个方法要求多次扫描可能很大的交易数据库,即如果频集最多包含10个项,那么就需要扫描交易数据库10遍,这需要很大的I/O负载。
在论文中,Agrawal等引入了修剪技术(Pruning)来减小候选集Ck的大小,由此可以显著地改进生成所有频集算法的性能。算法中引入的修剪策略基于这样一个性质:一个项集是频集当且仅当它的所有子集都是频集。那么,如果Ck中某个候选项集有一个(k-1)-子集不属于Lk-1,则这个项集可以被修剪掉不再被考虑,这个修剪过程可以降低计算所有的候选集的支持度的代价。文[6]中,还引入杂凑树(Hash Tree)方法来有效地计算每个项集的支持度。
3.4 主要研究方向和典型算法分析
R.Agrawal等人提出了关联规则的采掘问题以后,该问题的研究得到了长足地发展。到目前为止,其主要的研究方向有:
3.4.1 多循环方式的采掘算法
此类算法包括Agrawal等人提出的AIS[28],Apriori、AprioriTid和AprioriHybrid[29]、Park 等人提出的DHP[30],Savasere等人的PARTITION[31]以及Toivonen提出的抽样算法Sampling[32]等等。其中最有效和有影响的算法为:Apriori,DHP和PARTITION。
在算法AIS中,候选大项集是在扫描数据库的过程中产生的。具体地说,在对数据库进行第k 次扫描时,候选大项集(其中每一个元素的元素个数不一定是k个,可以大于k)是由第k-1次扫描所产生的边界集(Frontierset)通过增加当前事务中的项得到,同时计算候选大项集中的元素的支持数,直到某一次扫描所产生的边界集为空时停止运算。应该注意的是,第k次扫描所产生的边界集要大于本次扫描生成的大项集。本算法的缺点在于生成的候选大项集太大。
算法Apriori和AprioriTid利用“在给定的事务数据库D中,任意大项集的子集都是大项集; 任意弱项集的超集都是弱项集”这一原理对事务数据库进行多遍扫描,第一次扫描得出大1项集L1,第k(k>1)次扫描前先利用第k-1次扫描的结果(即大k-1项集Lk-1)和函数Apriori_gen[29]产生候选大k项集Ck,然后在扫描过程中确定Ck中每一元素的支持数,最后在每一遍扫 描结束时计算出大k项集Lk,算法在当候选大k项集Ck为空时结束。由于充分利用的上述原理 ,这两个算法所产生的候选大项集要比算法AIS小得多,从而提高了算法的效率。算法AprioriTid还有另外一个特点,即仅在第一次扫描时用事务数据库D计算候选大项集的支持数,其 它各次扫描用其上一次扫描生成的候选事务数据库D'来计算候选大项集的支持数。在最后的 几次扫描中,D'的大小要远远小于D,减小了I/O操作时间,提高了算法的效率。算法Aprio riHybrid是算法Apriori与算法AprioriTid的结合,当候选事务数据库D'不能完全容纳于内 存时用算法Apriori,当内存能够完全容纳候选事务数据库D'时,则用算法AprioriTid。
算法DHP利用哈希(Hashing)技术有效地改进了候选大项集的生成过程,产生了比前述算法更小的候选大项集(对大2候选集尤为明显),同时也缩减了事务数据库的大小,减小了I/O操作时间,其效率比算法Apriori有明显提高。
算法PARTION分为两个部分。在第一部分中,算法首先将要在其中发现关联规则的事务数据 库D分为n个互不相交的事务数据库D1,D2,...,Dn,Di(i=1,2,...,n)的大小要求 能够容纳在内存之中,然后将每一个分事务数据库Di(i=1,2,...,n)读入内存并发现其 中的大项集Li,最后在第一部分结束时将所有分事务数据库的大项集合并成为一个在事务数 据库D中的潜在大项集 算法第二部分计算潜在大项集PL在事务数据库D中的支持数,并得出大项集L。该算法只对事务数据库D扫描两次,大大减少了I/O操作,从而提高了算法的效率。
算法Sampling设计思想为:对事务数据库D进行随机抽样得到抽样事务数据库D',先以小于 用户给定的最小支持度的支持度发现存在于D'中大项集L',再在剩下的数据库D-D'中继续计 算L'中各元素的支持数,最后以用户给定的最小支持度计算出大项集L。在大部分情况下,可以用此方法发现正确的大项集,但有时可能会漏掉一些大项集,这时可以对D进行第二次 扫描以得出漏掉的大项集。此算法在大部分情况下可以只对D进行一次扫描就得出大项集, 最坏的情况对D进行两次扫描,因而算法效率较高。
3.4.2 增量式更新算法
关联规则的增量式更新问题主要有两个:①在给定的最小支持度和最小置信度下,当一个新 的事物数据集db添加到旧的事物数据库DB中时,如何生成db(DB中的关联规则;②给定事物 数据库DB,在最小支持度和最小可信度发生变化时,如何生成数据库DB中的关联规则。文[33]考虑了关联规则更新的第一类问题,给出了一个基本框架与算法Apriori相一致的算法FUP。文[34]针对关联规则更新的第二类问题进行了研究,设计出了相应的算法IUA和PIUA。
算法FUP的基本思想为:对任意一个k(k 1)项集,若其在DB和db中都是大项集,则其一定是 大项集;若其在DB和db中都是弱项集,则其一定是弱项集;若其仅在DB(db)中是大项集,则 其支持数应加上其在db(DB)中的支持数以确定它是否为大项集。算法FUP假设在DB中发现的 大项集 (n为L中最大元素的元素个数)已被保存下来。它需要对DB和db进行多次扫描,在第 1次扫描中,算法先扫描db,将L1中的元素仍为db(DB中的大项集的元素记入L'1,并生成候 选大1项集C1,C1中的元素为db中的大1项集且不包含在L1中;然后扫描DB以决定C1中的元素 是否为db(DB中的大项集,并将是db(DB中的大项集的元素记入L'1中。在第k(k>1)次扫描前 ,先对L'k-1用Apriori_Gen()函数生成候选大k项集Ck,并除去Lk中的元素,即Ck=Ck-Lk, 对Lk进行剪枝,即对于X∈Lk,若存在Y∈Lk-1-L'k-1,则X肯定不会是db∪DB中的大k项集,应将其在Lk中删除;然后扫描db,将Lk中的元素仍为db∪DB中的大项集的元素记入L'k,记录候选大k项集Ck中的元素在db中的支持数;最后扫描DB,记录Ck中的元素在DB中的支持数,扫描结束时,将Ck中是db∪DB中大项集 的元素记入L'k中。算法在Lk和Ck均为空时结束。由于利用了对DB进行采掘的结果,本算法的效率比再一次利用算法Apriori或DHP对db∪DB进行采掘的效率要高得多。
算法IUA采用了一个独特的候选大项集生成算法iua_gen,在每一次对数据库DB扫描之前生成 较小的候选大项集,从而提高了算法的效率。它也要求上一次对数据库DB进行采掘时发现的 大项集 (n为L中最大元素的元素个数)在本次采掘时是可得到的。因为人们在发现关联规则时,常常需要不断地调整最小支持度和最小可信度来聚集到那些真正令其感兴趣关联规则上 ,因而本算法具有很重要的意义。
3.4.3 并行发现算法
目前已经提出的并行采掘关联规则的算法有:Agrawal等人提出的CD(Count Distribution) 、CaD(Candidate Distribution)、DD(Data Distribution)[35],Park等人提出的PDM[36]。Chueng等人提出的算法DMA[37]和FDM[38]虽然是基于分布式数据库的采掘算法,但也可 适用于并行采掘。
算法CD具有速度较快、容易实现、要求各计算机间同步次数较少等优点,但它有通信量大和 候选大项集大等缺点。算法CaD、DD及PDM的执行效果都不如CD[37]。算法DMA虽克服了算法C D的一些弱点,但它要求各计算机间同步次数较多。算法FDM与算法DMA基本一致,区别在于F DM中增加了全局剪枝技术。
这些算法都是基于无共享体系结构,即并行计算的n台计算机之间除了用网络连接起来以外 ,其它都是完全独立的。每台计算机Pi(i=1,2,...,n)上都有自己的分事务数据库DBi,总的事务数据库 。
算法CD是算法Apriori在并行环境下的应用,它要求计算机Pi(i=1,2,...,n)对DBi进行多遍扫描。在第k次扫描,当k>1时,计算机Pi(i=1,2,...,n)首先利用第k-1次扫描所得 的大项集Lk-1和Apriori_Gen()函数生成候选大项集Ck,当k=1时,计算机Pi先扫描DBi得出 其中的大1项集,再与其它计算机得到的大1项集进行交换并进行合并,从而生成候选大1项 集C1;然后扫描DBi计算Ck中的元素在DBi中的支持数,计算机Pi广播Ck中元素的支持数,并 接收从其它计算机 传来的Ck中元素的支持数,并对这些支持数进行累加,得出Ck中 元素的全局支持数;最后计算出大k项集Lk,若Lk中元素个数为1,则算法结束。
算法DMA是基于“若项集X在DB中是大项集,则其必在某一个DBi也是大项集”的原理进行设计。算法中采用局部剪枝技术(Local pruning),使其生成的候选大项集比算法CD要小。算法各个站点进行支持数交换时采用轮询站点技术(polling site),使每一个项集X的通讯代 价由算法CD的o(n2)降为o(n),其中n为站点个数。它可分为如下几步:①生成候选大k项集CHiK。根据计算机Pi(i=1,2,...,n)在k-1次循环所生成的稠密集HLiK-1,生成循环k所需用的候选大k项集CHiK,即 ②支持数计算。扫描DBi计算候选大k项集中的每个元素X的局部支持数X.supi。③交换支持数。采用轮询站点技术与其它计算机交换候选大k项集中的 元素的支持数,并计算它的全局支持数。④生成大项集Lk和稠密集。中的元素具有下列性质:它在DBi和DB中都是大项集。
(4)采掘一般或多层关联规则
在研究采掘关联规则的过程中,许多学者发现在一些实际应用中,由于数据比较少,要想在 原始的概念层次上发现强的(Strong)和有趣的(Interesting)关联规则是比较困难的,因为 好多项集往往没有足够的支持数。由于概念层次在要采掘的数据库中经常是存在的,比如在 一个连锁店会存在这样概念层次:光明牌牛奶是牛奶,牛奶是食品等,我们称高层次的项是 低层次项的父亲,这种概念层次关系通常用一个有向非循环图(DAG)来表示。于是我们就可 以在较高的概念层次上发现关联规则。基于要采掘的数据库中的概念层次和发现单一概念层 次中的关联规则的算法,学者们提出了许多高效发现一般或多层关联规则的算法,主要有: Han等人的ML_T2L1及其变种ML_T1LA、ML_TML1、ML_T2LA[39]和R.Srikant等人的Cumulate、 Stratify及其变种Estimate、EstMerge[40]等。
算法ML_T2L1的基本思想是首先根据要发现的任务从原事务数据库生成一个根据概念层次信 息进行编码的事务数据库,利用这个具有概念层次信息的新生成的数据库,自顶向下逐层递 进地在不同层次发现相应的关联规则。它实际上是算法Apriori在多概念层次环境中的扩展 。根据对在发现高层关联规则过程中所用的数据结构和所生成的中间结果共享方式的不同, 算法ML_T2L1有三个变种:ML_T1LA、ML_TML1、ML_T2LA。
算法Cumulate的基本思想与Apriori完全一样,只是在扫描到事务数据库某一事务时,将此 事务中所有项的祖先加入到本事务中,并加入三个优化:①对加入到事务中的祖先进行过滤 。②预先计算概念关系T中的每一个项的祖先,得到项集与其祖先的对照表T*。③对既包含 项集X又包含X的祖先的项集进行剪枝。
算法Stratify基于“若项集X的父亲不是大项集,则X肯定不会是大项集”的事实进行设计。其基本思想为:在概念层次有向非循环图中,定义没有父亲的项集X的深度depth(X)=0,其 它项集的深度为: 算法要对事务数据库进行多遍扫描,第k k(0)次扫描计算深度为k k(0)的所有项集Ck的支持数,并得出深度为k k(0)的大项集Lk,在第k k(1)次扫描之前,对Ck进行剪枝,即删除Ck中那些祖先包含在Ck-1-Lk-1中的元素。围绕着怎样及早决定某些深度较大的项集是否是大项集问题,文献[40]用抽样技术对算 法Stratify进行扩展,形成算法Estimate和EstMerge。
(5)采掘多值属性关联规则
关联规则可分为布尔型关联规则和多值属性关联规则。多值属性又可分为数量属性和类别属 性。多值属性关联规则采掘问题首先在文献[41]中提出。目前提出的采掘多值属性关联规则的算法大多是将多值属性关联规则采掘问题转化为布尔型关联规则采掘问题,即将多值属性 的值划分为多个区间,每个区间算作一个属性,将类别属性的每一个类别当作一个属性。
文[41]中发现的多值属性关联规则的形式为:x=qx y=qy,其前件和后件对应的都是单一的 数值,而不是一个区间,文中提出的算法比较简单,但当我们需要发现所有属性之间的关联 规则时,我们将遇到属性组合的爆炸问题。
文[42]用“偏完整性度量(partial completenessmeasure)”原则将数量属性划分为相等的几个区段,当某一区段的支持数小于用户给定的最小支持数时,我们就将其与其邻近的区段 进行合并。为了使发现的关联规则更具有趣性,文中采用了“大于期望的值(greater-than- expected-value)”准则。
文[43]认为文[42]中的属性划分方法不能很好地表示数据的分布,尤其是属性值分布不均匀 的时候,于是提出了一个聚类算法,根据数据库中数据的分布情况决定属性值如何划分区段 ,并可将相关的区段进行合并。在此基础上发现的多值关联规则更具有效性和可理解性。
(6)基于约束的关联规则采掘
基于约束的关联规则采掘的主要目的是发现更有趣的、更实用的和更特别的关联规则,这方 面的研究主要有[44~51]。
文[44]研究了在提供布尔表达式约束情况下的关联规则发现问题。这种布尔表达式约束允许 用户指定他所感兴趣的关联规则的集合,这种约束不仅可以用来对事务数据库进行预加工, 而且可以把它集成在采掘算法内部,从而提高算法的执行效率,文中根据这种集成方式的不 同给出了三种不同的算法:MultipleJoins、Reorder、Direct。
文[45]提出并分析了用户所给出的约束的两个对发现算法的剪枝步骤非常重要的属性:反单 调性(anti-monotonicity)和简洁性(succinctness),提出了一个高效的基于约束的关联规 则采掘算法CAP。
另一种类型的基于约束的关联规则采掘方法是元模式制导的关联规则采掘算法[49~51]。这 种类型的发现算法首先由用户给定要发现的关联规则的元模式或模板,然后根据这些模板在 数据库中发现与模板相适应的实际存在的关联规则。例如文[50]就是基于这种模式提出了两 个相应的算法:大谓词增长算法(largepredicate-growing)和直接p-谓词测试算法(Direct p-predicatetesting)。
(7)其它方向
除了以上列举的比较常见的研究方向外,还有其它一些研究方向,如:发现关联规则的语言 [52,53]、采掘长模式和密集数据集[48,54]、采掘相关性和因果关系[55,56]、发现比例 规则[57]、发现周期(cyclic)和日历(calendric)关联规则[58,59]、采掘多维关联规则[59] 等等[60]。
3.5 频集算法的几种优化方法
虽然Apriori算法自身已经进行了一定的优化,但是在实际的应用中,还是存在不令人满意的地方,于是人们相继提出了一些优化的方法。
3.4.1 基于划分的方法
Savasere等[14]设计了一个基于划分(partition)的算法,这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。上面所讨论的算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。其他的方法还有在多处理器之间共享一个杂凑树来产生频集。更多的关于生成频集的并行化方法可以在中找到。
3.4.2 基于Hash的方法
一个高效地产生频集的基于杂凑(hash)的算法由Park等提出来。通过实验我们可以发现寻找频集主要的计算是在生成频繁2-项集Lk上,Park等就是利用了这个性质引入杂凑技术来改进产生频繁2-项集的方法。
3.4.3 基于采样的方法
基于前一遍扫描得到的信息,对此仔细地作组合分析,可以得到一个改进的算法,Mannila等先考虑了这一点,他们认为采样是发现规则的一个有效途径。随后又由Toivonen进一步发展了这个思想,先使用从数据库中抽取出来的采样得到一些在整个数据库中可能成立的规则,然后对数据库的剩余部分验证这个结果。Toivonen的算法相当简单并显著地减少了I/O代价,但是一个很大的缺点就是产生的结果不精确,即存在所谓的数据扭曲(data skew)。分布在同一页面上的数据时常是高度相关的,可能不能表示整个数据库中模式的分布,由此而导致的是采样5%的交易数据所花费的代价可能同扫描一遍数据库相近。Lin和Dunham在中讨论了反扭曲(Anti-skew)算法来挖掘关联规则,在那里他们引入的技术使得扫描数据库的次数少于2次,算法使用了一个采样处理来收集有关数据的次数来减少扫描遍数。Brin等提出的算法使用比传统算法少的扫描遍数来发现频集,同时比基于采样的方法使用更少的候选集,这些改进了算法在低层的效率。具体的考虑是,在计算k-项集时,一旦我们认为某个(k+1)-项集可能是频集时,就并行地计算这个(k+1)-项集的支持度,算法需要的总的扫描次数通常少于最大的频集的项数。这里他们也使用了杂凑技术,并提出产生“相关规则”(Correlation Rules)的一个新方法,这是基于他们的工作基础上的。
3.4.4 减少交易的个数
减少用于未来扫描的事务集的大小。一个基本的原理就是当一个事务不包含长度为k的大项集,则必然不包含长度为k+1的大项集。从而我们就可以将这些事务移去,这样在下一遍的扫描中就可以要进行扫描的事务集的个数。这个就是AprioriTid的基本思想
3.4.5 其他的频集挖掘方法
上面我们介绍的都是基于Apriori的频集方法。即使进行了优化,但是Apriori方法一些固有的缺陷还是无法克服:
(1)可能产生大量的候选集。当长度为1的频集有10000个的时候,长度为2的候选集个数将会超过10M。还有就是如果要生成一个很长的规则的时候,要产生的中间元素也是巨大量的。
(2)无法对稀有信息进行分析。由于频集使用了参数minsup,所以就无法对小于minsup的事件进行分析;而如果将minsup设成一个很低的值,那么算法的效率就成了一个很难处理的问题。
下面将介绍两种方法,分别用于解决以上两个问题。
在[18]中提到了解决问题1的一种方法。采用了一种FP-growth的方法。他们采用了分而治之的策略:在经过了第一次的扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息。随后我们再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关。然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。
第二个问题是基于这个的一个想法:Apriori算法得出的关系都是频繁出现的,但是在实际的应用中,我们可能需要寻找一些高度相关的元素,即使这些元素不是频繁出现的。在Apriori算法中,起决定作用的是支持度,而我们现在将把可信度放在第一位,挖掘一些具有非常高可信度的规则。在[19]中介绍了对于这个问题的一个解决方法。整个算法基本上分成三个步骤:计算特征、生成候选集、过滤候选集。在三个步骤中,关键的地方就是在计算特征时Hash方法的使用。在考虑方法的时候,有几个衡量好坏的指数:时空效率、错误率和遗漏率。基本的方法有两类:Min_Hashing(MH)和Locality_Sensitive_Hashing(LSH)。Min_Hashing的基本想法是:将一条记录中的头k个为1的字段的位置作为一个Hash函数。Locality_Sentitive_Hashing的基本想法是:将整个数据库用一种基于概率的方法进行分类,使得相似的列在一起的可能性更大,不相似的列在一起的可能性较小。我们再对这两个方法比较一下。MH的遗漏率为零,错误率可以由k严格控制,但是时空效率相对的较差。LSH的遗漏率和错误率是无法同时降低的,但是它的时空效率却相对的好很多。所以应该视具体的情况而定。最后的实验数据也说明这种方法的确能产生一些有用的规则。
3.4.6 提高效率的几种方法说明
影响算法效率的因素主要有事务数据库的规模,扫描事务数据库的次数。所生成候选规则的数量.所以提高算法效率的各种算法都是从这三个方面考虑,另外可以使用一些能够并发执行的算法.
1 减少事务数据库规模的方法首先是减少事务数据库的规模,这里有两种情况:第一,直接对事务数据库的规模消减;第二,在挖掘过程中对数据库的规模进行消减.直接对事务数据库的规模进行消减的算法首先是抽样算法。这在对算法的效率要求高的情况下经常使用,对数据库规模的消减必然造成所挖掘规则质量的损失,但是结果是效率的显著提高.为了减少这种损失,我们可以降低rain—sup的取值,这样得到的高频项集会多一些,从而在整个数据库中进行验证,如果不合适,可以进行第二遍的扫描.总之。对数据库的扫描时间要少许多.另一种方法对数据库中某些项进行抽象,提高概念层次,例如不同品牌的商品在不关注其品牌的时候,那么可以认为不同品牌的东西是相同的,这样就可以减少项集的规模,对数据库进行处理,同样可以减少数据库的规模.在挖掘过程中对数据库规模进行消减,对生成的候选项集进行验证的时候,把无用或不相关的事务删掉,这样可以提高扫描的速度.删除可以依据前面给出的定理1~3.在判断志一候选项集的时候,如果事务的规模小于k,或者事务不包含任何(志一1)一高频项集,则该事务可以从数据库中删除.不会影响挖掘的结果,而减少了数据库的扫描,从而提高了算法的效率.另外在扫描数据库判断某个候选高频项集x 是否为高频项集的时候,如果根据扫描过的事务已经可以判断X,那么对X 的处理就可以完成,这样也可以减少数据库扫描时间,从而提高效率.
2 减少扫描次数的方法
第一种方法:首先扫描一遍数据库,找出所有的1一高频项集,在每个高频项集中记录包含该高频项集的事务的Tid,然后根据Tid计算所有的k一高频项集,k>1.关联规则挖掘算法Apriori的一种改进算法AprioriTid就使用了这种思想,只需要对数据库进行一次扫描.
第二种方法:把数据库划分成”个互不相交的部分,求出每一部分的高频项集,再扫描一次数据库得到高频项集,可以减少对数据库的扫描次数.
上面两种方法的结合可以产生另外一种方法,只需要对数据库进行两次扫描就可以找到高频项集.分两个阶段:首先,算法把数据库分成n个互不相交的部分.根据rain—sup,找出局部项集支持数,可以找出局部高频项集.这个过程使用一种特殊的数据结构,每个项集记录包含该项集的事务记录的Tid.只需要扫描一次数据库就可以找到所有的局部高频走一项集,k=1,2,⋯.局部高频项集可能是也可能不是全局高频项集,全局高频项集最少会出现在某一个局部高频项集中,所以得到的所有局部高频项集就是候选全局高频项集,进行第二次
数据库扫描就可以得到所有高频项集.
3 还有一种动态项集计数方法:把数据库分成很
多块,每一块都有一个起始点,可以在任何起点加
人新的候选项集,与划分数据找候选项集的方法有
些相似.
3.6 多层和多维关联规则的挖掘
随着数据仓库和OLAP技术研究的深入,可以预见大量的数据将经过整合、预处理,从而存入数据仓库之中。在当前,大多数的数据仓库的应用都是进行统计、建立多维以及OLAP的分析工作。随着数据挖掘研究的深入,已经有了OLAP和数据挖掘相结合的方法[20,21]。
首先一个有效的数据挖掘方法应该可以进行探索性的数据分析。用户往往希望能在数据库中穿行,选择各种相关的数据,在不同的细节层次上进行分析,以各种不同的形式呈现知识。基于OLAP的挖掘就可以提供在不同数据集、不同的细节上的挖掘,可以进行切片、切块、展开、过滤等各种对规则的操作。然后再加上一些可视化的工具,就能大大的提高数据挖掘的灵活性和能力。接着,我们来看一下多层和多维关联规则的定义。
多层关联规则:对于很多的应用来说,由于数据分布的分散性,所以很难在数据最细节的层次上发现一些强关联规则。当我们引入概念层次后,就可以在较高的层次上进行挖掘。虽然较高层次上得出的规则可能是更普通的信息,但是对于一个用户来说是普通的信息,对于另一个用户却未必如此。所以数据挖掘应该提供这样一种在多个层次上进行挖掘的功能。
多层关联规则的分类:根据规则中涉及到的层次,多层关联规则可以分为同层关联规则和层间关联规则。
多层关联规则的挖掘基本上可以沿用“支持度-可信度”的框架。不过,在支持度设置的问题上有一些要考虑的东西。
同层关联规则可以采用两种支持度策略:
(1)统一的最小支持度。对于不同的层次,都使用同一个最小支持度。这样对于用户和算法实现来说都比较的容易,但是弊端也是显然的。
(2)递减的最小支持度。每个层次都有不同的最小支持度,较低层次的最小支持度相对较小。同时还可以利用上层挖掘得到的信息进行一些过滤的工作。层间关联规则考虑最小支持度的时候,应该根据较低层次的最小支持度来定。
以上我们研究的基本上都是同一个字段的值之间的关系,比如用户购买的物品。用多维数据库的语言就是单维或者叫维内的关联规则,这些规则一般都是在交易数据库中挖掘的。但是对于多维数据库而言,还有一类多维的关联规则。例如:年龄(X,“20...30”)Ù职业(X,“学生”) 购买(X,“笔记本电脑”)在这里我们就涉及到三个维上的数据:年龄、职业、购买。根据是否允许同一个维重复出现,可以又细分为维间的关联规则(不允许维重复出现)和混合维关联规则(允许维在规则的左右同时出现)。年龄(X,“20...30”)Ù购买(X,“笔记本电脑”) 购买(X,“打印机”)这个规则就是混合维关联规则。
在挖掘维间关联规则和混合维关联规则的时候,还要考虑不同的字段种类:种类型和数值型。对于种类型的字段,原先的算法都可以处理。而对于数值型的字段,需要进行一定的处理之后才可以进行。处理数值型字段的方法基本上有以下几种:
(1)数值字段被分成一些预定义的层次结构。这些区间都是由用户预先定义的。得出的规则也叫做静态数量关联规则。
(2)数值字段根据数据的分布分成了一些布尔字段。每个布尔字段都表示一个数值字段的区间,落在其中则为1,反之为0。这种分法是动态的。得出的规则叫布尔数量关联规则。
(3)数值字段被分成一些能体现它含义的区间。它考虑了数据之间的距离的因素。得出的规则叫基于距离的关联规则。
(4)直接用数值字段中的原始数据进行分析。使用一些统计的方法对数值字段的值进行分析,并且结合多层关联规则的概念,在多个层次之间进行比较从而得出一些有用的规则。得出的规则叫多层数量关联规则。
在OLAP中挖掘多层、多维的关联规则是一个很自然的过程。因为OLAP本身的基础就是一个多层多维分析的工具,只是在没有使用数据挖掘技术之前,OLAP只能做一些简单的统计,而不能发现其中一些深层次的有关系的规则。当我们将OLAP和DataMining技术结合在一起就形成了一个新的体系OLAM(On-Line Analytical Mining)[20]。
3.7 关联规则价值衡量的方法
当我们用数据挖掘的算法得出了一些结果之后,数据挖掘系统如何知道哪些规则对于用户来说是有用的、有价值的?这里有两个层面:用户主观的层面和系统客观的层面。
3.6.1 系统客观层面
很多的算法都使用“支持度-可信度”的框架。这样的结构有时会产生一些错误的结果。看如下的一个例子:假设一个提供早餐的零售商调查了4000名学生在早晨进行什么运动,得到的结果是2200名学生打篮球,2750名学生晨跑,1800名学生打篮球、晨跑。那么如果设minsup为40%,minconf为60%,我们可以得到如下的关联规则:打篮球Þ晨跑(1)这条规则其实是错误的,因为晨跑的学生的比例是68%,甚至大于60%。然而打篮球和晨跑可能是否定关联的,即当我们考虑如下的关联时:打篮球Þ(不)晨跑 (2)虽然这条规则的支持度和可信度都比那条蕴涵正向关联的规则(1)低,但是它更精确。 然而,如果我们把支持度和可信度设得足够低,那么我们将得到两条矛盾的规则。但另一方面,如果我们把那些参数设得足够高,我们只能得到不精确的规则。总之,没有一对支持度和可信度的组合可以产生完全正确的关联。
于是人们引入了兴趣度,用来修剪无趣的规则,即避免生成“错觉”的关联规则。一般一条规则的兴趣度是在基于统计独立性假设下真正的强度与期望的强度之比,然而在许多应用中已发现,只要人们仍把支持度作为最初的项集产生的主要决定因素,那么要么把支持度设得足够低以使得不丢失任何有意义的规则,或者冒丢失一些重要规则的风险;对前一种情形计算效率是个问题,而后一种情形则有可能丢失从用户观点来看是有意义的规则的问题。
在[12]中作者给出了感兴趣的规则的定义(R-interesting),在[13]中他们又对此作了改进。在[10]中把事件依赖性的统计定义扩展到兴趣度的定义上来;[15]定义了否定关联规则的兴趣度。
除了把兴趣度作为修剪无价值规则的工具,现在已有许多其他的工作来重新认识项集,如Brin等[3]考虑的相关规则。在[4]中讨论了蕴涵规则(implication rule),规则的蕴涵强度在[0,¥]之间变化,其中蕴涵强度为1表示完全无关的规则,¥表示完备的规则,如果蕴涵强度大于1则表示更大的期望存在性。
另一个度量值——“收集强度”(collective strength)在[22]中被定义,他们设想使用“大于期望值”来发现有意义的关联规则。项集的“收集强度”是[0,¥]之间的一个数值,其中0表示完备的否定相关性,而值¥表示完备的正相关性。详细的讨论可以在[10]中找到。
3.6.2 用户主观层面
上面的讨论只是基于系统方面的考虑,但是一个规则的有用与否最终取决于用户的感觉。只有用户可以决定规则的有效性、可行性。所以我们应该将用户的需求和系统更加紧密的结合起来。
可以采用一种基于约束(consraint-based)[21]的挖掘。具体约束的内容可以有:
(1)数据约束。用户可以指定对哪些数据进行挖掘,而不一定是全部的数据。
(2)指定挖掘的维和层次。用户可以指定对数据哪些维以及这些维上的哪些层次进行挖掘。
(3)规则约束。可以指定哪些类型的规则是我们所需要的。引入一个模板(template)的概念,用户使用它来确定哪些规则是令人感兴趣的而哪些则不然:如果一条规则匹配一个包含的模板(inclusive template),则是令人感兴趣的,然而如果一条规则匹配一个限制的模板(rextrictive template),则被认为是缺乏兴趣的。
其中有些条件可以和算法紧密的结合,从而即提高了效率,又使挖掘的目的更加的明确化了。其他的方法还有:Kleinberg等人的工作是希望建立一套理论来判断所得模式的价值,他们认为这个问题仅能在微观经济学框架里被解决,他们的模型提出了一个可以发展的方向。他们引入并研究了一个新的优化问题——分段(Segmentation)问题,这个框架包含了一些标准的组合分类问题。这个模型根据基本的目标函数,对“被挖掘的数据”的价值提供一个特殊的算法的视角,显示了从这方面导出的具体的优化问题的广泛的应用领域。
在[5]中Korn等就利用猜测误差(这里他们使用“均方根”来定义)来作为一些从给定的数据集所发现的规则的“好处”(goodness)的度量,他们所定义的比例规则就是如下的规则:顾客大多数分别花费 1 : 2 : 5的钱在“面包”:“牛奶”:“奶油”上通过确定未知的(等价的,被隐藏的,丢失的)值,比例规则可以用来作决策支持。如果数据点线性地相关的话,那么比例规则能达到更紧凑的描述,即关联规则更好地描述了相关性。
3.8 选择规则的方法
规则的选取主要根据规则的重要性,可从主观和客观两个方面来进行度量,从而产生不同的选择方法.主观方法又可分为定性方法和定量方法.
第一种方法:通过规则的可视化Ll ].属于主观定性方法,也是研究较多的方法.挖掘过程是自动进行的,挖掘结束应该把对结果进行处理,根据需要选择感兴趣的规则,删除不感兴趣的规则,从而达到选择感兴趣规则的目的.但是这种方法在挖掘过程中生成很多用户所不感兴趣的规则,对算法的效率有一定的影响.同时如果生成规则的数量过大,通过人工的方法不能够选择的话,用户可以把自己对于规则的一些经验知识输人给系统,系统根据用户的需求进行规则的选择,最后把结果显示给用户.
第二种方法:通过规则模板可以选择感兴趣的规则.也是一种主观定性的方法.用户可以使用背景知识来指定所要挖掘的规则形式和不希望得到的规则形式.模板可以分为两类:含概模板与限定模板,前者用来描述用户所希望得到的规则形式,后者用来描述不希望得到的规则形式.使用规则模板可以减少挖掘过程中产生规则的数量,同时由于在挖掘过程中生成的规则数量少,减少了挖掘时间,提高了挖掘效率,也可以认为是一种提高效率的方法.
第三种方法:根据对规则的关注程度来选择,把规则的重要性进行量化.对规则的重要性的量化描述可以有主观和客观两种.一般文献中对于客观关注程度的描述较多,而对于规则重要性的主观量化描述较少.在文献[2]中,作者给出了一种度量主观关注程度的方法,应用在挖掘中取得了好的效果.在挖掘过程中使用主观关注程度来减少无用规则的选择,仅仅使用客观关注程度有时候不能反映规则的重要程度,因为属性之间的重要性不会完全一样,对于不同的挖掘任务,各种属性的作用不会相同,需要用户指定属性的重要程度,在挖
掘的过程中可以减少生成的规则的数量,同时提高算法的效率.
第四种方法:利用对规则的客观关注程度.目前对规则的关注程度的研究主要是对规则的客观关注程度的研究.对于规则A B,主要使用支持度和置信度来描述,Agrawal提出了置信度P(B/A)、Piatesket—Shapiro提出了事件独立性P(A,B)/P(A)P(B)、Symth提出了J—Measure函数等.Toivonen提出了根据规则的后件,对挖掘出的关联规则集合进行分组,选取分组的覆盖集合(cover rules)作为所关注的规则.
第五种方法:通过设置足够大的支持度和置信度,例如R—interesting方法,可以避免大量规则集.但是由于选择过大的支持度和置信度,可能会造成重要信息的丢失.Hoschka和Klosgen通过属性及属性集部分排序来避免产生几种类型的冗余知识,如层次项目造成的冗余.第六种方法,通过计算规则之间的相关性消除冗余规则,例如生成规则{Milk} {Bread,Butter}和{Milk}(Bread),后者就是冗余规则,因为前者已经包含了后者.可以通过考察规则之间的关系,对规则进行选择,消除冗余规则.还可以通过设置生成的规则的数量来直接限制生成的规则,从而实现间接选择规则.可以利用以往的挖掘结果作为当前挖掘的先验知识确定客观关注程度,从而达到选择规则的目的[21]。
3.9 小结
本章主要介绍关联规则的内容及基本概念和基本算法,还有评价关联规则的方法。由于关于关联规则研究方向的文章比较多,已经没有太多的可以研究的空间。要取得突破,就必须有新的发现,最近负关联被提出来,而关于此研究的文章则不是太多,有一定的空间。
第四章 正负关联规则研究
4.1 概述
很多的算法都使用“支持度-可信度”的框架。这样的结构有时会产生一些错误的结果。看如下表的一个例子。支持度与可信度的:
% 买咖啡 不买咖啡 合计
买牛奶 20 5 25
不买牛奶 70 5 75
合计 90 l0 l00
由表可以了解到,如果设定最小支持度和最小可信度分别为0.2和0、6,按照Agrawal的定义得到关联规则“买牛奶= 买咖啡(s=0.2,c=0.8)” ,即80%的人买了牛奶就会买咖啡。但同时也可以得到“90%的人肯定会买咖啡”。换句话说,买牛奶这个事件对于买咖啡这个事件的刺激作用(80%)并没有想象中的(90%)那么大。反而是规则“买咖啡->不买牛奶(s=0.7,c=0.78)” 更具有实际的指导意义。
4.2 研究现状
(1)基于Apriori框架的算法往往效率不够高,但伸缩性好。基于FP-growth框架的算法效率高,伸缩性却不好。如何能结合这两者的长处是一个吸引人而又极富挑战性的问题。
(2)数据挖掘既然是处理海量的数据,些许的误差应该是可以接受的。能不能找到能允许在一定的误差范围内但大大加速挖掘的算法是一个已经有人在研究但还远未完善的方向。
(3)关联规则所挖掘的数据经常包含着用户隐密的信息。怎样在挖掘过程中保护用户的隐私从而让用户更愿提供真实数据是极有价值的研究问题。
(4)基于最大频繁项日集的关联规则挖掘算法和基于精简集的挖掘算法能否结合,使两者的长处同时发挥作用,这是我正在继续研究的问题。
(5)更好的关联规则的兴趣度量标准是一个老问题,但远未解决,值得探讨。
(6)如何对事务数据库建立某种索引来加速挖掘应该是一种可行而又高效的力法,是一个重要的研究方向。
(7)如何建立对数据集的特征描述的指标,从而有针对性地对不同特征的数据集选用不同的算法是一个很好而又很难的问题。
4.3 关联规则具体研究
4.3.1 关联规则挖掘的矩阵算法
本算法通过构建新的矩阵结构来改进算法,对在其中出现的标为1,未出现的标为0,同时添加行和、列和。通过此减少了对数据库的少描次数。同时通过行和减少对高频集的较快挖掘发现,提高了效率。假设有如下的交易数据,具体应用如下:
则具体过程如下:
时间复杂度的定性分析:矩阵算法跨越了由低次到高次逐步杏找频繁子集的限制,在不知道低次k一1频繁项的前提下同样可以直接计算k项集,而且k越大,搜索的记录范围越小,冈此效率越高,相反,低次频繁子集的查找速度相对高次而言相对较慢。因此矩阵算法相对而言适合k较大时的情况。
空间复杂度的定性分析:由于存储的是0和I这种布尔数据(以位方式存储即可),因而在样本记录集较大时通常会占用更少的空间[13]。
4.3.2 基于相关系数的正、负关联规则
相关系数是两个随机变量间线性相关程度的一个度量。设 X,Y为两个变量,相关系数定义为:
其中,cov(X ,Y)为变量 X,Y的协方差,√D(X)√D(Y)为变量X ,Y的标准差。|ρx.y|≤1,如果ρx.y =O,则变量 X,Y不相关;如果ρx.y =+1,则变量 X,Y充分正相关;同样如果ρx.y =一1,则变量X ,Y充分负相关[14]。
4.3.3 项集的相关性判断正负关联规则
有人提出项集A 和B的关联规则的相关性]可由式:
度量corrAB , 有三种可能的情况:如果corrAB>1,那么 A和B正相关;如果corrAB=1,那么 A和B相互独立;如果corrAB<1,那么 A和B负相关.容易证明项集 A,B间4种形式关联规则的相关性之间存在这样的关系:如果corrAB>1,则有corrA┐B < 1;corr┐AB <1;corr┐A┐B> 1;反之亦反之.因此在挖掘正、负关联规则时只要对项集的相关性进行判断就可以避免矛盾规则的出现,即当corrAB> 1时仅挖掘规则A B和┐A ┐B;当corrAB <1时仅挖掘规则┐A B和A ┐B;当corrAB=1时不挖掘规则[19].
4.3.4 正、负关联规则间的置信度关系研究
当同时研究项集A、B间的正、负关联规则(A B 、A ┐B 、┐A B 及┐A ┐B)时,置信度的设置问题变得非常重要。当A,B的支持度变化时,四种关联规则的置信度如何变化,它们之间有着怎样的联系,对此进行了详细讨论,结论对置信度的设置有重要价值。
为了讨论的方便,设s(A),s(B)很小时取值0.1,很大时取值0.9,下面按四种情况分别讨论。
(1)s(A),s(B)都很小
conf(A B)的值域是[0,1]
conf(A ┐B)的值域是[0,1]
conf(┐A B)的值域是[0,0.1 1]
conf(┐A ┐B)的值域是[0.89,1]
(2)s(A),s(B)都很大
conf(A B)的值域是[0.89,1]
conf(A ┐B)的值域是[0,0.11]
conf(┐A B)的值域是[0,1]
conf(┐A ┐B)的值域是[0,1]
(3)s(A)很小,s(B)很大
conf(A B)的值域是[0,1]
conf(A ┐B)的值域是[0,1]
conf(┐A B)的值域是[0.89,1]
conf(┐A ┐B)的值域是[0,0.11]
(4)s(A)很大,s(B)很小
conf(A B)的值域是[0,0.11]
conf(┐A B)的值域是[0.89,1]
conf(┐A B)的值域是[0,1]
conf(┐A ┐B)的值域是[0,1]
总上所述,当同时研究正、负关联规则后,置信度的设置问题变得非常重要,它直接影响到结果中关联规则的数量,进而影响到用户选择所需规则的难易程度,单一的置信度约束已经不符合要求,而应根据实际应用为四种形式关联规则分别设定置信度;同时,四种形式关联规则的置信度之间存在着制约关系,在为其设定置信度时应综合考虑[15]。
4.3.5 挖掘正负关联规则
本文除了支持度-可信度外添加了相关系数来挖掘同时对其数据进行了如下编码[16]。
4.3.6 布尔加权关联规则的几种开采算法及比较
关联规则挖掘在许多领域已有广泛的应用,目前存在许多发现关联规则的算法。这些算法都认为每个项目对规则的重要性相同。但在实际应用中,用户会比较看重一些项目,因此,为了加强这些项目对规则的影响,提出了一些加权关联规则的算法,介绍了几种存在的算法,并对它们进行了分析比较。
4.3.6 关联规则的增量式更新
在关联规则挖掘的实际应用中存在着如下情况:
(1)数据库或数据仓库是随时间而不断变化的,因而存在于其中的关联规则也是随之变化的,这就要求人们能够适时地更新已发现的关联规则。
(2)用户在一个固定的数据库或数据仓库中挖掘关联规则时,为了得到真正令其感兴趣的关联规则,必然会不断调整最小支持度与最小置信度,此时同样需要对关联规则进行更新。
把以上两种情况归纳为三个关联规则增量更新的主要问题:
(1)在给定的最小支持度和最小置信度下,当一个新的数据集db添加到旧的数据库DB中时,如何生成db∪DB中的关联规则。
(2)在给定的最小支持度和最小置信度下,当一个数据集db从旧的数据库DB中删除时,如何生成DB∪db中的关联规则。
(3)给定数据库DB,在最小支持度和最小置信度发生变化时,如何生成数据库DB中的关联规则。所有的关联规则更新问题都可以归结为以上三种情况或它们的组合[24]。
D.W.Cheung等人首先考虑了关联规则的高效更新同题.他们考虑的同题是给定交易数据库DB,候定最小支持度不变,当一个新的交易数据集db添加到DB中去时,如何生成DB∪db中的关联规则.他们提出了增量式更新算法FUP,FUP的基本框架和Apriori是一致的[22].
4.3.6.1 FUP算法
算法FUP的基本思想为:对任意一个k(k≥1)项集,若其在DB和如中都是频繁项集,则其在db∪DB中同样是频繁项集;若其在DB和db中都是非频繁项集,则其在db∪DB同样是非频繁项集;若其仅在DB(db)中是频繁项集,则其支持数应该加上db(DB)中的支持数以决定它在db ∪DB是否为频繁项集。算法FUP假设在DB中发现的频繁项集 (n为L中最大元素的元素个数)已被保存下来。它需要对DB和db进行n次扫描,在第一次扫描时,FUP算法首先扫描db,将L1中的元素仍为db∪DB 中的频繁项集的元素记入L1’ ,并生成候选频繁l项集C1,C1中的元素为db中的频繁1项集减去L1;然后扫描DB以决定C1中的元素是否为db∪DB中的频繁项集,并将是db∪DB中频繁项集的元素记入L1’中。在第k(k>1)次扫描前,先对L’k-1用Apriori—Gen函数生成候选频繁k项集Ck,并除去Lk中的元素,即Ck=Ck - Lk,对Lk进行剪枝,即对于X∈L ,若存在Y X且Y∈Lk-1 - L k-1 ‘,则X肯定不是db∪DB中的频繁项集,应将其在Lk中删除;然后扫描db,将Lk中的元素仍为db∪DB中的频繁项集的元素记入Lk ‘,记录候选频繁k项集Ck中的元素在db中的支持数;最后扫描DB,记录Ck中的元素在db∪DB中的支持数,扫描结束时,将Ck中是db∪DB中的频繁项集的元素记入Lk ‘中。算法在Lk和Ck均为空时结束。
4.3.6.2 改进算法EFUP
这里首先声明算法中需要用到的符号定义。│X│表示对象的大小,若X为项集,则表示项集中的元素个数;若X为数据库,则表示数据库中记录的数目。DB为旧的数据库,db为新添加的数据库,D 和d分别代表新旧数据库中记录数目。n为DB中最大的频繁项集的元素个数。 (1≤i≤n)表示DB中的频繁i项集的集合。 表示DB 中所有频繁项集的集合。m为db中最大的频繁项集的元素个数。 表示db中的频繁i项集的集合。 (1≤ ≤m)表示db中的候选频繁i项集的集合。 表示db中所有频繁项集的集合。P为db∪DB中最大的频繁项集的元素个数。 表示db∪DB中的频繁项集的集合。 表示db∪DB中所有频繁项集的集合。X.sup表示项集的支持数。min_sup和min_conf分别代表最小支持度和最小置信度。
当db添加到DB时,会发生以下两种情况:
(1)一些DB 中的频繁项集变为db∪DB中的非频繁项集;
(2)一些DB中的非频繁项集变为db∪DB中的频繁项集。
根据频繁项集的定义,可以知道:
(1)对任意一个项集X∈L,X不是db∪DB中的频繁项集(即X L’),当且仅当 在db∪DB中的支持数小于(D+d)×min_sup。
(2)对任意一个项集X L,若X ∈L ,则X在db中的支持数必然大于等于d×min_sup。
(3)对任意一个项集X∈L,若X L ,则对任意项集Y X,Y∈L,必有Y L 。
EFUP算法要求可以得到前一次对DB挖掘的结果(即频繁项集和其中元素的支持数)。由以上分析可知:
(1)要验证,J中的项集 是否为db∪DB中的频繁项集,只需知道X在db中的支持数。
(2)db添加到DB后新产生的频繁项集LN(LN LL,但LN L’)的候选频繁项集为db中的频繁项集Ldb。
所以可以对db采用类似于Apriori的算法,一方面验证L中的元素是否为db∪DB中的频繁项集,另一方面生成其中的频繁项集Ldb,然后对DB进行一次扫描,验证Ldb中的元素是否为db∪DB中的频繁项集。
4.3.7 并行化的分组关联规则算法
分组的构造以及分组后因连接步和剪枝步的简化而达到的效率的提高。
(1) 设Apriol i中的频繁一项目集记为L,改进算法将原来的频繁项L集进行分组,组数可以为大于2的数。
(2) Apriori算法的剪枝思想:对候选k项目集,生成它的所有k-1项子集,判断是否是频繁项目集,每次判断都必须扫描频繁k—l项目集的元素。分组后可以改进判断时所需扫描的频繁k-l项目集元索的数目[25]。
划分方法的数据挖掘:
通过划分方法进行数据挖掘的过程如下所示,系统的总体设计包含三部分:
(1) 在服务器端第一次扫描超市事务数据库中的表,按照超市事务数据库中不同项集的数量,以及兼顾客户端计算机硬件配置,对其进行数据分块,分块的大小选择要使得每个分块可以被放入主存。
(2) 在各个客户端计算机上,利用并行技术分别访问服务器上的数据分块,求出各数据分块所对应的局部频繁项集,并将所求局部频繁项集存入服务器的一个指定表中。
(3) 在服务器端,汇总各个分块数据生成的局部频繁项集,第二次扫描超市事务数据库中的总表,最终生成全局频繁项集。
4.3.8 分布式的数据挖掘
1 方案一
为了找出所有全局频繁项目集,需要经过两个步骤来完成。过程如下:
(1)全局频繁1项集可以通过扫描各局部数据库,并在各局部站点之间交换支持数得到。
(2)挖掘全局频繁k项集(k>1)时,分为以下几个步骤:①采用Apnon_gen算法基于局部数据库产生局部频繁k项集。②求各局部频繁k项集的超集,并把它作为全局频繁k项集的候选数据集。③采用Hash技术。将某个候选数据集映射到某个唯一的站点,在该站点对其他各站点发送轮询请求,收集并计算该候选数据集的全局支持合计数,根据用户给定的最小支持度最终确定该候选数据集是否是全局大的。④将在某个站点得到的全局频繁k项集及其全局支持合计数向其他所有站点进行广播。⑤ 各个局部站点根据各自的局部数据库对全局频繁k项集的支持来确定是否进行下一重挖掘。
其体系结构如下图所示。
方案中由于采用了Hash技术,使各个站点之间的通信量得到了优化,平衡了各个局部站点的通信负荷。但因为采用了局部一局部的通信模式,为了统计某个候选数据集的全局支持合计数,每个站点都要向其他所有站点发送轮询请求。虽然每个站点的通信负荷比较均衡,但每个站点的通信量都较大,从而导致整体网络通信开销较大。为了进一步减少站点间的通信量,节约网络通信开销,提出了方案二。
2 方案二
方案二与方案一的不同之处在于引入了全局知识库的存储结构,并采用了局部一全局的通信模式。各个局部站点基于各个局部数据库产生局部频繁项目集,全局站点负责求出各局部频繁项目集的超集,统计其中每个项目的全局支持合计数,并最终确定全局频繁项目集。最后根据求出的全局频繁项目集和用户给定的最小可信度得出基于全局数据库的关联规则,并把它存储到全局知识库中。具体实现步骤如下:
(1)全局频繁1项集可以通过扫描各局部数据库,并在各局部场地之间交换支持数得到。
(2)挖掘全局频繁k项集(k>1)时,可分为以下步骤:①在各局部站点采用Apfiofi~gen算法基于各局部数据库产生局部频繁项目集;②各局部站点向全局站点发送各自的局部频繁项目集及其支持数;③全局站点将各局部站点发送的频繁项目集进行合并,得到全局频繁项目集的候选数据集;④全局站点将得到的候选数据集广播到各个局部站点,在各个局部站点确定本地的新增项目集(在候选数据集中但不在本地频繁项目集中的项目集)及其局部支持数;⑤ 各局部站点向全局站点发送各自的新增项目集及其局部支持数,并在全局站点进行相应的累加,求出全局频繁项目集的候选数据集中各个项目集的全局支持合计数。⑥ 全局站点根据用户给定的最小支持度筛选出全局频繁项目集。根据在全局站点求得的全局频繁项目集和用户给定的最小可信度,生成全局关联规则,并把它保存到全局知识库中,从而完成关联规则的整个挖掘过程。其体系结构如下图所示。
3 两种方案的比较
两种方案的相似之处在于两者均采用Apriori—gen算法生成局部频繁项目集,并且都把各局部频繁项目集的超集作为求全局频繁项目集的候选数据集;两者的不同之处在于计算候选全局频繁项目集的全局支持合计数的方法和实现过程不同:①方案一是通过引入Hash技术,将各候选数据集映射到某个唯一的场地,并在该场地向其他所有场地发送轮询请求,从其他所有场地回传该数据集的各局部支持数,在该场地进行相应的累加,从而求出该项目集的全局支持合计数的;②方案二是各局部站点首先向全局站点发送各自的局部频繁项目集及其局部支持数,然后在全局站点进行合并求出其超集,并向各局部站点进行广播,确定各局部站点的新增数据集,各局部站点向全局站点发送各自的新增项目集及其局部支持数,在全局站点进行累加,从而确定其全局支持合计数。两种方案的另一个不同之处在于两者的通信模式不同。方案一采用的是局部一局部的通信模式,在求局部频繁项目集时各局部站点可以是并行的、异步的,而在求候选项目集的全局支持合计数时则要求各站点同步。方案二采用的是局部一全局的通信模式,各个局部站点负责求出本地的频繁项目集,并与全局站点进行通信,实现了各局部站点的完全异步的通信模式。
方案二中由于采用了局部一全局的通信模式,大大减少了各个局部站点的通信量,比方案一)具有更少的网络通信开销和更高的灵活性,但由于全局站点在关联规则挖掘的整个过程中具有核心地位,因而它对全局站点的安全、可靠和运行速度等性能要求较高[26]。
4.6 研究方向的理论意义和实用价值
关联规则是发现交易数据库中不同商品(项)之间的联系,这些规则找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。发现这样的规则可以应用于商品货架设计、货存安排以及根据购买模式对用户进行分类。
4.7 小结
通过对上面的学习,认为可以对矩阵算法进一步优化,可以和负关联规则联系起来,添加非出现项,同样进行编码。用1表示出现,0没有。用编码进行压缩,比如01011000用88代替。在计算时,也可以用与位的方法观看是那些位出现了。同样的数值代表了相同的频繁集。最后比较数值就可以。可以同时挖掘正负关联规则。可以与下面的矩阵的可视化结合。
由于实际中有大量的数据,是否可以用稀疏矩阵来存贮的问题。也值得探究。同时也可以用来扩充到多维数据中。用另外的维表示权值等。
第五章 可视化研究
5.1 概述
信息可视化和数据挖掘是两个可互为补充利用的相关研究领域。当信息可视化作为数据挖掘的技术之一时,同其它技术相比,它有一个独特之处:能极大地发挥用户的主动参预性。由于对数据进行了可视化,用户愿意进行探索(Explore),在探索过程中有可能发现意外的知识。
5.2 研究现状
(1)基于表的可视化技术:该方法的基本思想就是用表结构文字化描述关联规则。表中的每一行描述一条关联规则,每一列分别描述关联规则中的参数,包括规则的前项、后项、支持度和置信度。此方法的优点是能够利用表的基本操作,对感兴趣的列(如支持度)进行排序,或者过滤出前项和后项中包含特定项目的规则。但它存在的缺点是十分类似于关联规则原始的文字描述形式,不能利用图形和图像的表达能力以及人对于色彩和形状敏锐的感知能力,不利于用户方便深入地对结果进行观察和分析。
(2)基于二维矩阵的可视化技术:该方法的基本思想是用一个二维矩阵的行和列分别表示规则的前项和后项,并在对应的矩阵单元画图,可以是柱状图或条形图等,。不同的图形元素(如颜色或高度)可以用来描述关联规则的不同参数,如规则的支持度和置信度。二维矩阵法的优点是易于可视化一对一布尔关系的关联。
(3)基于有向图的可视化技术:有向图法是另一种流行的关联规则可视化技术J。其基本思想是有向图中的结点代表项目,有向图中连接两个结点的边代表项目问的关联。当只需显示少量项目(结点)和少量关联规则(边),此方法非常有效。但当项目数和关联规则数量增多时,有向图很快变得十分紊乱。此外,有向图法不能清楚地标注支持度和置信度等关联规则参数值。
5.3 研究方向的理论意义和实用价值
更有直观性。
5.4 可视化具体研究
5.4.1 矩阵表示
矩阵的行代表项,列代表项的关联。每列中不同颜色的块分别代表规则的先行项和结果项,项的名称被标注在矩阵的右侧。规则的支持度和信任度用相应的条状图以不同的比例显示在阵列的末端[17]。
5.4.2 规则多边形
前面所介绍的方法都是针对一维关联规则的,不能或者不能高效地显示多维关联规则。一种新的可视化技术— —规则多边形表示法非常适用于多维关联规则挖掘结果的显示。例如有以下多维关联规则:age(“30-40”)人income(“40K~50K”)A ccupation(“businessman”)= buy(“laptop”)用规则多边形表示法可视化,所示。该方法可以清楚地表示关联规则的各个维,从图中用户能够简单直观地获知从特定条件最终会得到哪种后续结果。然而,规则多边形表示法当在需要同时显示多条多维关联规则时,效果会明显降低。此外支持度、信任度等元数据的标注也不太方便[17]。
5.4.3 平行坐标系
用一系列等间隔的水平轴分别表示关联规则中出现的所有不同的项目,而每一条连接相应水平轴的垂直线段则表示一条关联规则。此外,利用图形和色彩信息清晰地描述规则的前项和后项,以及支持度和置信度的取值。图中,用原点表示前件,方形表示后件[18]。
5.5 小结
通过挖掘,将其结果可视化。
参考资料:
[1] 陈京民编著.数据仓库原理、设计与应用.中国水利水电出版社,2004,1
[2] 数据挖掘实践 (美)Olivia Parr Rud著.朱扬勇等译
[3] 数据仓库与数据挖掘技术 夏火松主编.70-71,
[4] 数据挖掘教程 (美)Richard J。Roiger,(美)Michael W。Geatz著.翁敬农译。 4
[5] 数据仓库及其在电信领域中的应用 段云峰等编著. 39,47,56
[6] SQL Server 2000数据仓库应用与开发 罗运模等编著
[7] 数据仓库技术指南 (美)Lou Agosta著.潇湘工作室译 258
[9] http://www.stcsm.gov.cn/learning/lesson/xinxi/20021125/lesson.Asp
[10] 蔡伟杰 张晓辉 朱建秋 朱扬勇. 关联规则挖掘综述 2004
[11] 边有兵 孙张亚. 一种改进的关联规则快速算法及其应用
[12] http://www.cs.ust.hk
[13] 曾万聃 周绪波 戴勃 常桂然 李春平. 关联规则挖掘的矩阵算法 计算机工程 2006年1月, 45-47
[14] 张倩王治和 张国治 基于相关系数的正、负关联规则挖掘算法 陕西理工学报 2005,12 35-38
[15] 董祥军 陈建斌 崔林 宋瀚涛 陆玉昌. 正、负关联规则间的置信度关系研究 计算机应用及研究 2005 第七期 34
[16] Maria-Luiza Antonie Osmar R. Za¨ıane. Mining Positive and Negative Association Rules. Department of Computing Science, University of Alberta Edmonton, Alberta, Canada
[17] 郎璟 王保保. 关联规则挖掘结果的可视化技术研究 电子科技2004年第10期
[18] 吉根林 韦索云 曲维光. 基于平行坐标的关联规则可视化新技术 计算机工程 2005年12月第24期
[19] Brin S,Motwani R,Silverstein C.Beyond market:Generalizing association rules to correlations[A].Processing of the ACM SIGM OD Conference 1 997[C].New York:ACM Press,1997.265—2
[20] Agrawal Data Mining association rules between sets of items in large databases.In:Proceedings of ACM SIGMOD Conference on Management of Data,Washington,DC May 1993.207~216
[21] 潘立武 王保保 李绪成 零售业销售数据关联规则挖掘算法关键思想研究 信阳师范学院学报(自然科学版) 第l6卷第1期2003年1月 90-92
[22] Cheung D W et at.Maintenance of discovered association rules in large databases;an incremental updating technique In:Proceed of the 12th International Conference on Data Engineering,New Orleans Louisana,1999.106~ 114
[23] 肖劲橙,林子禹,毛超 关联规则在零售商业的应用 计算机工程 2004年2月 301-306
[24] 李宝东 宋瀚涛 关联规则增量更新算法研究 计算机工程与应用 2002 23 6-8
[25] 张伟,郑涛,李辉 一种并行化的分组关联规则算法计算机工程 2004年11月 84-86
[26] 李逸波 于吉红 白晓明 合理选择数据挖掘工具 计算机与信息技术 2005-08
[27] 邹丽 孙辉 李浩 分布式系统下挖掘关联规则的两种方案 计算机应用研究 2006年第一期 77-78
[28] R. Agrawal, et al. Mining association rules between sets of items in large databases. Proc. ACM SIGMOD int'l conf. management of data, Washington, DC, May 1993, 207~216
[29] R. Agrawal, R. Srikant. Fast algorithms for mining association rules. Proc. 20th int'l conf. very large databases, Santiago, Chile, Sept. 1994, 487~499
[30] J. S. Park, et al. Using a hash-based method with transaction trimming for mining association rules. IEEE Transactions on knowledge and data engineering, 1997, 9(5), 813~825
[31] A. Savasere, E. Omiecinski and S. Navathe. An efficient algorithm for mining association rules. Proceedings of the 21st international conference on very large databases, Zurich, Switzerland, Sept. 1995, 432~444
[32] Hannu Toivonen. Sampling large databases for association rules. Proceedings of the 22nd international conference on very large databases, Bombay, India, 1996, 134~145
[33] D. W. Cheung, et al. Maintenance of discovered association rules in large databases: an incremental updating technique. In: Proceedings of the 12th international conference on data engineering, New Orleans Louisiana, 1995, 106~114
[34] 冯玉才, 冯剑林. 关联规则的增量式更新算法. 软件学报, 1998, 9(4),301~306
[35] R. Agrawal, et al. Parallel mining of association rules. IEEE Transactions on knowledge and data engineering, 1996, 8(6), 962~969
[36] J. S. Park, et al. Efficient parallel data mining for association rules. Proc. Fourth int'l conf. information and Knowledge management, Baltimore, Nov. 1995
[37] D. W. Cheung, et al. efficient mining of association rules in distributed databases. IEEE Transactions on knowledge and data engineering, 1996, 8(6), 910~921
[38] D. W. Cheung, et al. A fast distributed algorithm for mining association rules. Proc. of 1996 Int'l Conf. on Parallel and Distributed Information Systems (PDIS'96), Miami Beach, Florida, USA, Dec. 1996
[39] J. Han, Y. Fu. Discovery of multiple-level association rules from large databases. Proc. of the 21st international conference on very large databases, Zurich, Switzerland, Sept. 1995, 420~431
[40] R. Srikant, R. Agrawal. Mining generalized association rules. In: Proceedings of the 21st international conference on very large databases, Zurich, Switzerland, Sept. 1995, 407~419
[41] G. Piatetsky-Shapiro. Discovery, Analysis, and Presentation of strong rules. In: G. Piatetsky Shapiro and W. J. Frawley eds. Knowledge discovery in database. AAAI/MIT Press. 1991, 229~248
[42] R. Srikant, R. Agrawal. Mining quantitative association rules in large relational tables. In: Proc. 1996 ACM SIGMOD int'l Conf. Management Data, Montreal, Canada, 1996, 1~12
[43] 张朝晖, 陆玉昌, 张 钹. 发掘多值属性的关联规则. 软件学报, 1998, 9(11), 801~805
[44] R. Srikant, R. Agrawal. Mining association rules with item constrains. Proc. of the 3rd Int'l Conference on Knowledge Discovery in Databases and Data Mining, Newport Beach, California, August 1997, 67~73
[45] R. Ng, L. V. S. Lakshmanan, J. Han and A. Pang, Exploratory Mining and Pruning Optimizations of Constrained Associations Rules, Proc. of 1998 ACM-SIGMOD Conf. on Management of Data, Seattle, Washington, June 1998, 13~24
[46] L. V. S. Lakshmanan, R. Ng, J. Han and A. Pang, Optimization of Constrained Frequent Set Queries with 2-Variable Constraints, Proc. 1999 ACM-SIGMOD Conf. on Management of Data, Philadelphia, PA, June 1999
[47] R. Ng, L. V. S. Lakshmanan, J. Han and T. Mah, Exploratory Mining via Constrained Frequent Set Queries, Proc. 1999 ACM-SIGMOD Conf. on Management of Data, Philadelphia, PA, June 1999
[48] R. J. Bayardo Jr., R. Agrawal, and D. Gunopulos. Constraint-Based Rule Mining in Large, Dense Databases. In Proc. of the 15th Int'l Conf. on Data Engineering, 1999, 188~197
[49] Micheline Kamber, Jiawei Han, Jenny Y. Chiang, Metarule-Guided Mining of Multi-Dimensional Association Rules Using Data Cubes, Proceeding of the 3rd International Conference on Knowledge Discovery and Data Mining, Newport Beach, California, Aug. 1997, 207~210
[50] Y. Fu and J.Han, Meta-Rule-Guided Mining of Association Rules in Relational Databases, Proc. 1995 Int'l Workshop. on Knowledge Discovery and Deductive and Object-Oriented Databases(KDOOD'95), Singapore, December 1995, pp.39~46
[51] Wei-Min Shen, et al. Metaqueries for data mining. In: U. M. Fayyad, G. Piatetsky-Shapiro, et al eds. Advances in knowledge discovery and data mining. AAAI/MIT Press. 1996, 375~398
[52] R. Meo, G. Psaila, and S. Ceri. A new SQL-like operator for mining association rules. Proc. of the 22nd int. Conf. on very large databases, Bombay, India, 1996, 122~133
[53] J. Han, Y. Fu, K. Koperski, W. Wang, and O. Zaiane, DMQL: A Data Mining Query Language for Relational Databases, 1996 SIGMOD'96 Workshop on Research Issues on Data Mining and Knowledge Discovery (DMKD'96), Montreal, Canada, June 1996
[54] R. J. Bayardo Jr., Efficiently Mining Long Patterns from Databases, Proc. of the ACM SIGMOD Conference on Management of Data, Seattle, Washington, June 1998, 85~93
[55] S. Brin, R.Motwani, and C. Silverstein. Beyond market basket: generalizing association rules to correlation. Proc. 1997 ACM-SIGMOD int. conf. management of data, Tucson, Arizona, May 1997, 265~276
[56] C. Silverstein, S. Brin, R. Motwani, and J. Ullman. Scalable techniques for mining causal structures. Proc. 1998 int. conf. Very Large Data Bases, New York, NY, August 1998, 594~605
[57] F. Korn, et al. Ratio rules: A new paradigm for fast, quantifiable data mining. Proc. 1998 int. conf. Very Large Data Bases, New York, NY, August 1998, 582~593
[58] B. Ozden, et al. Cylic association rules. Proc 1998 int. conf. Data Engineering, Orlando, FL, Feb. 1998, 412~421
[59] S. Ramaswamy, et al. On the discovery of interesting patterns in association rules, Proc. 1998 int. conf. Very Large Data Bases, New York, NY, August 1998, 368~379
[60] 铁治欣 陈奇 俞瑞钊 关联规则采掘综述 计算机应用研究 2000 Vol.17 No.1 P.1-5
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/longronglin/archive/2010/04/10/5469632.aspx