机器智能实验三 分类算法

一、实验目的

  1. 巩固4种基本的分类算法的算法思想:朴素贝叶斯算法,决策树算法,人工神经网络,支持向量机算法;
  2. 能够使用现有的分类器算法代码进行分类操作
  3. 学习如何调节算法的参数以提高分类性能;

二、实验的软、硬件平台

硬件:计算机

软件:操作系统:WINDOWS 

应用软件:C,Java或者Matlab

 

三、实验内容及步骤

利用现有的分类器算法对文本数据集进行分类

实验步骤

此次实验使用weka软件来模拟各种分类、回归算法的运行结果,并比较优劣

首先打开weka软件,在四个选项中选择explorer

打开后选择处理后的arff文件,打开后发现当前页面已经给出了关于标签的一些信息:

首先打开分类数据集,然后在classify标签页中选择我们想要查看现象的算法,如果我们选择的算法不符合数据集的格式,那么我们不可以单击start按钮。

首先在贝叶斯算法的合集中选择朴素贝叶斯算法(NaiveBayes),朴素贝叶斯算法是一种较为简单的分类算法,需要计算数据在各个标签下为真的条件概率,然后选择一个概率最高的条件概率,将当前数据归类为这个标签对应的分类。然后点击start会输出关于算法的一些信息:

可以看到输出的 信息中,包含了分类的正确率和错误率,同时还有两个评价参数kappa statistic和mean absolute error,先介绍一下kappa statistic

kappa statistic叫做卡巴统计量,定义为:

其中P(A)是我们的分类器认为为真的概率,P(E)是随机分类的概率,所以当这个值越趋近于为0,则分类器与随机分类越相近,卡巴统计量越趋近于1,则分类器分类概率越趋近于1,所以卡巴统计量越趋近于1表示分类性能越好。

mean absolute error是平均绝对误差,用来衡量分类器预测值和实际结果的差异,越小越好。

我们看到在使用朴素贝叶斯进行分类的时候,卡巴统计量为0.7136,平均绝对误差为0.1954,都表现出相对较好的分类性能。

后面的TP和FP在上课的时候说过了,分别对应了样本为正,预测为正的概率以及样本为负,预测为正的概率。

首先需要介绍一下ROC曲线:

通过混淆矩阵,我们可以得到真正例率(True Positive Rate , TPR):

    

    我们还可以得到假正例率(False Positive Rate  , FPR):

    

根据TPR和FPR,可以绘制出一条曲线,叫做ROC曲线,ROC曲线围成的面积叫做AUC面积。AUC(area under thecurve),也就是ROC曲线的下夹面积,越大说明分类器越好,最大值是1,图中的蓝色条纹区域面积就是蓝色曲线对应的 AUC

决策树算法

接下来直接选择下一个分类算法就可以了,我们在trees下选择J48,J48和我们课上学习的是一致的,根据数据的属性进行建树,尽可能将子树分类为某一类数据,如果子树中包含的 数据是纯的,则不再建树,否则则继续建树进行下一次分类。

我们可以通过右键查看根据当前的数据集建立的树的结构。

可以明显地看到是根据数据的属性来建树的。

同时可以看到输出的分类有关的信息如下:

根据前面提到的几个评价参数,正确率相比较朴素贝叶斯网络有所下降,kappa statistic表现得也没有朴素贝叶斯好,其他指标相对来说都有所下降。

 

 

 

人工神经网络

在function中选择multi-layer perception,即多层人工神经网络算法。

我们可以通过设置神经网络的可视化来看到输入层、中间层的层数、神经元的个数、输出层,显示出的神经网络结构如图:

我们可以看到这里使用了十三个属性作为输入层的神经元,中间层只有一层,包含了七个神经元,每个神经元都接收了来自13个输入的信息,根据不同的权值计算出输出信息,最后汇总到输出层的神经元,最后输出分类结果。

可以看到执行之后输出的分类信息如下:

分类正确率相比前面来说仍然不及朴素贝叶斯,比决策树算法相对来说要稍微好一点,kappa statistic没有什么优势,mean absolute error相对来说也是稍好一点。

支持向量机算法

同样在function中选择SMO,SMO是一种支持向量机算法的实现方式

算法思想我们做实验的 时候还没有学到,所以这里只做一下简单的比较:

可以看到在我们所做的四种分类算法的比较来看,支持向量机明显是仅次于朴素贝叶斯算法的,同样地分类正确率超过了80%,在其他各项指标上也表现出了良好的性能。

2.回归

在回归中我们使用了SVM,具体使用的算法是SMOreg,这里觉得应该就是SMO regression,应用于回归的支持向量机算法,当我们运行SMOreg算法之后,可以得到这样的结果:

可以看到这里总结出了一些结果,这里我们不再多分析。

四、总结

这次实验通过使用weka软件对几种分类算法进行了比较,这其中朴素贝叶斯和支持向量机表现出了相对较好的性能,但是验收的时候助教说应该可以调参改变实验的结果,这里由于对weka使用的时间并不长,就没有深入地研究该怎么使用。

课上对算法的学习还是很抽象的,需要通过这样的软件更直观地对算法进行一下了解,后面也要对算法思想更深入地理解。

发布了63 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/LieberVater/article/details/90523067
今日推荐