1、1(20_届)本科毕业设计信息与计算科学基于MATLAB的数据挖掘技术研究2摘要本文综合介绍了数据挖掘技术的产生和发展及应用。通过“层次聚类”和“遗传算法”的MATLAB实现,显示了基于MATLAB的数据挖掘技术的优势。关键词数据挖掘技术,MATLAB,层次聚类,遗传算法THEDATAMININGTECHNOLOGYBASEDONMATLABABSTRACTGENERALINFORMATIONOFTHEPRODUCE、DEVELOPINGANDAPPLICATIONOFDATAMININGTECHNICAL。ITSHOWSTHEADVABTAGEOFTHEDATAMININGTECHNOLOG
2、YBASEDONMATLABTHAT“HIERARCHICALCLUSTERING“AND“GENETICALGORITHM“ISIMPLEMENTEDBYMATLABKEYWORDDATAMINGING,MATLAB,HIERARCHICALCLUSTERING,GENETICALGORITHM3论文目录1引文32数据挖掘技术的产生与兴起33数据挖掘的定义与特点44MATLAB概述65基于MATLAB的数据挖掘算例751层次聚类HIERARCHICALCLUSTERING752遗传算法在非线性规划中的应用107总结12参考文献1341引言数据库量的飞速增长向科学家、工程师和销售人员提出了一个
3、挑战在大量的数据中是不是会隐藏着有价值的东西呢怎样充分有效地利用这些数据进行科学研究、系统优化以及发现商业数据内在关系及其可说明的问题,便成了一个很重要的课题。为了实现这个目的,人们发明了各式各样的算法统计,机器学习,神经网络,推理网络,决策树以及针对各种特定实际问题的解决方法。数据挖掘涉及的学科领域和方法很多。这门新兴的边缘科学结合了统计学、机器学习、模式识别、智能数据库、知识获取、人工智能、专家系统、数据可视化以及高性能计算等领域。它已吸引了计算机科学家、工程技术人员、认知科学家和统计学家的极大兴趣。2数据挖掘技术的产生与兴起随着计算机硬件和软件的飞速发展,尤其是数据库技术与应用的日益普及
4、,人们面临着快速扩张的数据海洋,如何有效利用这一丰富数据海洋的宝藏为人类服务,业已成为广大信息技术工作者所关注的焦点之一。与日趋成熟的数据管理技术与软件工具相比,人们所以来的数据分析工具功能,却无法有效地为决策者提供其决策支持所需要的相关知识,从而形成了一种“丰富的数据,贫乏的知识”之独特的现象。为有效解决这一问题,自20世纪80年代开始,数据挖掘逐步发展起来,数据挖掘技术的迅速发展,得益于目前全世界所拥有的巨大数据资源,以及对将这些数据资源转换为信息和知识资源的巨大需求,对信息和知识的需求来自各行各业,从商业管理、生产控制、市场分析到工程设计、科学探索等等。数据挖掘可以视为是数据管理与分析技
5、术自然进化产物。自20世纪60年代开始,数据库及其信息技术就逐步从基本的文件处理系统发展为更复杂功能、更强大的数据库系统;70年代的数据库系统的研究与发展,最终导致了关系数据库系统、数据建模工具、索引与数据组织技术的迅速发展,这时用户获得了更方便灵活的数据存取语言和界面;此外在线事务处理(OLTPONLINETRANSACTIONPROCESSING)手段的出现也极大地推动了关系数据库技术的应用普及,尤其是在大数据量存储、检索和管理的世纪应用领域。自20世纪80年代中期开始,关系数据库技术被普遍采用,新一轮研究与开发新型与强大的数据库系统悄然兴起,并提出了许多先进的数据模型;扩展关系模型、面向
6、对象模型、演绎模型等,以及应用数据库系统空间数据库、时序数据库、多媒体数据库等。目前异构数据库系统和基于互联网的全球信息系统也已开始出现并在信息工业中开始扮演重要角色。被收集并存储在众多数据库中且正在快速增长的庞大数据,已远远超过人类的处理和分析理解能力(在不借助功能强大的工具情况下),这样存储在数据库中的数据就成为“数据坟墓”,即这些数据极少被访问,结果许多重要的决策部署基于这些基础数据而是依赖决策者的直觉而制订的,其5中的原因很简单,这些决策的制定者没有合适的工具帮忙其从数据中抽取出所需的信息知识。而数据挖掘工具可以帮助从大量数据中发现所存在的特定模式规律,从而可以为商业活动、科学探索和医
7、学研究等诸多领域提供所必须的信息知识。数据与信息知识之间的巨大差距迫切需要系统地开发数据挖掘工具,来帮助实现将“数据坟墓”中的数据转化为知识财富。实际上,数据挖掘在1966年就作为一个词组在统计学的论文中出现了,但是统计学家当时是希望在统计分析中尽量避免进行数据挖掘,原因是当时的大规模数据存取和处理技术还不成熟。1989年以后再度使用数据挖掘这个词就不再是负面意义了,“数据挖掘中的知识发现”这一概念首次出现在第十一届国际联合人工智能学术会议的“数据库中知识发现”研讨会(IJCAIWORKSHOPONKNOWLEDGEDISCOVERYINDATABASES)上,人们开始希望能够用“在数据中通过
8、挖掘”的方式处理数据,获取有用的信息。PIATETSKYSHAPIRO和FRAWLEY编辑的论文集KNOWLEDGEDISCOVERYINDATABASES就汇集了早期的一些研究论文,之后,由美国人工智能协会主办的KDD国际研讨会召开了多次,规模从原来的专题讨论会发展到国际学术大会,研究重点也逐渐从发现方法转向系统应用,注重多种发现策略和技术的集成,以及多学科间的相互渗透。1996年出版的由FAYYAD、PIATETSKYSHAPIRO、SMYTH和UTHURUSAMY编辑的论文集ADVANCESINKNOWLEDGEDISCOVERYANDDATAMINING则反映了数据挖掘技术比较深入的一
9、些成果,数据挖掘和知识发现技术开始在海量数据处理中发挥作用。不仅仅局限在数据库领域,很多和计算技术、信息系统、决策支持和人工智能相关的学术期刊和国际会议都把数据挖掘和只是发现列为重要的专题和专刊进行讨论,如并行计算、计算机网络、运筹与优化、信息系统与信息工程等领域的学术会议及期刊。3数据挖掘的定义与特点数据挖掘的定义几经变动,有多种不动方式的定义。现在,由USAMAMFAYYAD等给出的定义被大家广泛的采用。定义31数据挖掘是从大量的数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有潜在价值的知识和规则。这些规则蕴含了数据库中一组对象之间的特定关系,揭示出一些有用的信息,可以为经营决策、市
10、场策划和金融预测等方面提供依据。在一些文献中,数据挖掘或知识发现也一度被翻译为数据采集、数据开采、知识挖掘、知识抽取和知识考查等。定义32令D1,2,3,NDDDD为要分析的数据合集,数据挖掘可描述为一个过程,其目的是要发现61)D的一个子集D,D一般要在数据量上少于D,且维数也较低;2)关于D的一个假设H(D,C),其中C是用户认为有用的上下文。由于数据经常被组织成关系或类,所以D可看作是多个关系1R,2R,,NR的并列集,即DIR,关系到维数分别为1M,2M,NM,H可处理整个数据库或单个关系,(DD或DIR),或处理数据库的子集(DD,DXRANDN6,2X043261189216656
11、0037601253032738028770174611465018671190907258PLOTX,1,X,2,BO如图1,来对照聚类结果图1YPDISTXYCOLUMNS1THROUGH141739410267124421550116883182771964805401295680222813717113771479010581COLUMN1525092例子中X数据集可以看作包含6个平面数据点,PDIST之后的Y是一个行向量,15个元素分别代表X的第1点与26点、第2点与36点,这样的距离。那么对于M个点的数据集X,PDIST之后的Y将是具有MM1/2个元素的行向量。Y这样的显示虽然节省
12、了内存空间,如果需要对这些距离进行特定操作的话,也不太好索引。MATLAB中可以用SQUAREFORM把Y转换成方阵形式,方阵中位置的数值就是X中第I和第J点之间的距离,显然这个方阵应该是个对角元素为0的对称阵。SQUAREFORMYANS0173941026712442155011688317394018277196480540129568910267182770022281371711377124421964802228014790105811550105401137171479002509216883295681137710581250920这里需要注意的是,PDIST可以使用多种参数,
13、指定不同的距离算法。另外,当数据规模很大时,可以想象PDIST产生的Y占用内存将是很吓人的,比如X有10K个数据点,那么X占10K82BYTES160K,这看起来不算啥,但是PDIST后的Y会有10K10K/28BYTES400M。所以,用MATLAB的层次聚类来处理大规模数据,大概是很不合适的。2确定好了对象间的差异度(距离)后,就可以用ZLINKAGEY来产生层次聚类树了。ZLINKAGEYZ3000040000022282000050000054011000070000102676000090000105818000010000013717对于M个元素的X,前面说了Y是1行MM1/2的行
14、向量,Z则是M13的矩阵。Z数组的前两列是索引下标列,最后一列是距离列。在产生聚类树的计算过程中,第3和第4点先聚成一类,他们之间的距离是02228,以此类推。为标记每一个节点,给新产生的聚类也安排一个标识,MATLAB中会将新产生的聚类依次用M1,M2,依次来标识。比如第3和第4点聚成的类以后就用7来标识,第2和第5点聚成的类用8来标识,依次类推。通过LINKAGE函数计算之后,实际上二叉树式的聚类已经完成了。Z这个数据数组不太好看,可以用DENDROGRAMZ来可视化聚类树。图210可以看到,产生的聚类树的每一层都是一个倒置的U型(或者说是个型),纵轴高度代表了当前聚类中两个子节点之间的距
15、离。横轴上标记出了各个数据点索引下标。稍微注意以下的是,DENDROGRAM默认最多画30个最底层节点,当然可是设置参数改变这个限制,比如DENDROGRAMZ,0就会把所有数据点索引下标都标出来,但对于成千上万的数据集合,这样的结果必然是图形下方非常拥挤。3初步的聚类树画完后,还要做很多后期工作的,包括这样的聚类是不是可靠,是不是代表了实际的对象分化模式,对于具体的应用,应该怎样认识这个完全版的聚类树,产生具有较少分叉的可供决策参考的分类结果呢这都是需要考虑的。MATLAB中提供了CLUSTER,CLUSTERDATA,COPHENET,INCONSISTENT等相关函数。CLUSTER用于
16、剪裁完全版的聚类树,产生具有一定CUTOFF的可用于参考的树。CLUSTERDATA可以认为是PDIST,LINKAGE,CLUSTER的综合,当然更简易一点。COPHENET和INCONSISTENT用来计算某些系数,前者用于检验一定算法下产生的二叉聚类树和实际情况的相符程度(就是检测二叉聚类树中各元素间的距离和PDIST计算产生的实际的距离之间有多大的相关性),INCONSISTENT则是量化某个层次的聚类上的节点间的差异性(可用于作为CLUSTER的剪裁标准)。后面这些的理解,需要对聚类有一个更深刻更数学的认识,我也不是很清楚,就不多说了。52遗传算法在非线性规划中的应用1简述非线性规划
17、非线性规划研究一个N元实函数在一组等式或不等式的约束条件下的极值问题,一般非线性规划可描述如下目标函数MAXFX不等式约束IGX0,I1M等式约束IHX0,IM1,NX遗传算法对染色体做遗传操作一般都会产生不可行的后代,所以用遗传学算法解非线性规划的关键是如何满足约束。工程中常通过惩罚不可行解使有约束问题转化为无约束问题。构造带有惩罚项的适值通常有两种。一种是加法形式VALXFXPX对于极大化问题,则0,0,PXXPX可行其他11对于极小化问题,则0,P0,PXXX可行其他另一种乘法形式VALFXPX对于极大化问题,则0,0P1,PXXX可行其他对于极小化问题,则0,1,PXXPX可行其他其中
18、,染色体X,目标函数FX,惩罚项PX。(2)实例分析MINFX1X222X121GX1X22X10ST2GX214X22X0取加法形式的适值函数VALXFXPXPXMIII10,XRGX若可行(),其他IR为约束I的可变惩罚系数。(3)使用GOAT编程计算1)编制目标函数文件ROSENBROCKMINMFUNCTIONSOL,EVALROSENBROCKMINSOL,OPTIONSX1SOL1X2SOL2R101R208G1X12X21约束条件G2X12/4X221加惩罚项的适值IFG10ELSEEVALX122X212R1G1R2G2ENDEVALEVAL2编程调用主程序GAM,其程序BOU
19、NDSONES2,11,1N2,设置参数边界X,ENDPOP,BESTSOLS,TRACEGABOUNDS,ROSENBROCKMINPLATTRACE,1,TRACE,3,BTRACE,1,TRACE,2,R)XLABELGENERATION,FONTSIZE,14;YLABELFITTNESS,FONTSIZE,14;LEGEND解的变化,种群平均值的变化;3)结果输出X11EVALX1,G1X0,G2X025显然最优解满足约束条件,图1为遗传算法寻优的跟踪图。图1遗传算法寻优性能的跟踪图137总结通过领域间互相借鉴,越来越多的数据挖掘算法从原领域内分化出来,并正在形成一学科。数据挖掘虽然
20、包括很多统计学的方法,可它在处理数据集的规模和包容方法的种类方面则远远超过了传统意义上的统计学。加入了人工智能及启发性知识后,数据挖掘可以处理的问题更多更广了。他已经脱离了传统意义上的数学模型概念,成为一个基于工业、金融业等实际背景,用包含数学在内的各种手段和工具直接满足实际的需求的技术领域。参考文献1黄子诚,基于决策树的数据挖掘技术J,电脑知识与技术VOL6,NO8,2010(3)P194919502袁溪,数据挖掘技术及其应用J科技资讯NO102010P22,P243赵芳,马玉磊,浅析数据挖掘技术的发展及应用J,科技信息P644王平,王升花,邬连学,基于遗传算法的变压器故障诊断方法的研究J,
21、技术应用20112P695卢华,刘福胜,王少杰,张鹏,基于遗传算法的平原水库坝高优化J,人民黄河VOL33,NO1,2011(1)P1251286刘兴波,凝聚型层次聚类算法的研究J,科技信息NO11,2008P2027吴燕,科技文档的层次聚类分析J,商业文化社会经纬,2008(1)P3533548孟姗姗,全国地区小康和现代化指数的层次聚类分析J9张利华,彭海燕,余淑媛,量子克隆遗传算法的多用户检测技术研究J,大众科技,NO1,2011P283110张德丰,MATLAB概述J,MATLAB数值分析与应用P1911牛晓东,刑棉,孟明,基于基于联合数据挖掘技术的神经网络负荷预测模型研究J,电工科技学报,VOL19,NO9,2004(4)P6268