1、(完整word版)数据挖掘期末实验报告数据挖掘技术期末报告理学院姓名:学号:联系电话:专业班级:评分:优|良|中|及格|不及格 一、实验目的 基于从UCI公开数据库中下载的数据,使用数据挖掘中的分类算法,用Weka平台的基本功能对数据集进行分类,对算法结果进行性能比较,画出性能比较图,另外针对不同数量的训练集进行对比实验,并画出性能比较图训练并测试。 二、实验环境实验采用Weka平台,数据使用来自从UCI公开数据库中下载,主要使用其中的Breast Cancer Wisc-onsin (Original) Data Set数据。Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。
2、Weka使用Java写成的,并且限制在GNU通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。三、实验步骤3.1数据预处理本实验是针对威斯康辛州(原始)的乳腺癌数据集进行分类,该表含有Sample code number(样本代码),Clump Thickness(丛厚度),Uniformity of Cell Size(均匀的细胞大小), Uniformity of Cell Shape (均匀的细胞形
3、状),Marginal Adhesion(边际粘连),Single Epithelial Cell Size(单一的上皮细胞大小),Bare Nuclei(裸核),Bland Chromatin(平淡的染色质),Normal Nucleoli(正常的核仁), Mitoses(有丝分裂),Class(分类),其中第二项到第十项取值均为1-10,分类中2代表良性,4代表恶性。 通过实验,希望能找出患乳腺癌客户各指标的分布情况。该数据的数据属性如下:1. Sample code number(numeric),样本代码; 2. Clump Thickness(numeric),丛厚度;3.Unifo
4、rmity of Cell Size(numeric)均匀的细胞大小;4. Uniformity of Cell Shape(numeric),均匀的细胞形状;5.Marginal Adhesion(numeric),边际粘连;6.Single Epithelial Cell Size(numeric),单一的上皮细胞大小;7.Bare Nuclei(numeric),裸核;8.Bland Chromatin(numeric),平淡的染色质;9. Normal Nucleoli(numeric),正常的核仁;10.Mitoses(numeric),有丝分裂;11.Class(enum),分类。
5、3.2数据分析由UCI公开数据库得到一组由逗号隔开的数据,复制粘贴至excel表中,选择数据分列下一步逗号完成,该数据是有关乳腺癌数据集,有11个属性,分别为Sample code number(样本代码),Clump Thickness(丛厚度),Uniformity of Cell Size(均匀的细胞大小),Uniformity of Cell Shape (均匀的细胞形状),Marginal Adhesion(边际粘连),Single Epithelial Cell Size(单一的上皮细胞大小),Bare Nuclei(裸核),Bland Chromatin(平淡的染色质),Norm
6、al Nucleoli(正常的核仁), Mitoses(有丝分裂),Class(分类),因为复制粘贴过来的数据没有属性,所以手工添加一行属性名。Weka分类数据需把excel保存为一个csv文件。图1中显示的是使用“Exploer”打开“乳腺癌数据集.csv.arff”的情况.如图1所示:(图1)3.2.1 数据预处理很明显发现,所用的数据都是(numeric)数值型的,需要将数值型离散化,将“Clump Thickness ”,“Uniformity of Cell Size ”,“Uniformity of Cell Shape”,“ Marginal Adhesion ”,“ Margi
7、nal Adhesion ”,“ Bare Nuclei ”,“ Bland Chromatin ”,“Normal Nucleoli ”,“Mitoses”,“Class” 离散化。我们需要借助Weka中名为“Discretize”的Filter来完成。在区域2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”点击,即可。现在“Choose”旁边的文本框应该显示“Discretize -B 10 -M -0.1 -R first-last”。 如图箭头所示,点击这个文本框会弹出新窗口以修改
8、离散化的参数。我们需将第1,2,3,4,5,6,7,8,9,10项离散化,其中第一项为id,可移除。把attributeIndices右边改成“1,2,3,4,5,6,7,8,9,10”。我们把这两个属性都分成10段,于是把“bins”改成“10”。其它不变。点“OK”回到“Explorer”,可以看到“Clump Thickness ”,“Uniformity of Cell Size ”,“Uniformity of Cell Shape”,“ Marginal Adhesion ”,“ Marginal Adhesion ”,“ Bare Nuclei ”,“ Bland Chromat
9、in ”,“Normal Nucleoli ”,“Mitoses”, 已经被离散化成分类型的属性。经移除后剩10项属性,其中一项如图2所示,10项属性可视化如图3所示:(图2)(图3)3.3.1决策树分类用“Explorer”打开刚才得到的“乳腺癌数据集.csv.arff”,并切换到“Class”。点“Choose”按钮选择“tree(weka.classifiers.trees.j48)”,这是Weka中实现的决策树算法。得到结果如图4和图5所示:(图4)(图5)这个是针对第一项Clump Thickness丛厚度和第九项Mitoses有丝分裂项运用C4.5决策算法得到误差分析的结果,分析可
10、知总共有699个数据进行分类,Clump Thickness(丛厚度)其中102个为正确分类,正确分类率为26.03726%,517个为错误分类,错误分类为73.9268%。而第九项Mitoses有丝分裂项也是分析699个数据,其中正确分类有579个数据,正确率为82.8326%,错误分类的有120个,错误分类的有17.1674%。根据混淆矩阵,被错误分类实例很多如图(图6)3.3.2贝叶斯分类为了与上面决策树作比较,贝叶斯也选择第一项第一项Clump Thickness丛厚度和第九项Mitoses有丝分裂项,得到结果如下图7,8所示:(图7)(图8)这个是针对第一项Clump Thickne
11、ss丛厚度和第九项Mitoses有丝分裂项运用贝叶斯算法得到误差分析的结果,分析可知总共有699个数据进行分类,Clump Thickness(丛厚度)其中198个为正确分类,正确分类率为28.3262%,501个为错误分类,错误分类为71.6738%。而第九项Mitoses有丝分裂项其中正确分类有467个数据,正确率为66.8097%,错误分类的有232个,错误分类的有33.1903%。根据混淆矩阵,被错误分类实例很多,相对来说,Clump Thickness丛厚度用两种方法混淆程度差不多,错综复杂,而Mitoses有丝分裂项用贝叶斯分类明显混淆矩阵要比用决策树方法混淆率要低,中间第六项到就
12、第九项明显混响不是很多,如图9所示。基于以上两种分析,建议用贝叶斯分类方法分类,降低混淆率,提高正确率。(图9)3.3.3K最近邻算法分类在刚才进行决策树分类和贝叶斯分类的的的那个页面,点“Choose”按钮选择“laze-ibk”,选择Cross-Validatioinfolds=10,然后点击“start”按钮:同样选择图中箭头指向选择属性,然后点击“start”按钮:为了与上面决策树和贝叶斯作比较,K最近邻算法分类也选择第一项Clump Thickness丛厚度和第九项Mitoses有丝分裂项,得到结果如下图10,11所示:(图10)(图11)这个是针对第一项Clump Thicknes
13、s丛厚度和第九项Mitoses有丝分裂项运用K最近邻算法得到误差分析的结果,分析可知总共有699个数据进行分类,Clump Thickness(丛厚度)其中191个为正确分类,正确分类率为27.3247%,508个为错误分类,错误分类为72.6753%。而第九项Mitoses有丝分裂项其中正确分类有546个数据,正确率为78.1116%,错误分类的有153个,错误分类的有21.8884%。根据混淆矩阵,被错误分类实例很多,相对来说,Clump Thickness丛厚度与前两个算法混淆程度差不多,错综复杂,甚至比前两个更要复杂,而Mitoses有丝分裂项用K最近邻算法明显混淆矩阵要比用决策树方法
14、和贝叶斯方法混淆率要低,中间第四项到就最后明显混响不是很多,如图12所示:(图12)3.4三种分类方法结果比较如表所示:决策树贝叶斯 K最近邻算法Clump Thickness正确率26.03726%28.3262%27.3247%,Clump Thickness标准误差0.31090.31190.3227Mitoses正确率82.8326%66.8097%78.1116%Mitoses标准误差0.17550.21040.1989四、三种算法在进行测试的性能比较要进行性能比较,则需比较这10项属性的预测,同上文一样,这里只比较第一项Clump Thickness丛厚度和第九项Mitoses有丝
15、分裂项,点“more options.”按钮,选勾选“out prediction”,其他不勾选,然后点击“OK”按钮如图13所示:(图13)得到性能测试结果如下,图14分别为第一项Clump Thickness丛厚度用决策树方法、贝叶斯、K最近邻算法预测的结果,图15分别为第九项Mitoses有丝分裂项用决策树方法、贝叶斯、K最近邻算法预测的结果。结果如下:(图14)分析第一项Clump Thickness丛厚度。性能分析应该包括两个部分,一个部分是测试速度,另一个部分是测试的质量。由于本次使用所使用的数据量一般,不是很多,在测试速度的对比上相差太少,无法进行准确的分析。而在测试质量上,可以
16、从上述数据中很明显得到,在“error”(错误项),决策树和K最近邻算法很多加号,这说明错误率很大,从而导致分类质量的降低;而对于“probability distribution”(概率分布项),决策树和K最近邻算法分布很混乱,前六项属性的概率分布波动较大,而贝叶斯与其相比,“error”(错误项)几乎无“+”,说明其错误率相对其他两种方法,贝叶斯的错误率降低很多,而且在“probability distribution”(概率分布项),上,分布很整齐,所以从性能角度上讲,贝叶斯算法好一点。(图15)观察图15,分析第九项Mitoses有丝分裂项,同分析第一项Clump Thickness丛
17、厚度一样。在测试速度的对比上相差太少,无法进行准确的分析。而在测试质量上,可以从上述数据中很明显得到,在“error”(错误项),决策树与贝叶斯相比,明显决策树加号要多,这说明决策树算法错误率很大,从而导致分类质量的降低,而比较贝叶斯和K最近邻算法,“error”(错误项)贝叶斯错误率明显比K最近邻算法要多,而对于“probability distribution”(概率分布项),贝叶斯与K最近邻算法分布相对混乱,对于K最近邻算法,第一项属性Clump Thickness丛厚度的所有概率分布大致相同,对于第3、5、11、12.项数据,分布很整齐。所以从性能角度上讲,K最近邻算法好一点。五、实验
18、总结以上实验是对Breast Cancer Wisconsin (Original) Data Set数据做了一些分析,通过本次数据挖掘实验,重新学习了一下数据挖掘的相关概念和知识,理解了数据挖掘的用途和使用步骤,进一步学习了WEKA开源数据挖掘工具在数据挖掘学习中的使用方法。通过本次实验,也认识到了数据挖掘对大量的数据进行探索后,能揭示出其中隐藏着的规律性内容,并且由此进一步形成模型化的分析方法。可以建立整体或某个业务过程局部的不同类型的模型,可以描述发展的现状和规律性,而且可以用来预测当条件变化后可能发生的状况。这可以为后续的研究提供更好的支持依据。本次实验进行比较顺利,使我对如何在Weka中进行分类分析有了更深刻的了解,对Weka中进行分类分析的决策树算法、贝叶斯算法、K最近邻算法都有了进一步的理解,同时也深刻体会到数据预处理对于数据挖掘的重要性。19