数据挖掘WEKA试验报告_第1页
数据挖掘WEKA试验报告_第2页
数据挖掘WEKA试验报告_第3页
数据挖掘WEKA试验报告_第4页
数据挖掘WEKA试验报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据挖掘-WAKA实验报告 1 数据挖掘-WAKA 实验报告 一、WEKA软件简介 在我所从事的证券行业中,存在着海量的信息和数据,但是这些数据 日常知识发挥了一小部分的作用,其包含了大量的隐性的信息并不为所用, 但是却可以为一些公司的决策和对客户的服务提供不小的价值。因此 ,我们 可以通过一些数据采集、数据挖掘来获得潜在的有价值的信息。 数据挖掘就是通过分析存在丁数据库里的数据来解决问题。 在数据挖掘中计 算机以电子化的形式存储数据,并且能自动的查询数据,通过关联规则、分类丁 回归、聚类分析等算法对数据进行一系列的处理,寻找和描述数据里的结构模式, 进而挖掘出潜在的有用的信息。数据挖掘就是通

2、过分析存在丁数据库里的数据来 解决问题。WEKA出现让我们把数据挖掘无需编程即可轻松搞定。 WEKA是由新西兰怀卡托大学开发的开源项目,全名是怀卡托智能分析 环境(Waikato Environment for Knowledge Analysis )。WEK由 JAVA 编写的,它的源代码可通过 http:/www.cs.waikato.ac.nz/ml/WEKA 得到, 并且限制在 GBU通用公众证书的条件下发布,可以运行在所有的操作系统 中。是一款免费的,非商业化的机器学习以及数据挖掘软件 WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘 任务的机器学习算法,包括对数据进

3、行预处理,分类,回归、聚类、关联 规则以及在新的交互式界数据挖掘-WAKA实验报告 2 面上的可视化。如果想自己实现数据挖掘算法的 话,可以看一看 WEKA勺接口文档。在 WEK冲集成自己的算法甚至借鉴它 的方法自己实现可视化工具并不是件很困难的事情。 安装WEK也十分简单,首相要下载安装 JDK环境,JDK在这个页面可以 找到它的下载 http:/ JDK 6之后的Download 按钮,转到下载页面。选择 Accepct ,过一会儿页面 会刷新。我们需要的是这个 Windows Offline Installation, Multi-language jdk-6-windows-i586.

4、exe 53.16 MB ,点击它下载。也可以右键点击它上面 的链接,在Flashget等工具中下载。安装它和一般软件没什么区别。不过中间 会中断一下提示你安装JRE, 一并装上即可。之后就是安装 WEKA软件,这个 在网上很多地方都有。同样简单地按默认方法安装后即可使用。 点击启动运行 WEKA软件后,我门发现 WEKA存储数据的格式是 ARFF数据挖掘-WAKA实验报告 3 (Attribute-Relation File Format )文件,这是一种 ASCII 文本文件。 我们如图1通过软件的 Tools菜单进入 ArffViewer 可以在安装目录下查看 软件自带的几个 ARFF文

5、件。 图1 魔魔 如图2,打开文件后选择data自目录下的任意一张表,我们都可以看到如图 3 所示的二维表格存储在如下的 ARFF文件中。这也就是 WEKA自带的 “ contact-lenses.arff ”文件。这里我们要介绍一下 WEKA中的术语。表格 里的一个横行称作一个实例(Instance ),相当丁统计学中的一个样本,或者数 据库中的一条记录。竖行称作一个届性(Attrbute ),相当丁统计学中的一个变 量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来, 呈现了届性之间的一种关系数据挖掘-WAKA实验报告 4 (Relation)。图1中一共有22个实例,

6、5个届性, 关系名称为 “ contact-lenses ”。 除了 ARFF格式,WEKA还支持另外一种常见格式,CSV格式。CSV同样是 一种二进制保存的文本格式,我们可以在 WEKA中直接打开CSV格式的文件, 并保存为ARFF格式。这样就给我提供了把常见的数据格式转换为 ARFF格式的 方法,如对丁 Excel文件,我们可以通过把每张表保存为 CSV格式,进而保存为 ARFF格式,与此同时,我们可以利用filter对数据进行相应的预处理。而对丁 Matlab格式的数据,我们可以通过命令csvwrite把数据转化成CSV格式的文件, 进而转化为ARFF格式文件。对丁海量数据,一般保存在数

7、据库中, WEKA同时 支持JDBC访问数据库。 ARFF-Viewer - D:k-a 3 7-.d3icontart-1 er=;.arff file Edit View ;cantfiict-lensss. Kalat ion: ccmtac Ho sp i p Kni 口 1 astigmatism t ear-pre dr rate 1 yauTfcg 琳琳 r*du *i TiOtL# i. 2 vGung sa t 区 ycmikg gw g reiueil fZTL 巨 I 4 younfi y&p y .arff 将CSV转换为ARFF最迅捷的办法是使用 WEK新带的

8、命令行工具。 运行 WEKA勺主程序,出现 GUI后可以点击下方按钮进入相应的模块。 我们点击进入“ Simple CLI ”模块提供的命令行功能。由丁 weka暂不支持 中文输入,所以挑选了在 D盘下进行转换,在新窗口的最下方(上方是不 能写字的)输入框写上数据挖掘-WAKA实验报告 9 javaweka.core.converters.CSVLoader D:/Fund-data.csv.arff 即可完成转换,生成文件“ D:/Fund-data.csv.arff ”。见下图5: * SimpleCU java welra-cor-e. C2nverters .CSVLc Tiava w

9、e k a - core. conve r t e r s . ZSVLc ade r D:/Fund-data,csv D:/Fund-data.csv,arff ader 0:/ Fund-iata-csv D:/ Fund-data,cav+ arff java, la . FLlelaputStrEaiL. cpen(Nati.ve Method) java, io. File Input 3 tieaiL.(Uulm own Source I veJra core , conv it e r 3 + At a tx ac t Fi leLc ade r se tS our: c e

10、(Unknown Source) we Ira - care. conver tera, , aeuSource (UnJmown Source) welra.ea*.tonv-e?te:ts.Abatia=tFll&Lcsdsr.(Qnknowi Scat心 weira. COZE . ccnv-extsrs. AbstiactFileLcader. runFleLoader (Unitnown ScUECE : *reIra,core,converters + 75VLoader+main(Unknown Sourcei gun.reflect.Nativ&MethodAe

11、eesinvsJreO Native aUTL.reflect.NaEivsMeTlicdAceesaDrlJfflpl,involre(Unknown Source) sun.reflect.Ce1egatingEethDdJLsee3sorImp1.invoke(Unknown Scarce 3&va. lang, refl-ect. Hethcxi-invcke (Unknown Source) vreira,gui 5iirpl-eCLIPaneRunneE, run (Unloiovrn Source) at java.io_Fil-eInputSreair.openMeth

12、od) at java . iD_Fil-ElnputSt:reair. (Unknonn Source) at WE 1c 3 . core - converter 3. At act File Loader. setSaurce (U JmcHTi Source) at wekaPcoreconverters,CSrLcader.setSource(Unknown Source 此 .core.converera.AfcffxrflcFileLDader.etFile(Unlcnawn Source) at weka.core.CDnv&rters.AfcsrracFileLoad

13、er.runFileLeaderlUnkncwn Source) nt -psfcs.CQrSdcoaveca-CSVlcfldcr.jLain(Un)ma7i 拿mur匚 u) at aun- reflect KauiveMezhodAccessorlxpl-invoked(Hacive Hethcdl at aim. ref lecE -HatIveMethodAcctssorlxpl. invoke (UQkriawn Source J at sun. reflect .DelEgatlngMethadAGGesaaLliiipl. iliVn Unknown Saurce) at ja

14、va . lang, rtf lect Method, invite (Unkna vn Source J at we lea gu 1. eGLI Panel f Cl a saRunne r + run J n known Sour ce) red!reeling output ta D:/Eund-data.csv.arff1. 进入“ Exploer ”模块,从上方的按钮中打开 CSV文件然后另存为 ARFF 文件亦可。我们应该注意到,“ Exploer ”还提供了很多功能,实际上可以 说这是 WEKA使用最多的模块。现在我们先来熟悉它的界面,然后利用它对 数据进行预处理。界面展现见下

15、图 6: 图中显示的是使用“ Exploer ”打开“ Fund-data.csv.csv ”的情况。D:/Fund-data.csv Fliilsliedi 数据挖掘-WAKA实验报告 10 图6 2、预处理 通常对丁 WEKM说并不支持中文,所以我们将一些涉及中文的字段删 除。勾选届性 “fund_name”、“company”、“business_name ”、“remark ” , 并点击“ Remov4。将新的数据集保存一次。其中“ fares_type ”只有2 个取值:全额结算和净额结算。这时我们在 UltraEdit 中直接修改ARFF文 件,把 attribute fares

16、_type 全额结算,净额结算 改为 attribute fares_type Full , Net attributedate numeric 改为 attribut date 2009/8/24,2009/8/25,2009/8/26,2009/8/27,2009/8/28 数据挖掘-WAKA实验报告 11 就可以了。 在 “Explorer ” 中重新打开 “fund-data.arff ”,选中“ date ” 和 “fund_type ”,看到届性已经变成“ Nominal” 了。 WEKA支 持 的有 四 种 , 分 别 是 :numeric-数 值 型 , - 分类(nomina

17、l ) 型,string- 字符申型, date - 日期和时间型 而本表只有nemeric和nominal两种类型,数值届性(nemeric)数值型届 性可以是整数或者实数,但 WEK把它们都当作实数看待。分类届性(nominal ) 分类届性由 歹U出一系歹U可能的类别名称并放在花括号 中:, , . 。数据集中该届性的值只能 是其中一种类别。如果类别名称带有空格,仍需要将之放入引号中。 “shares”,“banlance”,“fares”,“internet_shares” 和 “internet_banlance” 的离散化我们需要借助 WEKA中名为“Discretize”的Fil

18、ter来完成。在区域2中 点 “ Choose ”, 出现一棵 “ Filter 树”,逐级找到 “weka.filters.unsupervised.attribute.Discretize”,点击。若无法关闭这个树,在树 之外的地方点击“ Explorer”面板即可。 现在 “ChooseT 旁边的文本框应该显示 “ Discretize -B 10 -M -0.1-R first-last。点 击这个文本框会弹出新窗口以修改离散化的参数。 我们不打算对所有的届性离散化,只是针对对第 4 , 5, 6, 8, 9个,故把 attributeIndices右边改成“4, 5, 6, 8, 9

19、”。我们把这两个届性都分成10段, 丁是把“bins”改 成“10”。 其 它 不 变 。 点“OK回 到“Explorer” ,可 以 看 到“shares”, “banlance”,“fares”,“internet_shares” 和 “ internet_banlance” 已经被离散化 成分类型的届性。同时我们可以用 UltraEdit打开保存后的ARF成件,把所有的 类似(-inf-1464805.884” ”替换成“ 0_1464805.884”。其它标识做类似地手动 替换。 经删减后,保留 date、shares、balance、fares、fares_type、interne

20、t_shares、 internet_balance7 个届性,如图 7数据挖掘-WAKA实验报告 12 图7 在进行数据搜集和整理的过程中,我们发现如果届性的类型为数值型的话, 在做关联分析时将不能得到结果,因为关联分析无法处理数值型数据。 因此,我 们进行了数据离散处理后使得需要分析的数据变为分类型,这样就可以关联分析 得以顺利进行。因此通过预处理数据可以提高原数据的质量,活除数据噪声和与 挖掘目标无关的数据,为进一步的挖掘工作奠定可靠的基础。 3、分类与回归 WEKA中的“Classify ”选项卡中包含了分类 (Classification) 和回归 (Regression),在这两个

21、任务中,都有一个共同的目标届性(输出变量)。 可以根据一个样本(WEKA中称作实例)的一组特征(输入变量),对目标进 行预测。为了实现这一目的,我们需要有一个训练数据集,这个数据集中 每个实例的输入和输出都是已知的。观察训练集中的实例,可以建立起预 测的模型。有了这个模型,我们就可以新的输出未知的实例进行预测了。 衡量模型的好坏就在丁预测的准确程度。 在WEK中,待预测的目标(输出) 被称作Class届性,这应该是来自分类任务的“类”。一般的,若 Class数据挖掘-WAKA实验报告 图8 13 届性是分类型时我们的任务才叫分类, Class届性是数值型时我们的任务叫 回归。而我们使用决策树算

22、法 C4.5对Fund-data-normal 建立起分类模型。 因此我们制作分类不做回归。 我们用 “ Explorer ”打开训练集 “ Fund-data-normal.arff ”,。切换 到“Classify ”选项卡,点击“ Choose”按钮后可以看到很多分类或者回 归的算法分门别类的列在一个树型框里。树型框下方有一个“ Filter. 按钮,点击后勾选 “Binary attributes ” “Numeric attributes ” 和 “Binary class ”。点“ OK后回到树形图,可以发现一些算法名称变灰了,说明它 们不能用。选择“ trees ”下的“ J48

23、”,这就是我们需要的 C4.5算法。 点击“ Choose”右边的文本框,弹出新窗口为该算法设置各种参数。 我们把参数保持默认。 选上 “ Cross-validation ”并在 “ Folds ”框填上 “ 10”。点 “ Start ” 按钮开始让算法生成决策树模型。很快,用文本表示的一棵决策树以及对 这个决策树的误差分析结果出现在右边 “Classifier output ”中。见图8。 二岫匕pig 工., 昏呼三塑 Cliwsify ILgcj Sitltct tUnkuUfi iVasuoljLzt chc.aE.fr JTM -C 0 ES -H E 数据挖掘-WAKA实验报告

24、 图9 14 u w U !J = . Q g D ? n d C 0 0 7 D 0 fl 0 0? L 0 c Q 0 0J D ( c o Q a.c 融心忱机1 D .MS L GW 0.9W J Hat工c A q c e I 5 h 1 J -1 fled as 730 0 0 D 0 - a 0 0 1 a - 1 (C_143OO73.0E3 J, 0 0 n n 0 0 3 1 b - 1 jl43L07e.8-!3-2 o01S7/ J. a - j z 0 0 J 1 C = 1 (3M01&?. 7(6-1290236.1 0 6 D 0 D 西 d 0 0 3

25、 1 日二 1 (4M023 .&l3ia31S J c 0 fl 0 0 0 0 0 0 1 1 t -任TH北5点3将039虹 - ! 0 0 Q 0 D JA u a 0 3 1 t - 0 0 0 0 0 a 朋 0 3 1 g w (”,匚0.旦*心心” 0 G 0 CH 0 Q 0 0 3 1 h - 1 (10010 5S311 61 -11 1 0 0 : : Q 0 0 3 1 i - 1 rnUO 31fi4-120-O7C; 1 q 0 0 a Q 0 J 1 1 - 1(12S707Q3-s4-laIi - J 1 1 r * L Et HLtUJE OX 数据

26、挖掘-WAKA实验报告 图9 15 4 4、聚类分析 聚类的任务是把所有的实例分配到若干的簇,使得同一个簇的实例聚 集在一个簇中心的周围,它们之间距离的比较近;而不同簇实例之间的距 离比较远。现在我们对前面的“ Fund-data-normal ”作聚类分析,使用最 常见的K均值(K-means)算法。 用 “Explorer ”打开刚才得到的 “ Fund-data-normal.arff ”,并切换 到 “ Cluster ”。点 “ Choose” 按钮选择 “ SimpleKMeans ”,这是 WEKA中 实现K均值的算法。点击旁边的文本框,修改“ numClusters ”为6,说

27、明 我们希望把这734条实例聚成6类,即K=5。下面的“seed”参数是要设置 一个随机种子,依此产生一个随机数,用来得到 K均值算法中第一次给出 的K个簇中心的位置。我们不妨暂时让它就为 10。 选中 “ Cluster Mode ”的 “ Use training set ”,点击“ Start ”按钮,观 察右边“ Clusterer output ”给出的聚类结果。见下图 9: 数据挖掘-WAKA实验报告 16 5、关联规则 我们打算对前面的“ Fund-data-normal ”数据作关联规则的分析。用 “Explorer ”打开 “ Fund-data-normal.arff ”后

28、,切换至U “ Associate ” 选项卡。默认关联规则分析是用 Apriori 算法,我们就用这个算法,但是 点“ Choose”右边的文本框修改默认的参数。 从网上获得的 Apriori有关知识:对丁一条关联规则 L-R ,我们常用 支持度(Support )和置信度(Confidence )来衡量它的重要性。规则的支 持度是用来估计在一个购物篮中同时观察到 L和R的概率P(L,R),而规则 的置信度是估计购物栏中出现了 L时也出会现 R的条件概率P(R|L)。关联 规则的目标一般是产生支持度和置信度都较高的规则。 有几个类似的度量代替置信度来衡量规则的关联程度,它们分别是 Lift

29、(提升度? ) : P(L,R)/(P(L)P(R) Lift=1 时表小L和R独立。这个数越大,越表明 L和R存在在一个购 物篮中不是偶然现象。 Leverage (不知道怎么翻译): P(L,R)-P(L)P(R) 它和Lift 的含义差不多。Leverage=0时L和R独立,Leverage越大L 和R的关系越密切。 Conviction (更不知道译了): P(L)P(!R)/P(L,!R) (!R 表示 R没有 发生) Conviction 也是用来衡量 L和R的独立性。从它和lift 的关系(对 R 取反,代入Lift公式后求倒数)可以看出,我们也希望这个值越大越好。 值得注意的是

30、,用 Lift 和Leverage作标准时,L和R是对称的, Confidence 和 Conviction 则不然。 现在我们计划挖掘出支持度在 10%J 100%之间,并且lift 值超过1.5 且lift 值排在前100位的那些关联规则。我们把TowerBoundMinSupport ” 和 “ upperBoundMinSupport ”分别设为 0.1 和 1, “metricType ”设为 lift , “minMetric ”设为1.5, “numRules”设为10,其他参数不变。点击“start ” 见图10数据挖掘-WAKA实验报告 17 图10 我们也可以利用命令行来完

31、成挖掘任务,在“ Simlpe CLI模块中输入如下格式 的命令:java weka.associations.Apriori -N 100 -T 1 -C 1.5 -D 0.05 -U 1.0 -M 0.1 -S -1.0 -I -t d: fund-data-normal.arff 即可得到如图 11 的结果。* /JeMLa 数据挖掘-WAKA实验报告 18 java we kra. a SB ocia 11 ons - Apr io r i -N ICO -T 1 -C 1. S -D 0. OS -U 1. fl -M 0.1 -S -1.0 -I 匕 d;Afun.d-data-n

32、oal + arff Aprioci Minimam auppori;: 01 (73 instancca) Mitiiinus seme 1-S Nuzrter of cycles psTfcrrsd: IB Senerated sets cf large itezsets: S12e of set o large itemsets L1): 11 Large Itexet3 L(1|; date-20a9/B/24 159 dare=Z009/ /2S 17 dae=2009/S/2-6 111 date=2009/E/27 122 dai;e-2009/B/2e 164 ahareff-

33、F (0_14-64e05,8E4J 724 baUnce- (014551 733 * 730 fare3=,(0_9403,21 731 fare_type=Full 726 iHEFTHF忆忆 wh占占r,in 1 4HS1 341 T3fl 图11 6 6、届性分析 用 “Explorer ”打开刚才得到的 “ Fund-data-normal.arff ”,并切换 到 “Selectattributes ”。点 “ Attribute Evaluator ”中的 “ Choose” 按 钮选择 “ ClassifierSubsetEval ”,点 “ Search Method ”中

34、的 “ Choose” 按钮选择 “ RaceSearch ”。在 “ Attribute Selection ” 中选中 Cross-validation ”项,参数默认 Folds=10 和 Seed=1。点击 “ start ” 见图12 见图 数据挖掘-WAKA实验报告 19 图12 7 7、可视化分析 用 “ Explorer ”打开刚才得到的 “ Fund-data-normal.arff “Visualize ”。见图 13数据挖掘-WAKA实验报告 20 四、分析结果 1、分类与回归 我们看到“ J48”算法交义验证的结果之一为 Correctly Classified Ins

35、Correctly Classified Instances 730tances 730 Incorrectly Classified Instances 4 =Confusion Matrix =Incorrectly Classified Instances 4 =Confusion Matrix = a b c d e f ga b c d e f g h h i ji j - classified asclassified as 730730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |0 | a =a = :(0_1430078.883:(0_1430078

36、.883 1010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |0 | b b (1430078.883(1430078.883- -2860157.7662860157.766 1010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |0 | c c 图13 99.455 %99.455 % 0.545 %0.545 % 数据挖掘-WAKA实验报告 21 (2860157.766(2860157.766- -4290234290236.6496.649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |0 | d d 数据挖掘-WA

37、KA实验报告 22 (4290236.649(4290236.649- -5720315.5325720315.532 0 0 0 0 0 0 0 0 0 0 0 0 (5720315.532(5720315.532- -7150394.4157150394.415 0 0 0 0 0 0 0 0 0 0 0 0 (7150394.415(7150394.415- -8580473.2988580473.298 0 0 0 0 0 0 0 0 0 0 0 0 (8580473.298(8580473.298- -10010552181 0 0 0 0 0 0 0 0 0 0 0 0 (10010552.181(10010552.181- -11440631.06411440631.064 1 1 0 0 0 0 0 0 0 0 0 0 (11440631.064(11440631.064- -12870709.94712870709.947 通过矩阵分析,看到正确的分类实例达到了 99.445% 2 2、聚类分析 在“Cluster centroids: ”之后歹0出了各个簇中心的位置。 而Clustered Instances ”是各个簇中实例的数目及白分比。 为了观察可视化的聚类结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论