数据库中的知识发现kdd(knowledge discovery in databases)和数据挖掘dm(data mining)是在需求的驱动下发展起来的一门新的技术。随着在政府部门、企事业单位、大型金融保险机构、大型商业机构、大型制造业及科研机构数据库的大量建立,数据积累成倍地急剧增长,如何充分利用这些大量数据,对数据进行分析来指导生产工作、运营工作、销售工作、竞争策略, 给领导者的决策一些支持;另一方面,如何从大量数据中挖掘出有用的信息(模式)和知识(规律),挖掘出科学上的未知规律, 已成为人类需要急切解决的问题。因此数据挖掘技术、知识发现系统就成为当今计算机领域的研究和关注的热点之一。
随着数据积累的增长,充分利用大量数据(即对数据进行分析来指导工作),并从大量数据中挖掘出有用的信息和知识,找出未知的规律,已成为人类急需解决的问题。本文就数据挖掘技术、知识发现系统这一热点问题阐述其成功的关键、面临的问题及所采用的技术。
数据库中的知识发现kdd(knowledge discovery in databases)和数据挖掘dm(data mining)是在需求的驱动下发展起来的一门新的技术。随着在政府部门、企事业单位、大型金融保险机构、大型商业机构、大型制造业及科研机构数据库的大量建立,数据积累成倍地急剧增长,如何充分利用这些大量数据,对数据进行分析来指导生产工作、运营工作、销售工作、竞争策略, 给领导者的决策一些支持;另一方面,如何从大量数据中挖掘出有用的信息(模式)和知识(规律),挖掘出科学上的未知规律, 已成为人类需要急切解决的问题。因此数据挖掘技术、知识发现系统就成为当今计算机领域的研究和关注的热点之一。
随着kdd的深入发展和internet 的普及,网上信息的大量增加,许多信息在网上发布,KDD在WWW网上挖掘也形成了热点,并形成了基于internet的web mining技术,web mining包括:web 内容挖掘,web结构挖掘,web 用户行为挖掘,当遇到的有文本、图形、图像等信息,又形成了text mining和image mining,多媒体挖掘等新的kdd的新方向。
kdd:定义和过程
1、 kdd的定义
许多研究者从不同的角度给出了有关kdd的定义,目前较一致认同的描述性定义是fayyad等人给出的:kdd是从数据集中识别出有效的、新颖的、潜在有用的以及最终可理解的模式的非平凡过程。
在上述定义中指出kdd是个过程,是从数据集识别模式的过程,几个定语都是不可少。
2、kdd的过程
kdd过程可分为数据准备、数据挖掘以及结果的解释评价,如图所示。
图:kdd的主要过程
(1)数据准备:数据准备可分为数据选取/抽样、数据预处理和数据转换。
(2)数据挖掘阶段:根据数据挖掘的任务,确定采用哪一种数据挖掘算法。同样的数据挖掘任务可以用不同的数据挖掘算法来实现,数据挖掘算法的选择主要是根据以下两个方面的因素:一是数据的特点;二是用户和实际运行系统的要求。在完成了这些准备工作后,就可以进行数据挖掘了。数据挖掘阶段仅占整个kdd过程的25%左右的工作量。
(3)结果解释和评价:经数据挖掘所发现的模式,可能存在冗余或用户不感兴趣的模式,这时需要将其除去;也有可能所发现的模式不能满足用户的需要,要求整个发现过程再返回到数据挖掘阶段之前,重新进行数据选取/抽样、数据变换和数据挖掘,甚至换一种挖掘算法(如在发现分类规则就有多种数据挖掘方法可供选择,不同的方法可能具有不同的挖掘效果)。
成功的关键与面临的问题
数据挖掘与知识发现不是给出一些数据,采用一些数据挖掘算法就可以轻易地挖掘出知识,数据挖掘与知识发现成功的关键必须做到下面几点:
1、 有明确的目标:用 kdd方法要解决什么问题,挖掘什么样的模式、规律或知识,必须提出要挖掘的目标。这一点是能否挖掘出有用知识基点,不能说,我给你一些数据,你给我挖掘出知识来,在给出数据后,采用什么挖掘方法,怎样挖掘,必须在有明确目标情况下进行,盲目的挖掘使挖掘系统无法进行。
2、 相对较长一段时间和相对准确的数据的积累:数据是知识发现的基础,数据的质量和数量对知识发现起决定性作用,不是随便给一些数据就能挖掘出有用的知识,数据必须有一定的质量和数量,在极不完整的数据上进行数据挖掘不会得到好的结果,往往数据质量和数量比数据挖掘方法更重要。
3、 领域专家的参与和指导:从目标的明确到挖到信息和知识的评价与判断都需要领域专家的指导,否则知识的可信度和可靠性都值得怀疑。
kdd研究面临的问题:
kdd是一个新兴的研究领域,目前还处在发展的阶段,还有很多的研究难题有待解决,数据的巨量性、动态性、多样性、不一致性、噪声性、缺值和稀疏性、发现模式的可理解性、兴趣度等都给kdd带来难度;数据质量、算法的有效性,知识的可用性都是研究的课题;kdd与应用系统的集成,kdd与用户的交互,知识的更新管理,复杂数据类型的处理等等都是kdd研究面临的挑战。
crisp—dm简介
crisp-dm - cross industry standard process for data mining 是ncr等四家公司联合的研究项目,1997年开始,1999年3月已给出一个初步约100页的报告,在此对其只作简单介绍, 它将kdd过程分为下列几个步骤:
1、 business understanding:在进行数据挖掘任务时首先要从企业的角度来了解任务的目标和要求,然后将这些目标和要求体现在数据挖掘的问题定义中和为达到这个目标所设计的初始的计划中。
2、 data understanding:了解数据首先从收集数据开始,为保证数据质量,为对数据的深刻理解和为筛选出感兴趣数据集,在其深刻理解数据的基础上,应不断收集相类似的数据,以便形成寻找隐藏信息的假设。
3、 data preparation:数据准备阶段包括从初始的粗数据不断形成适合数据挖掘模型的最后数据的全过程,包括数据表格、记录、属性的选择,数据的转换和数据清理。这项工作要多次完成。
4、 modeling:在这阶段各种数据挖掘方法模型被选择和应用;模型的参数被校准到最佳值。有许多数据挖掘方法可适应同一数据类型,有些数据挖掘方法对数据有特定要求。有时这阶段还会返回到数据准备阶段。
5、 evaluation:从数据分析人员的观点看,所选模型有相当高的质量,在最后应用推广时,必须更加彻底地评价这个模型,看看为构成该模型所执行的各个步骤能否达到企业要求的目标,更重要的是企业的关键问题有没有充分考虑到。
6、 deployment:一般来说, 产生挖掘的模型并不是任务的结束, 虽然挖掘得到了知识,但知识需要组织和呈现给用户,使用户可以很好用这些知识。是否采用和推广使用这种模型一般由用户来进行决定,而不是分析人员来进行决定。
采用的几种技术
根据数据采掘所采用的技术大致分为:统计方法、机器学习方法、神经网络方法和数据库方法。统计方法主要包括:回归分析(多元回归、自回归等)、判别分析(贝叶斯判别、费歇尔判别、非参数判别等)、聚类分析(系统聚类、动态聚类等)、探索性分析(主元分析法、相关分析法等)、贝叶斯方法(贝叶斯网络, 贝叶斯分类器等)。机器学习主要包括:归纳学习方法(决策树、规则归纳、面向属性的归纳方法等)、基于事例的学习、遗传算法等, 神经网络方法。数据库方法主要是多维数据分析或olap方法;此外还有模糊方法,粗糙集方法和可视化方法。由于篇幅所限,本文仅就几种常用的数据挖掘技术进行说明。
1、 决策树归纳方法
在数据挖掘中最常使用的方法就是决策树方法,它属于归纳学习方法。它的基本想法是:给一组用属性描述的训练例,然后按属性(值)构造一棵树(二叉或多叉树),从根节点到叶节点一条规则,叶节点就是一个类,由这棵树(或由这棵树形成的规则集)对另一组测试例进行分类(或)预测。这棵树就是知识。
决策树归纳方法主要有两个问题:一是先从哪一属性往下分叉,既特征选择问题(或称偏向问题),二是如何构造一棵"好"的树(树剪枝问题)。为解决前一问题研究出许多方法;最有代表性的是id3(改进的c4.5, c5.0),该方法用信息熵来找出最大增益(gain most information)作为构造树的依据。剪枝一般说来有两种策略:向前剪枝(forward pruning)和向后剪枝(backward pruning)。许多人给出各种剪枝方法,究竟采用什么剪枝法,视问题而定。
决策树方法的优点是速度快,直观可理解,所以被广泛采用,但由于它是归纳学习方法,它有两个弱点:树不唯一且不永真。一般来说精度也不太高。为了提高精度,近年来发展起来的bagging和boosting 方法取得较好的效果。在选择特征上也有人提出信息熵之外的方法,也有人提出多属性方法,树往下分叉不是用一个属性,而用多个属性,既多属性(变量)决策树。
2、 关联规则的发现
关联规则挖掘问题的提出:在大型零售商店或超级市场,存储了大量的销售记录,这些销售记录又称为货篮数据(basket data)。货篮数据保存了顾客在一次购买中所涉及的商品的详情(如商品名称、价格、数量等),我们称之为事务。数据库仅存大量的事务,决策者们想从这些数据中发现有用的信息,指导他们的营销活动。在这样的应用背景下,产生了关联规则挖掘算法,用来从事务数据库中发现有关客户购买行为的知识,顾客购买一些商品与另一些商品的关系,称之为关联规则。以后关联规则又被广泛应用到其他领域。在此我们介绍关联规则的一些定义,对算法不作介绍。
定义1:关联规则挖掘的事务数据库为d, d中的每个元组(纪录)称为事务t,d中所有属性称项目集i,i={i1,i2,...im} i 是一个项目,m是d中的所有项目数, 一条事务t是i中项目的集合,即t i。
定义2: 任意的项目集x和事务t若满足:t x,则称事务t包含项目集x。
任意的项目集y和事务t若满足:t y ,则称事务t包含项目集y 。
在超级市场的关联规则挖掘问题中项目集可以看成一个或多个商品的集合,与某顾客一次购买对应的事务t包含项目集x(或y),也就是说该顾客在这次购物中购买了项目集x(或y)中的所有商品。
定义3: 关联规则是形如x y的规则,其中x、y为项目集且x∩y= 。
表示顾客中购买了x中的所有商品,又购买了y中的所有商品。
定义4:若数据库d中, s%的事务包含x∪y则关联规则x y的支持率为s%;若包含项目集x的事务有c%的也包含项目集y,则关联规则x y的置信度为c%。
3、 粗糙集(rough set)理论
粗糙集(rough set)理论是一种新型的处理模糊和不确定知识的数学工具。自1982年由波兰数学家pawlak首次提出以来,经过十几年的研究与发展,已经在理论和实际应用上取得了长足的进展,特别是由于八十年代末和九十年代初在知识发现等领域得到了成功的应用而受到国际上广泛关注。目前,它已经在人工智能、知识发现、模式识别与分类、故障检测等方面得到了较为成功的应用。粗糙集理论具有一些独特的观点,这些观点使得粗糙集特别适合于进行数据分析。 粗糙集理论认为知识的粒度性是造成使用已有知识不能精确地表示某些概念的原因。 通过引入不可区分关系作为粗糙集理论的基础, 并在此基础上定义了上下近似等概念, 粗糙集理论能够有效地逼近这些不精确概念。有了上、下近似和不可分关系的概念我们就能够定义约简和核这两个对kdd有很大作用的概念。和模糊集合需要指定成员隶属度不同, 粗糙集的成员是客观计算的, 只和已知数据有关, 从而避免了主观因素的影响。
4、 贝叶斯网络
八十年代贝叶斯网络成功地应用于专家系统,成为表示不确定性专家知识和推理的一种方法。九十年代以来,研究者们进一步研究了直接从数据中学习并生成贝叶斯网络的方法,为贝叶斯网络用于数据采掘和知识发现开辟了新途径。这些新的方法和技术还在发展之中,但已在一些数据建模问题中显示出令人瞩目的效果。与其它用于数据采掘的表示法如规则库、决策树、人工神经网络相比,基于贝叶斯方法的贝叶斯网络有如下特点:适合处理不完整数据集问题,可以发现数据间的因果关系,可以综合先验信息(领域知识)和样本信息,在样本难以获得或者代价高昂时特别有用。可以预见,在数据采掘和知识发现中,贝叶斯网络将成为一个有力的工具。贝叶斯网络至少可以解决如下四个方面的问题。其一是贝叶斯网能够真正地处理具有不完整的数据集合;其二是贝叶斯网能够获得因果联系;其三是贝叶斯网能够更有机和充分地结合和利用已有的知识和观测数据进行学习和预测;其四是贝叶斯网络结合其它一些方法可以有效地避免数据的过度拟合。