数据挖掘的前世今生摘要:数据挖掘是一个多学科领域,它融合了数据库技术、人工智能、机器学习、统计学、知识工程、信息检索等最新技术的研究成果,其应用非常广泛。只要是有分析价值的数据库,都可以利用数据挖掘工具来挖掘有用的信息。数据挖掘典型的应用领域包括市场、工业生产、金融、医学、科学研究、工程诊断等。本文主要介绍数据挖掘的产生、定义与研究历史,并对国内外的研究现状及研究热点进行了总结,最后指出其发展趋势及问题所在。随着信息时代的到来,许多行业如商业、企业、科研机构和政府部门等迅猛发展,信息化程度逐渐加深,海量的、不同形式存储的数据资料迅速膨胀。这些海量数据中往往隐含着各种各样有用的信息,而仅仅依靠数据库的查询检索机制和统计学方法又很难获得这些信息,迫切需要一种技术能自动地、智能地将待处理的数据转化为有价值的信息,从而达到为决策服务的目的。在这种情况下一个新的技术——数据挖掘(DataMining,DM)技术应运而生。数据挖掘所要处理的问题,就是在庞大的数据库中找出有价值的隐藏事件,并且加以分析,或者说,从数据库中获取有意义的信息以及对数据归纳出有用的结构,作为决策的依据。同时,数据挖掘还能探索出数据库中那些先前从未被关心或知悉的数据信息,这些信息对于决策者来说,往往具有重要的意义[1]。一、数据挖掘的产生与概念1.数据挖掘的产生数据挖掘的出现是一个逐渐演变的过程。电子数据处理的初期,人们试图实现自动决策支持,当时人们关心与研究的焦点主要是机器学习。机器学习的过程是先将已知的并被成功解决的范例输入计算机,然后机器通过学习这些范例总结并生成相应的通用规则,这些规则常被使用来解决某一类问题。随着神经网络技术的形成和发展,人们的注意力开始转向知识工程。知识工程的过程不同于机器学习,而是直接在计算机上输入代码化的规则,计算机通过使用这些规则来解决某些问题。专家系统就是基于这种方法所得到的成果,但它有许多不足,比如,投资大、效果不甚理想等。80年代,在新的神经网络理论的指导下,关注焦点重新回到机器学习,其成果被广泛地应用于处理大型商业数据库。在80年代末,出现了一个新的术语——数据库中的知识发现,简称KDD(KnowledgeDiscoveryinDatabase),它泛指所有从源数据中发掘模式或联系的方法。KDD描述了整个数据发掘的过程,包括最开始的制定业务目标到最终的结果分析,而数据挖掘(datamining)描述使用挖掘算法进行数据挖掘的子过程。最近人们却逐渐习惯于使用数据挖掘来涵盖整个过程。因为其中的许多工作由统计方法来完成,因此统计方法与数据挖掘的有机结合是最好的策略。数据挖掘技术的形成与数据仓库技术的发展有着密切的关系。数据仓库的发展是促进数据挖掘越来越热的主要原因之一。因为很多数据挖掘可直接从操作数据源中挖掘信息,所以数据仓库并不是数据挖掘的先决条件。表1.1展示了数据挖掘的进化历程[1]。表1.1数据挖掘的进化历程进化阶段商业问题支持技术产品厂家产品特点数据搜集(60年代)过去五年中我的总收入是多少?计算机、磁带和磁盘IBM,CDC提供历史性的、静态的数据信息数据访问(80年代)在新英格兰的分部去年三月的销售额是多少?关系数据库(RDBMS),结构化查询语言(SQL),ODBCOracle、Sybase、Informix、IBM、Microsoft在记录级提供历史性的、动态数据信息数据仓库;决策支持(90年代)在新英格兰的分部去年三月的销售额是多少?波士顿据此可得出什么结论?联机分析处理(OLAP)、多维数据库、数据仓库Pilot、Comshare、Arbor、Cognos、Microstrategy在各种层次上提供回溯的、动态的数据信息数据挖掘(正在流行)下个月波士顿的销售会怎么样?为什么?高级算法、多处理器计算机、海量数据库Pilot、Lockheed、IBM、SGI、其他初创公司提供预测性的信息2.数据挖掘的定义数据挖掘(DataMining)是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括多层含义:(1)数据源必须是真实、大量、含噪声;(2)发现的知识要是用户感兴趣的;(3)发现的知识要可接受、可理解、可应用;(4)发现的知识并不要求普遍适用,仅需要支持特定的问题[2]。知识,从广义上可以理解为所有的数据、信息集合,但人们更愿意把概念、规则、模式、规律和约束等看作知识。数据是形成知识的源泉。原始数据有三种表现形式:结构化的,如关系数据库中的数据;半结构化的,如文本、图形和图像数据;分布在网络上的异构型数据。发现知识的方法也有多种,可以是数学的,也可以是非数学的,可以是演绎的,也可以是归纳的。发现的知识可以有多种应用,既能用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。综上,数据挖掘把对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。事实上,更广泛一点说,数据挖掘就是在一些事实或观察数据的集合中寻找模式的决策支持过程。它涉及到数据库技术、人工智能、机器学习、神经网络、统计学、模式识别、知识库系统、信息检索、高性能计算和数据可视化等学科[2][3][4]。3.专业术语数据挖掘是一门来自不同领域的研究者关注的交叉性学科,因此导致了很多不同的术语名称。人工智能和机器学习界常把它称为知识发现(KnowledgeDiscoveryinDatabases,KDD)。统计界、数据分析、数据库和管理信息系统界则把它称为数据挖掘(datamining)。在某些领域或书里面,也用以下术语:知识抽取(informationextraction)、信息发现(informationdiscovery)、智能数据分析(intelligentdataanalysis)、探索式数据分析(exploratorydataanalysis)、信息收获(informationharvesting)、数据考古(dataarcheology)[5]。4.数据挖掘与传统分析方法的区别数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有未知,有效和可实用三个特征。未知的信息是指该信息是预先未曾预料到的,既数据挖掘是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息越是出乎意料,就可能越有价值。在商业应用中最典型的例子就是一家连锁店通过数据挖掘发现了小孩尿布和啤酒之间有着惊人的联系。图1.1数据挖掘结构图二、数据挖掘研究历史与现状1.数据挖掘研究史1989年8月在美国底特律召开的第11届国际人工智能联合会议的专题讨论会上首次出现知识发现(KDD)这个术语。此后,由美国人工智能协会主办的KDD国际研讨会已经召开了8次,规模由原来的专题讨论会发展到国际学术大会,研究重点也逐渐从发现方法转向系统应用,注重多种发现策略和技术的集成,以及多种学科之间的相互渗透。除了美国人工智能协会主办的KDD年会外,还有许多的数据挖掘年会,包括PAKDD、PKDD、SIAM-DataMining等。PAKDD(Pacific-AsiaConferenceonKnowledgeDiscoveryandDataMining)是亚太平洋地区数据挖掘会议。SIAM-DataMining(SocietyforIndustrialandAppliedMathematics)是SIAM组织召开的数据挖掘讨论会。此外,数据库、人工智能、信息处理、知识工程等领域的国际学术刊物也纷纷开辟了KDD专题或专刊。1998年第四届知识发现与数据挖掘国际学术会议上不仅进行了学术讨论,并且有30多家软件公司展示了他们的数据挖掘软件产品,不少软件已在北美、欧洲等国得到应用。1999年,亚太地区在北京召开的第三届PAKDD会议收到158篇论文,空前热烈。IEEE的KnowledgeandDataEngineering会刊率先在1993年出版了KDD技术专刊。并行计算、计算机网络和信息工程等其他领域的国际学会、学刊也把数据挖掘和知识发现列为专题和专刊讨论[6]。图2.1部分KDD国际学术会议(备注:从95年更名为国际会议)一览表时间会议名称会议地址收录论文比与会人数1989.8WorkshoponKDDDetroit,Michigan,USA2:1301995.8KDD-1995Montreal,Canada4.5:13401997.2PKDD-1997Singapore3.5:1972001.8KDD-2001SanFrancisco,USA237:31900+2004.8KDD-2004Seattle,WA,USA384:54600-9002006.8KDD-2006Philadelphia,PA,USA531:120600-9002.出版物及工具IEEE的KnowledgeandDataEngineering会刊领先在1993年出版了KDD技术专刊。不仅如此,在Internet上还有不少KDD电子出版物,其中以半月刊KnowledgeDiscoveryNuggets最为权威,另一份在线周刊为DS*(DS代表决策支持),1997年10月7日开始出版,可向dstrial@tgc.com提出免费订阅申请。在网上,还有一个自由论坛DMEmailClub,人们通过电子邮件相互讨论数据挖掘DMKD的热点问题。国内较好的数据挖掘技术交流网站有复旦大学的数据挖掘讨论组()和数据挖掘研究院()至于知识发现与数据挖掘书籍,可以在任意一家计算机书店找到十多本[7]。目前,世界上主要的实验系统有:加拿大SimonFraser大学“智能数据库系统研究室”在97年研制并开发了数据挖掘系统DBMiner;新加坡国立大学计算机学院的CBA和IAS;澳大利亚国立大学研制的数据挖掘系统原型Dmtools;英国Ulster大学对数据挖掘的应用做了许多研究,先后研制过MIMIC、CERENA、NetModel等系统;德国Dortmund大学在研的项目MiningMart;美国卡内基梅隆大学自动学习和发现中心正在研制数据挖掘技术在制造业和多媒体数据库的应用。哥伦比亚大学正在研究入侵检测系统IDS等等。主要的商业数据挖掘系统有:SPSS公司的Clementine、SAS公司的EnterpriseMiner、IBM公司的IntelligentMiner、SGI公司的Mineset、Sybase公司的WarehouseStudio、RuleQuestResearch公司的See5、还有CoverStory、EXPLORA、KnowledgeDiscoveryWorkbench、DBMiner、Quest等[6][7]。3.数据挖掘研究与应用现状目前,数据挖掘己从高速运行的初级阶段进人了方兴未艾的中级阶段。初级阶段已完成了理论草创、模型框架、学术领域的组织落实等工作;中级阶段,在理论上完成模型补遗、算法优化,理论完善,撰写著作、教科书。目前,国外数据挖掘的最新发展主要有对发现知识的方法的进一步研究,如近年来注重对Bayes(贝叶斯)方法以及Boosting方法的研究和改进提高;KDD与数据库的紧密结合;传统的统计学回归方法在KDD中的应用。近年来,对关系数据库中的数据挖掘和知识发现研究己经取得了不少进展,其中代表性的工作有:用面向属性的归纳方法在关系数据库中发现特征规则和区分规则。在事务数据库中发现关联规则。基于距离的和基于密度的聚类分析的优化等。为了处理数据库中的不确定性问题,Rough集和模糊集理论得到了广泛的研究与应用。另外,决策树、神经网络、遗传算法、可视化等方法也在机器学习与知识发现中得到了研究与应用。在数据挖掘与知识发现领域,最有影响的发现算法有IMB的Agrwaal的关联算法Apriori、