基于weka的数据分类和聚类分析实验报告.docx
基于weka的数据分类分析实验报告1实验根本内容本实验的根本内容是通过使用Weka中的三种常见分类和聚类方法(决策树J48、KNN和k-means)分别在训练数据上训练出分类模型,并使用校验数据对各个模型进行测试和评价,找出各个模型最优的参数值,并对三个模型进行全面评价比拟,得到一个最好的分类模型以及该模型所有设置的最优参数。最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器,并利用该分类器对测试数据进行预测。2数据的准备及预处理2.1 格式转换方法翻开“dataO2.xls"另存为CSV类型,得至J''dataO2.csv"。昌dataO2.csv在WEKA中提供了一个"ArffVieWei"模块,翻开一个"dataO2.csv"进行浏览,然后另存为ARFF文件,得到“dataO2.arf,®dataO2.arff。3.实验过程及结果截图3.1 决策树分类(D决策树分类用“Explorer"翻开数据*data02.arffw»然后切换到“Classify"。点击“Choose",选择算法"lrees-J48",再在"Testoptions*选择Cross-validation(Flods=IO)",点击“Start",开始运行。系统默认trees-J48决策树算法中minNu00bj=2,得到如下结果=SUmmary=CoirectlyClassifiedInstancesIncorrectlyClassifiedInstancesKappastatisticMeanabsoluteerrorRootmeansquarederrorRelativeabsoluteerrorRootrelativesquarederror2388.4615%3H.5385%0.76360J410.325530.7368%68.0307%TotalNumberofInstances26=DetailedAccuracyByClass=TPRateFPRatePrecisionRecallF-MeasureROCAreaClass0.824010.8240.9030.892N10.1760.7510.8570.892YWeightedAvg.0.8850.0610.9130.8850.8870.892=ConfusionMatrix=ab<classifiedas143a=N09b=Y使用不同的参数准确率比拟:minNumObj2345CorrectlyClassifiedInstances23(88.4615%)22(84.6154%)23(88.4615%)23(88.4615%)由上表,可知RiinNumObj为2时,准确率最高。根据测试数集,利用准确率最高的模型得到的结果:分析说明:在用J48对数据集进行分类时采用了10折交叉验证(Folds=IO)来选择和评估模型,其中属性值有两个Y,N。一局部结果如下:CorrectlyClassifiedInstances2388.4615%IncorrectlyClassifiedInstances311.5385%=ConfusionMatrix=ab<classiedas143a=N09b=Y这个矩阵是说,原来是"Y"的实例,有14个被正确的预测为"Y",有3个错误的预测成了“N"。原本是"NO"的实例有0个被正确的预测成为"Y",有9个正确的预测成了"N"。"14+3+0+9=26"是实例的总数,而(14+9)/26=0.884615正好是正确分类的实例所占比例。这个矩阵对角线上的数字越大,说明预测得越好。(2) K最近邻分类算法用"Explorer"翻开数据"data02.arff",然后切换到"Classify"。点击"Choose",选择算法"IazyTBk",再在"Testoptions*选择uCross-validation(FlCdS=IO)",点击"Start",开始运行。训练结果:系统默认IaZy-IBkK最近邻分类算法中KNN=L得到如下结果=KSummary-CorrectlyClassifiedInstances2076.9231%IncorrectlyClassifiedInstances623.0769%Kappastatistic0.4902Meanabsoluteerror0.252Rootmeansquarederror0.4626Relativeabsoluteerror54.9136%Rootrelativesquarederror96.694%TotalNumberofInstances26=DetailedAccuracyByClass=TPRateFPRatePrecisionRecallF-MeasureROCAreaClass0.8240.3330.8240.8240.8240.768N0.6670,1760.6670.6670.6670.768YWeightedAvg.0.7690.2790.7690.7690.7690.768-ConfusionMatrix-ab一一classifiedas143Ia=N36Ib-Y使用不同的参数准确率比拟:KNN1234CorrectlyClassifiedInstances20(76.9231%)19(73.0769%)23(88.4615%)20(76.9231%)由上表,可知KNN为3时,准确率最高。根据测试数集,利用准确率最高的模型得到的结果:分析说明:在用IaZy-Ibk(KNN=3)对数据集进行分类时采用了10折交叉验证(Folds=IO)来选择和评估模型,其中属性值有两个Y,N,一局部结果如下:=Summary=CorrectlyClassifiedInstances2388+4615%IncorrectlyClassifiedInstances31L5385%=ConfusionMatrix=ab<classifiedas161Ia=N27b=Y这个矩阵是说,原来是"Y"的实例,有16个被正确的预测为"Y",有1个错误的预测成了"N"。原本是"NO"的实例有2个被正确的预测成为"Y",有9个正确的预测成了“7"16+1+2+7=26"是实例的总数,而(16+7)/26=0.884615正好是正确分类的实例所占比例。二、对JataOl"进行聚类分析1.数据格式的转换翻开“dataOLxk"另存为CSV类型,得到“dataOl.csv"。datal.csv在WEKA中提供了一个"ArffViewer"模块,翻开一个"dalMLcsv"进行浏览,然后另存为ARFF文件,得到"dala01.arfOdatal.arff2.聚类过程用“Explorer"翻开数据''datal.arff",然后切换到“Cluster"。点击“Choose",选择算法"SimplcKMuans(nunCIusicrsA,ml20();,再在“Testoptions"选择“Isetrainings",点击"Start",开始运行。训练结果:采用SimpleKMeans算法,其中numClusters=6,seed=100>得到如下结果:Numberofiterations:3Withinclustersumofsquarederrors:6.065322314450069(平方误差之和)ClusteredInstancesClusteredInstances04(15%)12345说明:343210(12%)(15%)(12%)(8%)(38%)(各类的包含的实例个数以及占总实例的百分比)其中当Seed的取值越大,平方误差之和越小errors: 6. 065322314450069这是在这次实验seed=100,得到:Withinclustersumofsquared评价聚类好坏的标准,数值越小说明同-簇实例之间的距离就越小。接下来"Clustercentroids":列出了各个簇中心的位置:Clustered012345三、210Instances(15%)(12%)(15%)(12%)(8%)(38%)(各类的包含的实例个数以及占总实例的百分比)根据提供的"data02"进行关联分析AttributeFullData(26)0(4)2(4)3(3)4(2)5(IO)sample13.522.54.666720.514.66674.51L2old-year48.076965.7559.333350.52556.54L9VEGF1.92312.752.333322.666731MVC102.1538126.45100.6667127.488.266710486.58cancer-grade2.57693.7523333333.51.7cancer-stage2.15383.251.333332.33333.51.3cancermetastasisNYNNYYN最后"ClusteredInstances"列出了各个簇中实例的数目及百分比:由于程序和系统故障,所以不能正确的进行关联分析5.实验总结本次实验进行比拟顺利,使我对如何在Weka中进行分类分析有了更深刻的了解,对Weka中进行分类分析的KNN算法,k-means算法和决策树算法都有了进一步的理解,同时也深刻体会到数据预处理对于数据挖掘的重要性.