数据挖掘weka数据分类实验报告.docx
《数据挖掘weka数据分类实验报告.docx》由会员分享,可在线阅读,更多相关《数据挖掘weka数据分类实验报告.docx(10页珍藏版)》请在冰点文库上搜索。
数据挖掘weka数据分类实验报告
数据挖掘weka数据分类实验报告
一、实验目的
使用数据挖掘中的分类算法,对数据集进行分类训练并测试。
应用不同的分类算法,比较他们之间的不同。
与此同时了解Weka平台的基本功能与使用方法。
二、实验环境
实验采用Weka平台,数据使用Weka安装目录下data文件夹下的默认数据集iris.arff。
Weka是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。
Weka使用Java写成的,并且限制在GNU通用公共证书的条件下发布。
它可以运行于几乎所有操作平台,是一款免费的,非商业化的机器学习以及数据挖掘软件。
Weka提供了一个统一界面,可结合预处理以及后处理方法,将许多不同的学习算法应用于任何所给的数据集,并评估由不同的学习方案所得出的结果。
三、数据预处理
Weka平台支持ARFF格式和CSV格式的数据。
由于本次使用平台自带的ARFF格式数据,所以不存在格式转换的过程。
实验所用的ARFF格式数据集如图1所示
应用iris数据集,分别采用LibSVM、C4.5决策树分类器和朴素贝叶斯分类器进行测试和评价,分别在训练数据上训练出分类模型,找出各个模型最优的参数值,并对三个模型进行全面评价比较,得到一个最好的分类模型以及该模型所有设置的最优参数。
最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器,并利用该分类器对测试数据进行预测。
1、LibSVM分类
Weka平台内部没有集成libSVM分类器,要使用该分类器,需要下载libsvm.jar并导入到Weka中。
用“Explorer”打开数据集“iris.arff”,并在Explorer中将功能面板切换到“Classify”。
点“Choose”按钮选择“functions(weka.classifiers.functions.LibSVM)”,选择LibSVM分类算法。
在TestOptions面板中选择Cross-Validatioinfolds=10,即十折交叉验证。
然后点击“start”按钮:
使用LibSVM分类算法训练数据集得出的结果
参数:
–S0–K2–D3–G0.0–R0.0–N0.5–M40.0–C1.0–E0.0010–P0.1
结果分析:
使用该参数指定的LibSVM训练数据集,得到准确率为96.6667%,其中150个实例中的145个被正确分类,5个被错误分类。
根据混淆矩阵,被错误分类实例的为:
2个b类实例被错误分类到c;3个c类实例被错误分类到b。
该算法P=0.967,R=0.967,ROC面积为0.975。
将模型应用于测试集:
使用LibSVM分类算法测试数据集得出的结果
分类误差:
结果分析:
准确率为98.6667%,只有两个实例被错误分类。
P=0.987,R=0.987,ROC面积为0.99
2、C4.5决策树分类器
依然使用十折交叉验证,训练集和测试集相同。
使用C4.5决策树分类算法训练数据集得出的结果
参数:
-C0.25-M2
结果分析:
使用该参数指定的C4.5决策树分类器训练数据集,得到准确率为96%,其中150个实例中的144个被正确分类,6个被错误分类。
根据混淆矩阵,被错误分类实例的为:
2个b类实例被错误分类到c,1个b类实例被错误分类到a;3个c类实例被错误分类到b。
该算法P=0.96,R=0.96,ROC面积为0.968。
将模型应用于测试集:
使用C4.5分类算法测试数据集得出的结果
分类误差:
结果分析:
准确率为98%,有3个实例被错误分类。
P=0.98,R=0.98,ROC面积为0.993
3、朴素贝叶斯分类器
使用朴素贝叶斯分类算法训练数据集得出的结果
参数:
无
结果分析:
使用朴素贝叶斯分类器训练数据集,得到准确率为95.3333%,其中150个实例中的143个被正确分类,7个被错误分类。
根据混淆矩阵,被错误分类实例的为:
4个b类实例被错误分类到c;3个c类实例被错误分类到b。
该算法P=0.953,R=0.953,ROC面积为0.994。
将模型应用于测试集:
使用朴素贝叶斯分类算法测试数据集得出的结果
分类误差:
结果分析:
准确率为96%,有6个实例被错误分类。
P=0.96,R=0.96,ROC面积为0.995
4、三种分类算法比较:
LibSVM
C4.5决策树
朴素贝叶斯
校验准确率
98.6667%
98%
96%
训练
混淆矩阵
校验
混淆矩阵
标准误差
0.0943
0.108
0.1483
比较结果分析:
LibSVM算法相比C4.5决策树算法、朴素贝叶斯算法具有更好的分类性能。
五、实验总结
通过本次实验,我对Weka平台有了比较完整和深入的认识,掌握了使用Weka平台进行数据挖掘的方法,包括数据预处理、分类、聚类、关联分析等。
通过实验,对数据挖掘本身也有了比较直观的认识。