6.3 仿真实验分析

6.3 仿真实验分析

在本节中,将PAM-CNSMO算法与LibSVM[20]、MR-SVM[21]算法进行对比实验。其中,LibSVM是广泛使用的SVM实现算法,该算法由台湾学者提出。所有实验算法通过MATLAB 2014a在如下PC机器上进行试验:CPU:intel I5-5200,内存:4 GB,操作系统:Window 7。随机选取实验中的数据集的80%作为训练集,在该数据集上对LibSVM和MR-SVM进行交叉验证,然后剩余的20%用来进行测试。实验中的核函数选择高斯径向基函数:

各种算法在7个公开数据集上进行测试(各数据集的大小和维度见表6-1),这些数据集来自加州大学欧文(尔湾)分校机器学习公开数据集(http://archivei.cs.uci.edu/ml/datasets.html)。

表6-1 实验中的数据集

PAM-CNSMO算法使用相对密度的方法检测并去除分类噪声数据,从而避免了交叉验证。因此,该方法只需找到训练精度首次达到100%或者所有样本都满足KKT条件的参数组合即可。MR-SVM和LibSVM采用交叉验证实现,参数设置为2-8≤C≤28,2-8≤γ≤28,然后以2倍作为搜索间隔,此两个参数构成网格,对每一对参数进行交叉验证。MR-SVM和PAM-CNSMO的分块数都设置为5,这两个参数构成一个含有17×17个网格点的网格,即289对参数。交叉验证的分块数为5,所以训练次数是:289×5。

PAM-CNSMO中的惩罚系数C均为最大值,从而将验证的参数组合减少为17种。相对密度共需要6次阈值选择(即以间隔0.1从1.5递减到1),每次只需要一次的训练过程,所有样本都不违背KKT条件即可,所以PAM-CNSMO的训练次数最多是17×6。因此,与基本的SMO分类算法相比,其训练时间可以节约90%左右。

表6-2中显示了实验中每个数据集的参数值。由于PAM-CNSMO将分类噪声去掉后,数据集具有良好的可分性,因此PAM-CNSMO的C值均为最大值28,即256。

表6-2 实验中的参数值

(续 表)

表6-3中显示了LibSVM、MR-SVM和PAM-CNSMO在训练集上的性能结果。所有训练时间包括通过使用网格交叉验证进行参数选择的时间。由于PAM-CNSMO对原始数据集去除分类噪声后变为可分数据集,该算法的训练精度均达到了100%,所以训练精度的方差为0,因而具有较好的稳定性。另外,从表6-3可以看出,由于该算法中不需考虑惩罚系数避免了交叉验证,所以PAM-CNSMO的训练时间远远小于其他算法。因此,该过程使得算法效率得到了大大提升。特别是,数据集中的数据越大,PAM-CNSMO在这方面的优势越明显。从表6-3中可以看出,对于在相对较大的数据集Cod-RNA上PAM-CNSMO有不错的表现。

表6-3 性能比较

(续 表)

图6-5显示了三种算法的预测精度。如图中所示,在某些数据集中,如Sonar、Diabetes和Breast Cancer,PAM-CNSMO的算法预测精度接近基本算法LibSVM,明显高于MR-SVM算法。其主要原因是在膜4中通过使用所有样本进行KKT条件检验,并与相邻的膜3进行物质交流,找回了单一分块算法中的支持向量损失,从而获得更好的泛化预测能力。

如果数据集中分类噪声数据所占比例较大,那么决策曲面可能会对泛化能力造成一定的影响。此时PAM-CNSMO的精度优势更加明显,比如在数据集Diabetes中,PAM-CNSMO的算法精度比MR-SVM要高出近4%。

图6-5 不同方法在公开数据集上的预测精度

本章研究了一种结合活性膜P系统和CNSMO的分类算法PAM-CNSMO。通过分类噪声过滤技术,提高了数据的可分性,避免了惩罚系数寻优,相比同类算法显著地提高了训练效率。另外,由于该算法采用了活性膜P系统嵌套膜结构以及进化规则,在不同膜之间传输支持向量集合,并在膜中检验违背决策函数的KKT条件,大大降低了支持向量的损失,保证了预测精度。所以相比同类算法,PAM-CNSMO算法能够更加精确高效地部署在大规模数据应用中。该研究成果能有效提高SVM的算法性能,具有一定的应用价值。