1、一、实验目的使用数据挖掘中的分类算法,对数据集进行分类训练并测试。应用不同的分类算法,比较他们之间的不同。与此同时了解 Weka 平台的基本功能与使用方法。二、实验环境实验采用 Weka 平台,数据使用 Weka 安装目录下 data 文件夹下的默认数据集iris.arff。Weka 是怀卡托智能分析系统的缩写,该系统由新西兰怀卡托大学开发。Weka 使用Java 写成的,并且限制在 GNU 通用公共证书的条件下发布。它可以运行于几乎所有操作平台,是 一 款 免 费 的 , 非 商 业 化 的 机 器 学 习 以 及 数 据 挖 掘 软 件 。 Weka 提 供 了 一 个 统 一界 面 ,
2、可 结 合 预 处 理 以 及 后 处 理 方 法 , 将 许 多 不 同 的 学 习 算 法 应 用 于 任 何 所 给 的 数 据 集 ,并 评 估 由 不 同 的 学 习 方 案 所 得 出 的 结 果 。三、数据预处理Weka 平 台 支 持 ARFF 格 式 和 CSV 格 式 的 数 据 。 由 于 本 次 使 用 平 台 自 带 的 ARFF 格式 数 据 , 所 以 不 存 在 格 式 转 换 的 过 程 。 实 验 所 用 的 ARFF 格 式 数 据 集 如 图 1 所 示图 1 ARFF 格 式 数 据 集 (iris.arff)对于iris 数据集,它包含了150个实例
3、(每个分类包含50个实例) ,共有sepal length、sepal width、petal length、petal width和class五种属性。期中前四种属性为数值类型,class属性为分类属性,表示实例所对应的的类别。该数据集中的全部实例共可分为三类:Iris Setosa、Iris Versicolour和Iris Virginica。实验数据集中所有的数据都是实验所需的,因此不存在属性筛选的问题。若所采用的数据集中存在大量的与实验无关的属性,则需要使用 weka 平台的 Filter(过滤器)实现属性的筛选。实验所需的训练集和测试集均为 iris.arff。四、实验过程及结果应
4、用 iris 数据集,分别采用 LibSVM、C4.5 决策树分类器和朴素贝叶斯分类器进行测试和评价,分别在训练数据上训练出分类模型,找出各个模型最优的参数值,并对三个模型进行全面评价比较,得到一个最好的分类模型以及该模型所有设置的最优参数。最后使用这些参数以及训练集和校验集数据一起构造出一个最优分类器,并利用该分类器对测试数据进行预测。1、 LibSVM 分类Weka 平台内部没有集成 libSVM 分类器,要使用该分类器,需要下载 libsvm.jar 并导入到 Weka 中。用“Explorer”打开数据集“ iris.arff”,并在 Explorer 中将功能面板切换到 “Class
5、ify”。点“Choose”按钮选择 “functions(weka.classifiers.functions.LibSVM)”,选择 LibSVM 分类算法。在 Test Options 面板中选择 Cross-Validatioin folds=10,即十折交叉验证。然后点击“start”按钮:使用 LibSVM 分类算法训练数据集得出的结果参数:S 0 K 2 D 3 G 0.0 R 0.0 N 0.5 M 40.0 C 1.0 E 0.0010 P 0.1结果分析:使用该参数指定的 LibSVM 训练数据集,得到准确率为 96.6667%,其中 150 个实例中的145 个被正确分类
6、,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.992、 C4.5 决策树分类器依然使用十折交叉验证,训练集和测试集相同。使用 C4.5 决策树分类算法训练数据集得出的结果参数:-C 0.25 -M 2结果分析:使用该参数指定的 C4.5 决策树分类器训练数据
7、集,得到准确率为 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.9933、 朴素贝叶斯分类器使用朴素贝叶斯分类算法训练数据集得出的结果参数:无结果分析:使用朴素贝叶斯分类器训练数据集,得到准
8、确率为 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.9954、 三种分类算法比较:LibSVM C4.5 决策树 朴素贝叶斯校验准确率 98.6667% 98% 96%训练混淆矩阵校验混淆矩阵标准误差 0.0943 0.108 0.1483比较结果分析:LibSVM 算法相比 C4.5 决策树算法、朴素贝叶斯算法具有更好的分类性能。五、实验总结通过本次实验,我对 Weka 平台有了比较完整和深入的认识,掌握了使用 Weka 平台进行数据挖掘的方法,包括数据预处理、分类、聚类、关联分析等。通过实验,对数据挖掘本身也有了比较直观的认识。