第1章 聚类知识发现
本章介绍数据库知识发现及其主要任务——聚类知识发现,给出聚类知识发现任务实现过程中不同取值类型数据差异度的计算方法,讨论几种主要的经典聚类方法及聚类方法的一些新进展。
1.1 数据库知识发现
本节首先介绍数据库知识发现的产生与发展及以数据挖掘为核心环节的处理过程,然后给出数据库知识发现的主要任务,*后讨论数据仓库与数据挖掘。
1.1.1 数据库知识发现的产生与发展
数据库的广泛应用和数据量的飞速增长,使人们迫切地感到需要新的技术和工具以支持从大量的数据中自动地、智能地抽取出有价值的信息或知识,于是数据库知识发现(knowledge discovery in database,KDD)技术应运而生。
数据库知识发现是从大量原始数据中挖掘出隐含的、有用的、尚未发现的信息和知识,其不仅被许多研究人员看作是数据库系统和机器学习等方面一个重要的研究课题,而且被许多工商界人士看作是一个能带来巨大回报的重要领域。“数据库知识发现”一词第一次出现是在1989年8月美国底特律召开的第十一届国际人工智能联合会议的专题讨论会上。1991年、1993年和1994年又分别举行过数据库知识发现专题讨论会。由于参加会议的人数逐渐增多,所以从1995年开始,每年都要举办一次数据库知识发现国际会议。随着研究的不断深入,人们对数据库知识发现的理解越来越全面,对数据库知识发现的定义也不断修改,下面是对数据库知识发现比较公认的一个定义:数据库知识发现是从数据集中识别出可信、有效、新颖、潜在有用以及*终可理解模式的高级处理过程。
作为一门交叉性学科,数据库知识发现受到来自各种研究领域学者的关注,所以有很多不同的名称。其中,*常用的术语是数据库知识发现和数据挖掘。相对来讲,数据挖掘[3]主要流行于统计学、数据分析、数据库和管理信息系统界;而数据库知识发现则主要流行于人工智能和机器学习界。随着数据库知识发现的迅速发展和逐渐被各界所了解,较为普遍的观点认为:数据挖掘是数据库知识发现中专门负责发现知识的核心环节;而数据库知识发现是一个交互式、循环反复的整体过程,除了包括数据挖掘,还包括数据准备和发现结果的解释评估等诸多环节。
1.1.2 数据库知识发现的处理过程
数据库知识发现的处理过程如图1-1所示,整个过程可以理解为三个阶段:数据准备(data preparation)、数据挖掘(data mining)、解释评估(interpretation and evaluation)[4]。
数据准备阶段的工作包括四个方面的内容:数据的净化、数据的集成、数据的应用变换和数据的精简。
数据的净化是清除数据源中不正确、不完整或其他方面不能达到数据挖掘质量要求的数据,如推导计算缺值数据、消除重复记录等。数据净化可以提高数据的质量,从而得到更准确的数据挖掘结果。
数据的集成是在数据挖掘所应用的数据来自多个数据源的情况下,将数据进行统一存储,并需要消除其中的不一致性。
数据的应用变换就是为了使数据适用于计算的需要而进行的数据转换。这种变换可能是现有数据不满足分析需求而进行的,也可能是所应用的具体数据挖掘算法对数据提出的要求。
数据的精简是对数据的数量进行缩减,或从初始特征中找出真正有用的特征来消减数据的维数,从而提高数据挖掘算法的效率与质量。
数据挖掘阶段首先要确定挖掘的任务或目的,如数据总结、分类、聚类、关联规则发现或序列模式发现等。在确定了数据挖掘任务后,就要决定使用什么样的数据挖掘算法。同样的,数据挖掘任务可以用不同的数据挖掘算法来实现,一般要考虑多方面的因素来确定具体的挖掘算法,例如,不同的数据有不同的特点,因此需要采用与之相关的算法来挖掘;用户对数据挖掘有着不同的要求,有的用户可能希望获取描述性的、容易理解的知识,而有的用户(或系统)的目的是获取预测准确度尽可能高的预测性知识。
需要指出的是,尽管数据挖掘算法是数据库知识发现的核心,也是目前研究人员主要努力的方向,但要获得好的挖掘效果,必须对各种数据挖掘算法的要求或前提假设有充分的理解。
数据挖掘阶段发现得到的模式,经过用户或机器的评估,可能存在冗余或无关的模式,这时需要将其剔除;也有可能模式不满足用户要求,这时则需要整个发现过程退回到发现阶段之前,如重新选取数据、采用新的数据变换方法、设定新的数据挖掘参数值,甚至换一种数据挖掘算法。另外,数据库知识发现*终是面向用户的,因此可能要对发现的模式进行可视化,或者把结果转换为用户易懂的方式进行表达。
1.1.3 数据库知识发现的主要任务
数据库知识发现的核心部分——数据挖掘,按照挖掘任务可以分为聚类知识发现、分类知识发现、关联规则发现、数据总结、序列模式发现、依赖关系或依赖模型发现、异常发现和趋势预测等。
聚类是一种基本的人类行为,在悠久的人类发展史中发挥着不可替代的作用[5],其将数据对象分成若干个类或簇(cluster),使得同一类中的对象具有较高的相似度,而不同类中的对象差异度较大,进而识别隐藏在数据中的内在结构,应用非常广泛[6-8],既可作为独立的方法来分析数据的分布情况,也可作为其他分析方法的数据预处理工具[9]。聚的依据是“物以类聚”,即按个体或数据对象间的相似性,将研究对象划分为若干类。在数据挖掘之前,数据类划分的数量与类型均是未知的,因此在数据挖掘后需要对数据挖掘结果进行合理的分析与解释。
分类知识发现是根据样本数据寻求相应的分类规则,然后根据获得的分类规则确定某一非样本个体或对象是否属于某一特定的组或类。在这种分类知识发现中,样本个体或对象的类标记是已知的。数据挖掘的任务在于从样本数据的属性中发现个体或对象分类的一般规则,从而根据该规则对非样本数据对象进行分类应用。
关联规则发现是在数据库中寻找数据对象间的关联模式,例如,在购买个人计算机的顾客中,90%也购买了打印机就是一种关联模式。关联规则发现主要用于零售业交易数据分析,以进行物品更合理的摆放,*终提高销售量,该方法此时也直接称为货篮分析。
数据总结是将数据库中的大量相关数据从较低概念层次抽象到较高概念层次的过程。计数、求和、求平均值、求*大值和*小值等计算都是数据总结的具体化。由于数据库中的数据所包含的信息往往是*原始、*基本的信息,而有时人们需要从较高的层次上浏览数据,这就要求从不同的层次上对数据进行总结以满足分析需要。
序列模式发现是在数据库中寻找基于一段时间区间的关联模式,例如,在某一时间购买个人计算机的所有顾客中,60%会在三个月内购买应用软件就是一种序列模式。序列模式与关联模式非常相似,区别在于序列模式表述基于时间的关系,而不是基于数据对象间的关系,在有些文献中也称其为基于时间的关联规则发现。
依赖关系或依赖模型发现是通过对数据库中数据的分析,获取数据间的某种因果联系。这种因果联系既可能是内在的某种概率分布关系的描述,也可能是数据对象间存在的确定的函数关系。
异常发现用于在数据库中发现数据中存在的偏差或异常。例如,下列几种偏差或异常就应引起人们的关注:不符合任何一个标准类的异常,有时可能意味着严重的错误或欺诈;相邻时间段内信息的异常变动,如二月份与一月份相比销售收入的骤然升高。
趋势预测是根据数据库中的历史信息对未来信息做出估计。实际上,预测这一数据挖掘任务并不一定是独立的。一般来讲,上述几种数据挖掘任务的结果皆可以在分析后用于趋势预测。
1.1.4 数据仓库与数据挖掘
数据挖掘与数据库新技术——数据仓库(data warehouse)有着密切的关系。数据仓库技术是近年来信息技术领域迅速发展起来的一种数据组织和管理技术。数据仓库是面向主题的、综合的、不同时间的、稳定的数据集合,它主要用于支持经营管理中的决策制定过程。数据仓库中存储面向分析型应用的集成数据,一般包含5~10年的历史数据。
数据仓库技术源于数据库技术,它的主要设计思想是将分析决策所需的大量数据从传统的操作环境中分离出来,把分散的、难以访问的操作数据转换成集中统一的、随时可用的信息而建立的一种数据库存储环境。可以说,数据仓库是一种专门的数据存储,用于支持分析型的数据处理。如何将数据仓库与数据挖掘结合在一起来更好地支持分析决策也得到了研究人员的普遍关注。数据仓库为数据挖掘提供了数据基础,在数据仓库中进行数据挖掘也对数据挖掘算法提出了更高的要求。
(1)数据仓库中集成和存储着来自若干异构的数据源的信息。这些数据源本身就可能是一个规模庞大的数据库,有着比一般数据库系统更大的数据规模。这就要求在数据仓库中进行数据挖掘的算法必须更有效、更快速。
(2)在一般的数据库中,为了提高系统的效率,一般会尽可能少地保留历史信息。而数据仓库具有一个重要的特征,即具有长时间的历史数据存储。存储长时间历史数据的目的就是进行数据长期趋势的分析,数据仓库为决策者的长期决策行为提供了有力的数据支持。然而,数据仓库中的数据在时间轴上的特征,在一定程度上增加了数据挖掘的难度。
另外,数据仓库也为数据挖掘创造了更方便的数据条件,体现在如下方面。
(1)从一个企业的角度来看,数据仓库集成了企业内各部门全面的、综合的数据。数据挖掘要面对企业全局模式的知识发现。从这一点上讲,基于数据仓库的数据挖掘能更好地满足高层战略决策的要求,而且数据仓库大大地降低了数据挖掘的障碍。数据挖掘一般要求大量的数据准备工作,而数据仓库中的数据已经被充分收集起来,进行了整理、合并,并且有些还进行了初步的分析处理。这样,可以集中精力在数据挖掘核心处理阶段。另外,数据仓库中对数据不同粒度的集成和综合,更有效地支持了多层次、多种知识的挖掘。
(2)数据仓库是面向决策支持的,因此它的体系结构努力保证查询和分析的有效性;而一般的联机事务处理系统则主要要求更新的实时性。一般的数据仓库设计成只读方式,*终用户不能更新数据。数据仓库中的数据更新由专门的一套机制来实现。数据仓库对查询的强大支持使数据挖掘效率更高,挖掘过程可以做到实时交互,使决策者的思维保持连续,有可能发现更深入、更有价值的知识。
数据仓库完成了数据的收集、集成、存储、管理等工作,数据挖掘面对经过初步加工的数据,能更专注于知识的发现过程;另外,由于数据仓库所具有的新特点,又对数据挖掘技术提出了更高的要求。可以说,数据挖掘技术和数据仓库技术结合起来,能够更充分地发挥其潜力。
1.2 数据类型及差异度计算
聚类的主要依据是对象间的相似性。确定对象之间是否相似,一般是通过计算对象之间的差异度来完成的。当对象属性取值类型不同时,差异度的计算方法也不相同。下面给出对象属性取值分别为二值属性、分类属性、数值属性和混合属性时的差异度计算方法。
1.2.1 二值属性
二值属性(binary attribute)是指只能有两种取值的属性,一般用1来表示其中的一种取值,用0来表示另外一种取值。
假设有个对象,描述每个对象的个属性值皆为二值属性,则计算对象与对象()之间的差异度需要通过下面两个步骤来完成。
1.统计二值属性取值
二值属性取值统计如表1-1所示,其中,为对象和对象取值皆为1的属性个数,为对象取值为1而对象取值为0的属性个数,为对象取值为0而对象取值为1的属性个数,为对象和对象取值皆为0的属性个数。的和为每个对象的属性总数。
2. 根据统计结果进行差异度的计算
对象与对象之间的差异度可以通过下面的公式来计算:
(1-1)
实际上,式(1-1)更适用于二值属性取值对称的情况,即二值属性取值为1或0是同等重要的,没有主次之分,因此(和同时取值为1)和(和同时取值为0)两个统
展开