基于weka的数据分类和聚类分析实验报告课案.docx
《基于weka的数据分类和聚类分析实验报告课案.docx》由会员分享,可在线阅读,更多相关《基于weka的数据分类和聚类分析实验报告课案.docx(12页珍藏版)》请在冰豆网上搜索。
基于weka的数据分类和聚类分析实验报告课案
基于weka的数据分类分析实验报告
1实验基本内容
本实验的基本内容是通过使用weka中的三种常见分类和聚类方法(决策树J48、KNN和k-means)分别在训练数据上训练出分类模型,并使用校验数据对各个模型进行测试和评价,找出各个模型最优的参数值,并对三个模型进行全面评价比较,得到一个最好的分类模型以及该模型所有设置的最优参数。
最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器,并利用该分类器对测试数据进行预测。
2数据的准备及预处理
2.1格式转换方法
(1)打开“data02.xls”另存为CSV类型,得到“data02.csv”。
(2)在WEKA中提供了一个“ArffViewer”模块,打开一个“data02.csv”进行浏览,然后另存为ARFF文件,得到“data02.arff”。
。
3.实验过程及结果截图
3.1决策树分类
(1)决策树分类
用“Explorer”打开数据“data02.arff”,然后切换到“Classify”。
点击“Choose”,选择算法“trees-J48”,再在“Testoptions”选择“Cross-validation(Flods=10)”,点击“Start”,开始运行。
系统默认trees-J48决策树算法中minNumObj=2,得到如下结果
===Summary===
CorrectlyClassifiedInstances2388.4615%
IncorrectlyClassifiedInstances311.5385%
Kappastatistic0.7636
Meanabsoluteerror0.141
Rootmeansquarederror0.3255
Relativeabsoluteerror30.7368%
Rootrelativesquarederror68.0307%
TotalNumberofInstances26
===DetailedAccuracyByClass===
TPRateFPRatePrecisionRecallF-MeasureROCAreaClass
0.824010.8240.9030.892N
10.1760.7510.8570.892Y
WeightedAvg.0.8850.0610.9130.8850.8870.892
===ConfusionMatrix===
ab<--classifiedas
143|a=N
09|b=Y
使用不同的参数准确率比较:
minNumObj
2
3
4
5
CorrectlyClassifiedInstances
23
(88.4615%)
22
(84.6154%)
23
(88.4615%)
23
(88.4615%)
由上表,可知minNumObj为2时,准确率最高。
根据测试数集,利用准确率最高的模型得到的结果:
分析说明:
在用J48对数据集进行分类时采用了10折交叉验证(Folds=10)来选择和评估模型,其中属性值有两个Y,N。
一部分结果如下:
CorrectlyClassifiedInstances2388.4615%
IncorrectlyClassifiedInstances311.5385%
===ConfusionMatrix===
ab<--classifiedas
143|a=N
09|b=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”,选择算法“lazy-IBk”,再在“Testoptions”选择“Cross-validation(Flods=10)”,点击“Start”,开始运行。
训练结果:
系统默认lazy-IBkK最近邻分类算法中KNN=1,得到如下结果
===Summary===
CorrectlyClassifiedInstances2076.9231%
IncorrectlyClassifiedInstances623.0769%
Kappastatistic0.4902
Meanabsoluteerror0.252
Rootmeansquarederror0.4626
Relativeabsoluteerror54.9136%
Rootrelativesquarederror96.694%
TotalNumberofInstances26
===DetailedAccuracyByClass===
TPRateFPRatePrecisionRecallF-MeasureROCAreaClass
0.8240.3330.8240.8240.8240.768N
0.6670.1760.6670.6670.6670.768Y
WeightedAvg.0.7690.2790.7690.7690.7690.768
===ConfusionMatrix===
ab<--classifiedas
143|a=N
36|b=Y
使用不同的参数准确率比较:
KNN
1
2
3
4
CorrectlyClassifiedInstances
20
(76.9231%)
19
(73.0769%)
23
(88.4615%)
20
(76.9231%)
由上表,可知KNN为3时,准确率最高。
根据测试数集,利用准确率最高的模型得到的结果:
分析说明:
在用lazy-Ibk(KNN=3)对数据集进行分类时采用了10折交叉验证(Folds=10)来选择和评估模型,其中属性值有两个Y,N。
一部分结果如下:
===Summary===
CorrectlyClassifiedInstances2388.4615%
IncorrectlyClassifiedInstances311.5385%
===ConfusionMatrix===
ab<--classifiedas
161|a=N
27|b=Y
这个矩阵是说,原来是“Y”的实例,有16个被正确的预测为“Y”,有1个错误的预测成了“N”。
原本是“NO”的实例有2个被正确的预测成为“Y”,有9个正确的预测成了“7”。
“16+1+2+7=26”是实例的总数,而(16+7)/26=0.884615正好是正确分类的实例所占比例。
二、对“data01”进行聚类分析
1.数据格式的转换
(1)打开“data01.xls”另存为CSV类型,得到“data01.csv”。
(2)在WEKA中提供了一个“ArffViewer”模块,打开一个“data01.csv”进行浏览,然后另存为ARFF文件,得到“data01.arff”。
2.聚类过程
用“Explorer”打开数据“data01.arff”,然后切换到“Cluster”。
点击“Choose”,选择算法“SimpleKMeans(numClusters=6,seed=200),再在“Testoptions”选择“Usetrainingset”,点击“Start”,开始运行。
训练结果:
采用simpleKMeans算法,其中numClusters=6,seed=100,得到如下结果:
Numberofiterations:
3
Withinclustersumofsquarederrors:
6.065322314450069(平方误差之和)
ClusteredInstances
ClusteredInstances
04(15%)
13(12%)
24(15%)
33(12%)
42(8%)
510(38%)(各类的包含的实例个数以及占总实例的百分比)
说明:
其中当seed的取值越大,平方误差之和越小。
在这次实验seed=100,得到:
Withinclustersumofsquarederrors:
6.065322314450069.这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离就越小。
接下来“Clustercentroids”:
列出了各个簇中心的位置:
AttributeFullData012345
(26)(4)(3)(4)(3)
(2)(10)
=================================================================================
sample13.522.54.666720.514.66674.511.2
old-year48.076965.7559.333350.52556.541.9
VEGF1.92312.752.333322.666731
MVC102.1538126.45100.6667127.488.266710486.58
cancer-grade2.57693.75233.33333.51.7
cancer-stage2.15383.251.333332.33333.51.3
cancermetastasisNYNNYYN
最后“ClusteredInstances”列出了各个簇中实例的数目及百分比:
ClusteredInstances
04(15%)
13(12%)
24(15%)
33(12%)
42(8%)
510(38%)(各类的包含的实例个数以及占总实例的百分比)
三、根据提供的“data02”进行关联分析
由于程序和系统故障,所以不能正确的进行关联分析
5.实验总结
本次实验进行比较顺利,使我对如何在Weka中进行分类分析有了更深刻的了解,对Weka中进行分类分析的KNN算法,k-means算法和决策树算法都有了进一步的理解,同时也深刻体会到数据预处理对于数据挖掘的重要性。