基于weka的分类方法的实现

「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」。

分类方法的实现

基于weka的分类方法的实现,包括:KNN分类、决策树分类、朴素贝叶斯分类

步骤

KNN分类

1. 打开weka进入explorer 界面,加载天气数据集glass.arff,然后切换到classify标签页。单击choose依次选择weka->classifiers->lazy->IBk,,IBk是一种KNN分类器。IBk的参数值保持默认,使用交叉验证的方式测试该分类器的性能。

image.png 2. 点击start,得到如下结果:

image.png

3. 下面将大小不等的噪声数据,加入到玻璃数据集中,观察对分类器性能的影响。

通过weka->filters->unsupervised->attribute中的AddNoise过滤器,将玻璃数据集中一定比例的类别标签翻转为其他的类别标签,这就是加入噪声数据,即将正确的类别标签改成错误的。但是我们只希望在训练数据中加入噪声数据,测试数据中不加噪声数据,所以需要先选择FilteredClassifier分类器,它的功能是只让Addnoise对训练数据加入噪声。具体操作如下:

选择choose-weka-meta-FilteredClassifier,

image.png

单击如下位置,

image.png

弹出 FilteredClassifier参数设置窗口如下,设置分类器为KNN(IBk),添加噪声的算法Addnoise.

image.png 修改AddNoise过滤器的分类噪声百分比percent参数,从0%,10%一直到50%,设置完后,单击start按钮启动训练和评估,观察分类的准确率如何变化。

image.png

决策树分类

1.打开weather.nominal.arff,切换到classify页,选择决策树算法 weka->classifiers->trees->J48,算法参数不变。选择10折交叉验证方法,单击start运行,得出如下结果。

image.png

2.再选择使用训练集作为测试数据,如下

image.png 点击start得到如下结果

image.png 可以看到分类准确率是100%,解释上图矩形框中数据的含义,并思考为什么使用训练数据集进行测试的最终准确率要高。

3.选中下图矩形框中内容,右键,选择Visualize tree,可生成对应的决策树。

image.png

4.使用J48预测未知数据,创建测试数据集如下

image.png

用记事本编辑,名命为weather.nominal.test.arff.

选择image.png,点击右边的set,打开测试数据集,再点击more option,设置如下

image.png

点击ok,再start运行决策树算法,得到如下结果:

image.png

朴素贝叶斯算法

打开weather.nominal.arff,切换到classify页,选择 weka->classifiers->bayes->BayesNet分类器,结果如下:

image.png

猜你喜欢

转载自juejin.im/post/7036327281186308109