基于matlab的数据挖掘技术研究【毕业论文】

基于matlab的数据挖掘技术研究【毕业论文】

ID:475302

大小:375.26 KB

页数:13页

时间:2017-08-08

上传者:U-944
基于matlab的数据挖掘技术研究【毕业论文】_第1页
基于matlab的数据挖掘技术研究【毕业论文】_第2页
基于matlab的数据挖掘技术研究【毕业论文】_第3页
基于matlab的数据挖掘技术研究【毕业论文】_第4页
基于matlab的数据挖掘技术研究【毕业论文】_第5页
资源描述:

《基于matlab的数据挖掘技术研究【毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

(20__届)本科毕业设计信息与计算科学基于matlab的数据挖掘技术研究13 摘要:本文综合介绍了数据挖掘技术的产生和发展及应用。通过“层次聚类”和“遗传算法”的Matlab实现,显示了基于Matlab的数据挖掘技术的优势。关键词:数据挖掘技术,matlab,层次聚类,遗传算法ThedataminingtechnologybasedonmatlabAbstract:GeneralInformationoftheProduce、DevelopingandApplicationofdataminingtechnical。Itshowstheadvabtageofthedataminingtechnologybasedonmatlabthat"hierarchicalclustering"and"geneticalgorithm"isimplementedbymatlab.Keyword:dataminging,matlab,hierarchicalclustering,Geneticalgorithm13 论文目录1引文………………………………………………………………………………………32数据挖掘技术的产生与兴起…………………………………………………33数据挖掘的定义与特点…………………………………………………………44MATLAB概述…………………………………………………………………………65基于matlab的数据挖掘算例…………………………………………………75.1层次聚类hierarchicalclustering………………………………………75.2遗传算法在非线性规划中的应用……………………………………………107总结………………………………………………………………………………………12参考文献………………………………………………………………………………………1313 1引言数据库量的飞速增长向科学家、工程师和销售人员提出了一个挑战:在大量的数据中是不是会隐藏着有价值的东西呢?怎样充分有效地利用这些数据进行科学研究、系统优化以及发现商业数据内在关系及其可说明的问题,便成了一个很重要的课题。为了实现这个目的,人们发明了各式各样的算法:统计,机器学习,神经网络,推理网络,决策树以及针对各种特定实际问题的解决方法。数据挖掘涉及的学科领域和方法很多。这门新兴的边缘科学结合了统计学、机器学习、模式识别、智能数据库、知识获取、人工智能、专家系统、数据可视化以及高性能计算等领域。它已吸引了计算机科学家、工程技术人员、认知科学家和统计学家的极大兴趣。2数据挖掘技术的产生与兴起随着计算机硬件和软件的飞速发展,尤其是数据库技术与应用的日益普及,人们面临着快速扩张的数据海洋,如何有效利用这一丰富数据海洋的宝藏为人类服务,业已成为广大信息技术工作者所关注的焦点之一。与日趋成熟的数据管理技术与软件工具相比,人们所以来的数据分析工具功能,却无法有效地为决策者提供其决策支持所需要的相关知识,从而形成了一种“丰富的数据,贫乏的知识”之独特的现象。为有效解决这一问题,自20世纪80年代开始,数据挖掘逐步发展起来,数据挖掘技术的迅速发展,得益于目前全世界所拥有的巨大数据资源,以及对将这些数据资源转换为信息和知识资源的巨大需求,对信息和知识的需求来自各行各业,从商业管理、生产控制、市场分析到工程设计、科学探索等等。数据挖掘可以视为是数据管理与分析技术自然进化产物。自20世纪60年代开始,数据库及其信息技术就逐步从基本的文件处理系统发展为更复杂功能、更强大的数据库系统;70年代的数据库系统的研究与发展,最终导致了关系数据库系统、数据建模工具、索引与数据组织技术的迅速发展,这时用户获得了更方便灵活的数据存取语言和界面;此外在线事务处理(OLTP:on-linetransactionprocessing)手段的出现也极大地推动了关系数据库技术的应用普及,尤其是在大数据量存储、检索和管理的世纪应用领域。自20世纪80年代中期开始,关系数据库技术被普遍采用,新一轮研究与开发新型与强大的数据库系统悄然兴起,并提出了许多先进的数据模型;扩展关系模型、面向对象模型、演绎模型等,以及应用数据库系统:空间数据库、时序数据库、多媒体数据库等。目前异构数据库系统和基于互联网的全球信息系统也已开始出现并在信息工业中开始扮演重要角色。被收集并存储在众多数据库中且正在快速增长的庞大数据,已远远超过人类的处理和分析理解能力(在不借助功能强大的工具情况下),这样存储在数据库中的数据就成为“数据坟墓”13 ,即这些数据极少被访问,结果许多重要的决策部署基于这些基础数据而是依赖决策者的直觉而制订的,其中的原因很简单,这些决策的制定者没有合适的工具帮忙其从数据中抽取出所需的信息知识。而数据挖掘工具可以帮助从大量数据中发现所存在的特定模式规律,从而可以为商业活动、科学探索和医学研究等诸多领域提供所必须的信息知识。数据与信息知识之间的巨大差距迫切需要系统地开发数据挖掘工具,来帮助实现将“数据坟墓”中的数据转化为知识财富。实际上,数据挖掘在1966年就作为一个词组在统计学的论文中出现了,但是统计学家当时是希望在统计分析中尽量避免进行数据挖掘,原因是当时的大规模数据存取和处理技术还不成熟。1989年以后再度使用数据挖掘这个词就不再是负面意义了,“数据挖掘中的知识发现”这一概念首次出现在第十一届国际联合人工智能学术会议的“数据库中知识发现”研讨会(IJCAIWorkshoponKnowledgeDiscoveryinDatabases)上,人们开始希望能够用“在数据中通过挖掘”的方式处理数据,获取有用的信息。Piatetsky-Shapiro和Frawley编辑的论文集《KnowledgeDiscoveryinDatabases》就汇集了早期的一些研究论文,之后,由美国人工智能协会主办的KDD国际研讨会召开了多次,规模从原来的专题讨论会发展到国际学术大会,研究重点也逐渐从发现方法转向系统应用,注重多种发现策略和技术的集成,以及多学科间的相互渗透。1996年出版的由Fayyad、Piatetsky-Shapiro、Smyth和Uthurusamy编辑的论文集《AdvancesinKnowledgeDiscoveryandDataMining》则反映了数据挖掘技术比较深入的一些成果,数据挖掘和知识发现技术开始在海量数据处理中发挥作用。不仅仅局限在数据库领域,很多和计算技术、信息系统、决策支持和人工智能相关的学术期刊和国际会议都把数据挖掘和只是发现列为重要的专题和专刊进行讨论,如并行计算、计算机网络、运筹与优化、信息系统与信息工程等领域的学术会议及期刊。3数据挖掘的定义与特点数据挖掘的定义几经变动,有多种不动方式的定义。现在,由UsamaM.Fayyad等给出的定义被大家广泛的采用。定义3.1数据挖掘是从大量的数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有潜在价值的知识和规则。这些规则蕴含了数据库中一组对象之间的特定关系,揭示出一些有用的信息,可以为经营决策、市场策划和金融预测等方面提供依据。在一些文献中,数据挖掘或知识发现也一度被翻译为数据采集、数据开采、知识挖掘、知识抽取和知识考查等。定义3.2令D={}为要分析的数据合集,数据挖掘可描述为一个过程,其目的是要发现:13 1)D的一个子集,一般要在数据量上少于D,且维数也较低;2)关于的一个假设H(,C),其中C是用户认为有用的上下文。由于数据经常被组织成关系或类,所以D可看作是多个关系,,…,的并列集,即D=,关系到维数分别为,,…,,H可处理整个数据库或单个关系,(=D或=),或处理数据库的子集(D,<<),也可以处理热点(=1)。H有如下功能:1)描述满足大部分数据项e的性质(D);2)将D根据不同的情况分为不同类,()(),当,,且,为某种性质;3)存在两维或多维函数依赖F,即:=F(,,…,)或满足关系R(,,…,)。通过数据挖掘,有价值的知识、规则或高层次的信息就可以从数据库的相关数据集合中抽取出来,并从不同的角度显示从而使大型数据库作为一个丰富可靠的资源,为决策服务。另外数据挖掘不只在商业中获得成功应用,在工业生产领域应用中也有很好的表现。例如,影响工业生产率的因素往往很多,靠传统的方法无法得知哪些是关键因素,利用数据挖掘的方法进行分析就可以发现各因素的联系,找出关键因素,从而提高生产效率。数据挖掘有以下三个特点:1处理数据规模通常都非常巨大,否则单纯使用统计方法处理数据就足够了。因此怎样才能高效率地存取数据,如何根据一定应用领域找出数据关系即高效率算法以及是使用全部数据还是使用一部分随机或有目的地选择出数据子集,都成为数据挖掘工作者要考虑的问题。2数据挖掘面临的数据常常是为其他目的而收集好的数据(比如说,银行已存有巨大的每日出入帐的数据,这些数据原本是为其他目的而存储的)。这就为数据挖掘提出了一个问题,即收集数据时,可能有一个或几个重要的变量未被收集,而这些变量在后来做数据挖掘时被证明是有用的,甚至是至关重要的。也就是说,未知性和不完全性将始终伴随数据挖掘的过程。3数据的另一个特点是数据挖掘工作者常常不愿把先验知识预先嵌入算法内,因为这样就等于做“假设检验”13 (但这不排除把统计中的假设检验作为其中间一步来做)。数据挖掘常常要求算法主动性地提示一些数据内在的关系。新颖性是衡量一个数据挖掘算法好坏的一个很重要的标准。当然,这些新颖性的结论必须是可以被人理解的,绝对不应该是漫无边际的奇怪理论。很显然,数据挖掘有别于传统的数据查询、报表及全文检索等数据分析的方法,它常常是在没有前提假设的情况下,从事信息的挖掘与知识的提取。数据挖掘所得到的信息结果,当然不一定全都是先前未知的。4MATLAB概述Matlab是MathWorks公司在1984年推出的一套科学计算然见,不但具有面向大量数据量的以矩阵计算为基础的强大数据计算和分析功能,而且具有丰富的可视化图形表现功能和方便的程序设计能力。M语言被通俗地称为“演算纸式科学算法语言“,具有其他高级语言难以比拟的一些优点,如简单易学、代码短小高效、计算功能强大、图形表现功能有益、可扩展性好等。Matlab的应用领域极为广泛,除数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域。Matlab的特点有:1)编程效率高;2)用户使用方便;3)扩充能力强,交互性好;4)移植性和开发性好;5)语句简单,内涵丰富;6)高效方便的矩阵和数组运算;7)方便的绘图功能。目前,matlab应用的一个成功典例是SPM软件。SPM(statisticalparamentersmapping)是当前国际上流行的进行脑功能成像数据分析的软件之一。该软件是在MATLAB品台上开发的,是专门为脑功能成像数据分析而设计的一个通用团建包。SPM充分利用了MATLAB再图形用户届面设计、大数据量处理方面的优势,以及基于MATLAB开发数据分析与处理软件的设计可行性。5基于matlab的数据挖掘5.1层次聚类hierarchicalclustering层次聚类是基于距离的聚类方法,MATLAB中通过pdist、linkage、dendrogram、cluster等函数来完成。层次聚类的过程可以分这么几步:(1)确定对象(实际上就是数据集中的每个数据点)之间的相似性,实际上就是定义一个表征对象之间差异的距离,例如最简单的平面上点的聚类中,最经常使用的就是欧几里得距离。这在MATLAB中可以通过Y=pdist(X)实现,例如:>>X=randn(6,2)X=   -0.4326    1.1892   -1.6656   -0.0376    0.1253    0.327313     0.2877    0.1746   -1.1465   -0.1867    1.1909    0.7258>>plot(X(:,1),X(:,2),'bo')   %如图1,来对照聚类结果图1>>Y=pdist(X)Y=  Columns1through14    1.7394    1.0267    1.2442    1.5501    1.6883    1.8277    1.9648    0.5401    2.9568    0.2228    1.3717    1.1377    1.4790    1.0581  Column15    2.5092例子中X数据集可以看作包含6个平面数据点,pdist之后的Y是一个行向量,15个元素分别代表X的第1点与2-6点、第2点与3-6点,......这样的距离。那么对于M个点的数据集X,pdist之后的Y将是具有M*(M-1)/2个元素的行向量。Y这样的显示虽然节省了内存空间,如果需要对这些距离进行特定操作的话,也不太好索引。MATLAB中可以用squareform把Y转换成方阵形式,方阵中位置的数值就是X中第i和第j点之间的距离,显然这个方阵应该是个对角元素为0的对称阵。>>squareform(Y)ans=         0    1.7394    1.0267    1.2442    1.5501    1.6883    1.7394         0    1.8277    1.9648    0.5401    2.956813     1.0267    1.8277         0    0.2228    1.3717    1.1377    1.2442    1.9648    0.2228         0    1.4790    1.0581    1.5501    0.5401    1.3717    1.4790         0    2.5092    1.6883    2.9568    1.1377    1.0581    2.5092         0这里需要注意的是,pdist可以使用多种参数,指定不同的距离算法。另外,当数据规模很大时,可以想象pdist产生的Y占用内存将是很吓人的,比如X有10k个数据点,那么X占10k*8*2Bytes=160K,这看起来不算啥,但是pdist后的Y会有10k*10k/2*8Bytes=400M。所以,用MATLAB的层次聚类来处理大规模数据,大概是很不合适的。(2)确定好了对象间的差异度(距离)后,就可以用Z=linkage(Y)来产生层次聚类树了。>>Z=linkage(Y)Z=    3.0000    4.0000    0.2228    2.0000    5.0000    0.5401    1.0000    7.0000    1.0267    6.0000    9.0000    1.0581    8.0000   10.0000    1.3717对于M个元素的X,前面说了Y是1行M*(M-1)/2的行向量,Z则是(M-1)*3的矩阵。Z数组的前两列是索引下标列,最后一列是距离列。在产生聚类树的计算过程中,第3和第4点先聚成一类,他们之间的距离是0.2228,以此类推。为标记每一个节点,给新产生的聚类也安排一个标识,MATLAB中会将新产生的聚类依次用M+1,M+2,....依次来标识。比如第3和第4点聚成的类以后就用7来标识,第2和第5点聚成的类用8来标识,依次类推。通过linkage函数计算之后,实际上二叉树式的聚类已经完成了。Z这个数据数组不太好看,可以用dendrogram(Z)来可视化聚类树。图213 可以看到,产生的聚类树的每一层都是一个倒置的U型(或者说是个型),纵轴高度代表了当前聚类中两个子节点之间的距离。横轴上标记出了各个数据点索引下标。稍微注意以下的是,dendrogram默认最多画30个最底层节点,当然可是设置参数改变这个限制,比如dendrogram(Z,0)就会把所有数据点索引下标都标出来,但对于成千上万的数据集合,这样的结果必然是图形下方非常拥挤。(3)初步的聚类树画完后,还要做很多后期工作的,包括这样的聚类是不是可靠,是不是代表了实际的对象分化模式,对于具体的应用,应该怎样认识这个完全版的聚类树,产生具有较少分叉的可供决策参考的分类结果呢?这都是需要考虑的。MATLAB中提供了cluster,clusterdata,cophenet,inconsistent等相关函数。cluster用于剪裁完全版的聚类树,产生具有一定cutoff的可用于参考的树。clusterdata可以认为是pdist,linkage,cluster的综合,当然更简易一点。cophenet和inconsistent用来计算某些系数,前者用于检验一定算法下产生的二叉聚类树和实际情况的相符程度(就是检测二叉聚类树中各元素间的距离和pdist计算产生的实际的距离之间有多大的相关性),inconsistent则是量化某个层次的聚类上的节点间的差异性(可用于作为cluster的剪裁标准)。后面这些的理解,需要对聚类有一个更深刻更数学的认识,我也不是很清楚,就不多说了。5.2遗传算法在非线性规划中的应用(1)简述非线性规划非线性规划研究一个n元实函数在一组等式或不等式的约束条件下的极值问题,一般非线性规划可描述如下:目标函数maxf不等式约束()0,=等式约束()=0,=,…遗传算法对染色体做遗传操作一般都会产生不可行的后代,所以用遗传学算法解非线性规划的关键是如何满足约束。工程中常通过惩罚不可行解使有约束问题转化为无约束问题。构造带有惩罚项的适值通常有两种。一种是加法形式:val()=()+()对于极大化问题,则13 对于极小化问题,则另一种乘法形式:val=()*()对于极大化问题,则对于极小化问题,则其中,染色体x,目标函数(),惩罚项()。(2)实例分析min()=(-2)+(-1)()=-2+10s.t.()=-0取加法形式的适值函数:Val()=()+()P()=为约束的可变惩罚系数。(3)使用GOAT编程计算1)编制目标函数文件rosenbrockMin.m:Function[sol,eval]=rosenbrockMin(sol,options)x1=sol(1);x2=sol(2);r1=0.1;r2=0.8;g1=x1-2*x2+1;%约束条件g2=x1.^2/4-x2.^2+1;%加惩罚项的适值if(g1>=0)&(g2>=0)13 eval=(x1-2).^2+(x2-1).^2;elseeval=(x1-2).^2+(x2-1).^2+r1*g1+r2*g2;endeval=-eval;2)编程调用主程序ga.m,其程序:Bounds=ones(2,1)*[-1,1];%n=2,设置参数边界[x,endPop,bestSols,trace]=ga(bounds,’rosenbrockMin’);Plat(trace(:,1),-trace(:,3),‘b-’Trace(:,1),-trace(:,2),‘r-’)xlabel(‘Generation’,‘fontsize’,14);ylabel(‘Fittness’,‘fontsize’,14);legend(‘解的变化’,‘种群平均值的变化’);3)结果输出X=[11]Eval(x)=1,g1(x)=0,g2(x)=0.25显然最优解满足约束条件,图1为遗传算法寻优的跟踪图。图1遗传算法寻优性能的跟踪图13 7总结通过领域间互相借鉴,越来越多的数据挖掘算法从原领域内分化出来,并正在形成一学科。数据挖掘虽然包括很多统计学的方法,可它在处理数据集的规模和包容方法的种类方面则远远超过了传统意义上的统计学。加入了人工智能及启发性知识后,数据挖掘可以处理的问题更多更广了。他已经脱离了传统意义上的数学模型概念,成为一个基于工业、金融业等实际背景,用包含数学在内的各种手段和工具直接满足实际的需求的技术领域。参考文献[1]黄子诚,基于决策树的数据挖掘技术[J],电脑知识与技术Vo.l6,No.8,2010(3):P1949-1950[2]袁溪,数据挖掘技术及其应用[J].科技资讯.NO.102010:p22,p24[3]赵芳,马玉磊,浅析数据挖掘技术的发展及应用[J],科技信息:P64[4]王平,王升花,邬连学,基于遗传算法的变压器故障诊断方法的研究[J],技术应用2011(2):P69[5]卢华,刘福胜,王少杰,张鹏,基于遗传算法的平原水库坝高优化[J],人民黄河Vol33,No.1,2011(1):P125-128[6]刘兴波,凝聚型层次聚类算法的研究[J],科技信息NO.11,2008:P202[7]吴燕,科技文档的层次聚类分析[J],商业文化.社会经纬,2008(1):P353-354[8]孟姗姗,全国地区小康和现代化指数的层次聚类分析[J][9]张利华,彭海燕,余淑媛,量子克隆遗传算法的多用户检测技术研究[J],大众科技,No.1,2011:P28-31[10]张德丰,matlab概述[J],Matlab数值分析与应用:P1-9[11]牛晓东,刑棉,孟明,基于基于联合数据挖掘技术的神经网络负荷预测模型研究[J],电工科技学报,Vol.19,No.9,2004(4):P62-6813

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭