实验目的
进一步理解分类算法(决策树、贝叶斯),利用weka实现数据集的分类处理,学会调整模型参数,以图或树的形式给出挖掘结果,并解释规则的含义。
实验要求
随机选取数据集(UCI或data文件夹),完成以下内容:(用三种方法:KNN、C4.5算法、贝叶斯算法)
- 文件导入与编辑
- 参数设置说明
- 结果截图
- 结果分析与对比
实验过程
1. 文件导入与编辑
单击Open file,选择自带数据集中的“iris.arff”数据集,数据集如图1所示。
对于iris数据集,它包含了150个实例(每个分类包含50个实例),共有sepal1ength、sepal width、petal length、petal width和class五种属性。期中前四种属性为数值类型,class属性为分类属性,表示实例所对应的的类别。该数据集中的全部实例共可分为三类:Iris Setosa、Iris Versicolour和Iris Virginica。
实验数据集中所有的数据都是实验所需的,不存在属性筛选的问题。
2. 参数设置说明
2.1 KNN算法
单击Classify->choose->lazy->IBK选择KNN算法,如图2所示。
单击choose右侧的文本框,弹出参数设置窗口,如下图所示。
KNN的值即算法中k的值,该值的选择会对算法的结果产生重大影响。
如果k值较小,就相当于用较小邻域中的训练实例进行预测,极端情况下k=1,测试实例只和最接近的一个样本有关,训练误差很小(0),但是如果这个样本恰好是噪声,预测就会出错,测试误差很大。也就是说,当k值较小时,会产生过拟合的现象。
如果k值较大,就相当于用很大邻域中的训练实例进行预测,极端情况是k=n,测试实例的结果是训练数据集中实例最多的类,这样会产生欠拟合。
在应用中,一般选择较小k并且k是奇数。通常采用交叉验证的方法来选取合适的k值,经过多次验证,选择合适的k值为7。
2.2 C4.5算法
单击Classify->choose->trees->J48选择C4.5算法,如图4所示。
单击choose右侧的文本框,弹出参数设置窗口,如下图所示。
- confidenceFactor为置信度,设为0.25。
- minNumObj表示决策树里每个决策节点最少需要的实例个数。越大则模型复杂度越低,也越不容易过拟合。
2.3 贝叶斯算法
单击Classify->choose->bayes->NaiveBayes选择贝叶斯算法,如图6所示。
单击choose右侧的文本框,弹出参数设置窗口,如下图所示。
结果截图
1. KNN算法
分类结果如图8所示,可知正确率为96.6667%,其中150个实例中的145个被正确分类,5个被错误分类。根据混淆矩阵,被错误分类实例的为: 2个c类实例被错误分类到b,3个b类实例被错误分类到c。
2. C4.5算法
分类结果如图9所示,可知准确率为96%,其中150个实例中的144个被正确分类,6个被错误分类。根据混淆矩阵,被错误分类实例的为:2个b类实例被错误分类到c,1个b类实例被错误分类到a;3个c类实例被错误分类到b。生成的决策树为图10。
3. 贝叶斯算法
分类结果如图11所示,可知准确率为96%,其中150个实例中的144个被正确分类,6个被错误分类。根据混淆矩阵,被错误分类实例的为:2个c类实例被错误分类到b,4个b类实例被错误分类到c。
文章来源:https://www.toymoban.com/news/detail-447449.html
结果分析
对于该数据集,KNN算法准确率更高,但K值的选择是个难点,较好的K值可以带来较优的结果,反之亦然。C4.5算法与朴素贝叶斯算法准确率相同,但贝叶斯算法在对不同实例错误分类较为不均匀,而C4.5算法则对b、c错误分类个数较为均匀,这在一定程度上会影响分类结果,如果侧重于实例c的分类则贝叶斯算法较好,而实例b则C4.5算法较好。文章来源地址https://www.toymoban.com/news/detail-447449.html
到了这里,关于《数据挖掘基础》实验:Weka平台实现分类算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!