您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 数据分析与挖掘实验报告
《数据挖掘》实验报告目录1.关联规则的基本概念和方法...............................11.1数据挖掘..........................................11.1.1数据挖掘的概念................................11.1.2数据挖掘的方法与技术..........................11.2关联规则..........................................21.2.1关联规则的概念................................21.2.2关联规则的实现——Apriori算法................32.用Matlab实现关联规则..................................52.1Matlab概述........................................52.2基于Matlab的Apriori算法..........................63.用java实现关联规则...................................103.1java界面描述......................................103.2java关键代码描述..................................134、实验总结.............................................184.1实验的不足和改进..................................184.2实验心得.........................................1911.关联规则的基本概念和方法1.1数据挖掘1.1.1数据挖掘的概念计算机技术和通信技术的迅猛发展将人类社会带入到了信息时代。在最近十几年里,数据库中存储的数据急剧增大。数据挖掘就是信息技术自然进化的结果。数据挖掘可以从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的,人们事先不知道的但又是潜在有用的信息和知识的过程。许多人将数据挖掘视为另一个流行词汇数据中的知识发现(KDD)的同义词,而另一些人只是把数据挖掘视为知识发现过程的一个基本步骤。知识发现过程如下:·数据清理(消除噪声和删除不一致的数据)·数据集成(多种数据源可以组合在一起)·数据转换(从数据库中提取和分析任务相关的数据)·数据变换(从汇总或聚集操作,把数据变换和统一成适合挖掘的形式)·数据挖掘(基本步骤,使用智能方法提取数据模式)·模式评估(根据某种兴趣度度量,识别代表知识的真正有趣的模式)·知识表示(使用可视化和知识表示技术,向用户提供挖掘的知识)。1.1.2数据挖掘的方法与技术数据挖掘吸纳了诸如数据库和数据仓库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像和信号处理以及空间数据分析技术的集成等许多应用领域的大量技术。数据挖掘主要包括以下方法。神经网络方法:神经网络由于本身良好的鲁棒性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,因此近年来越来越受到人们的关注。典型的神经网络模型主要分3大类:以感知机、bp反向传播模型、函数型网络为代表的,用于分类、预测和模式识别的前馈式神经网络模型;以hopfield的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以art模型、koholon模型为代表的,用于聚类的自组织映射方法。神经网络方法的缺点是黑箱性,人们难以理解网络的学习和决策过程。遗传算法:遗传算法是一种基于生物自然选择与遗传机理的随机搜索算法,是一种仿生全局优化方法。遗传算法具有的隐含并行性、易于和其它模型结合等性质使得它在数据挖掘中被加以应用。sunil已成功地开发了一个基于遗传算法的数据挖掘工具,利用该工具对两个飞机失事的真实数据库进行了数据挖掘实验,结果表明遗传算法是进行数据挖掘的有效方法之一。遗传算法的应用还体现在与神经网络、粗糙集等技术的结合上。如利用遗传算法优化神经网络结构,在不增加错误率的前提下,删除多余的连接和隐层单元;用遗传算法和bp算法结合训练神经网络,然后从网络提取规则等。但遗传算法的算法较复杂,收敛于局部极小的较早收敛问题尚未解决。决策树方法:决策树是一种常用于预测模型的算法,它通过将大量数据有目的分类,从2中找到一些有价值的,潜在的信息。它的主要优点是描述简单,分类速度快,特别适合大规模的数据处理。粗糙集方法:粗糙集理论是一种研究不精确、不确定知识的数学工具。粗糙集方法有几个优点:不需要给出额外信息;简化输入信息的表达空间;算法简单,易于操作。粗糙集处理的对象是类似二维关系表的信息表。目前成熟的关系数据库管理系统和新发展起来的数据仓库管理系统,为粗糙集的数据挖掘奠定了坚实的基础。但粗糙集的数学基础是集合论,难以直接处理连续的属性。而现实信息表中连续属性是普遍存在的。因此连续属性的离散化是制约粗糙集理论实用化的难点。覆盖正例排斥反例方法:它是利用覆盖所有正例、排斥所有反例的思想来寻找规则。首先在正例集合中任选一个种子,到反例集合中逐个比较。与字段取值构成的选择子相容则舍去,相反则保留。按此思想循环所有正例种子,将得到正例的规则(选择子的合取式)。比较典型的算法有michalski的aq11方法、洪家荣改进的aq15方法以及他的ae5方法。统计分析方法:在数据库字段项之间存在两种关系:函数关系(能用函数公式表示的确定性关系)和相关关系(不能用函数公式表示,但仍是相关确定性关系),对它们的分析可采用统计学方法,即利用统计学原理对数据库中的信息进行分析。可进行常用统计(求大量数据中的最大值、最小值、总和、平均值等)、回归分析(用回归方程来表示变量间的数量关系)、相关分析(用相关系数来度量变量间的相关程度)、差异分析(从样本统计量的值得出差异来确定总体参数之间是否存在差异)等。模糊集方法:即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。系统的复杂性越高,模糊性越强,一般模糊集合理论是用隶属度来刻画模糊事物的亦此亦彼性的。李德毅等人在传统模糊理论和概率统计的基础上,提出了定性定量不确定性转换模型--云模型,并形成了云理论。还有接下来重点介绍的关联规则方法。1.2关联规则1.2.1关联规则的概念关联规则的一个典型例子是购物篮分析。它是由著名的全国五百强沃尔玛发现的,沃尔玛有着世界最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据。在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。一个意外的发现是:跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,揭示了一个隐藏在尿布与啤酒背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。关联规则由此进入人们的视野。关联规则挖掘被定义为假设I是项的集合。给定一个交易数据库D,其中每个事务(Transaction)t是I的非空子集,即每一个交易都与一个唯一的标识符TID(TransactionID)对应。关联规则在D中的支持度(support)是D中事务同时包含X、Y的百分比,即概率;置信度(confidence)是包含X的事务中同时又包含Y的百分比,即条件概率。下面举个例子来更好地说明关联规则。3给定AllElectronics关系数据库,一个数据挖掘系统可能发现如下形式的关联规则Age(X,“20….29”)^income(X,“20,000….29,000”)?=buys(X,“CD-Player”)[Support=20%,Confident=60%]其中X是变量,代表顾客,该关联规则表示所研究的AllElectronics数据库中,顾客有20%在20-29岁,年收入在20,000-29,000之间,并且购买CD机;这个年龄和收入组的顾客购买CD机的可能性有60%。1.2.2关联规则的实现——Apriori算法1.2.2.1算法描述Apriori算法在发现关联规则领域具有很大影响力。算法命名源于算法使用了频繁项集性质的先验(prior)知识。在具体实验时,Apriori算法将发现关联规则的过程分为两个步骤:第一步通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集;第二步利用频繁项集构造出满足用户最小信任度的规则。其中,挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。Apriori算法使用一种称作逐层搜索的迭代方法,K项集用于搜索(K+1)项集。首先,通过扫描数据库,累积每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记作L1。然后,L1用于寻找频繁2项集的集合L2,L2用于寻找L3,如此下去,直到不能再找到频繁K项集。为提高频繁项集逐层产生的效率,一种称作Apriori的重要性质用于压缩搜索空间。Apriori性质:频繁项集的所有非空子集也必须是频繁的。如何在算法中使用Apriori性质?主要有两步过程组成:连接步和剪枝步。(1)连接步:为找LK,通过将L(k-1)与自身连接产生候选K项集的集合。该候选项集合记作CK。设l1和l2是Lk-1中的项集。记号li[j]表示li中的第j项。执行L(k-1)连接L(k-1),如果它们的前(K-2)项相同的话,其中L(k-1)的元素是可连接的。(2)剪枝步:为压缩CK,可以用Apriori的性质:任何非频繁的(K-1)项集都不是频繁K项集的子集。因此,如果候选K项集的(K-1)项子集不在L(k-1)中,则该候选也不可能是频繁的,从而可以从CK中删除。1.2.2.1算法举例Apriori算法的伪代码Input:DB,min_supOutput:result=所有频繁项集的他们的支持度方法:Result:={};K:=1;C1:=所有的1-项集While(Ck)dobegin为每一个Ck中的项集生成一个计数器;For(i=1;i[DB];i++)4begin对第i个记录T支持的每一个Ck中的项集,其计数器加1;endLk:=Ck中满足大于min_sup的全体项集;Lk支持度保留;Result:=ResultÛLKCk+1:=所有的(k+1)-项集中满足其k-子集都在Lk里的全体;k=k+1;enddo下面举个例子来说明Apriori算法。设某个数据库中有9个事务。即|D|=9。使用图1.2解释Apriori算法发现D中的频繁项集。表1.1某超市的销售项目的事务记录(1)在算法的第一次迭代时,每个项都是候选1项集的集合C1的成员。算法简单地扫描所有的事务,对每个项的出现次数计数。(2)假设最小支持度计数为2,即,min_sup=2。可以肯定频繁1项集的集合L1。(3)为了发现频繁2项集的集合L2,算法使用L1和L1的连接C2。注意,在剪枝步中,没有候选从C2中删除,因为这些候选的每个子集也是频繁的。(4)扫描数据库D中的事务,累计C2中每个候选相集的支持计数,如图1.2的第二行中间的表所示。(5)然后确定频繁2项集的集合L2,它由C2中满足最小支持度的候选2项集组成。(6)候选3项集的集合C3的产生要用到Apriori的逐层搜索技术,频繁项集的所有子集都必须是频繁的,给定一个候选k项集,只需要检查它们的(k-1)项集是否频繁。如图1.2中的第三行的第一个表所示。(7)扫描D中事务以确定L3,它由C3中满足最小支持的的候选3项集组成,如图1.2中的第三行的
本文标题:数据分析与挖掘实验报告
链接地址:https://www.777doc.com/doc-2332192 .html