- 基于免疫进化的算法及应用研究
- 张瑞瑞 陈春梅
- 1899字
- 2025-02-25 16:15:13
2.4 实验结果与分析
本节将通过实验来验证GB-RNSA的有效性。实验采用否定选择算法研究中普遍使用的两类数据集,包括2D综合数据集和UCI数据集。其中,2D综合数据集是由Memphis大学的Dasgupta教授的研究小组提供的,是实值否定选择算法性能测试的权威数据集。UCI数据集是经典的机器学习数据集,广泛应用于检测器的性能测试和生成效率测试。在实验中,我们会将GB-RNSA与两种传统的实值否定选择算法RNSA和V-Detector做比较。
实验采用成熟检测器的数量DN、检测率DR、误报率FAR和检测器生成的时间代价DT来衡量算法的有效性。由于传统算法RNSA采用预设检测器数量作为算法的终止条件,为了保证三种算法在相同的实验条件下进行有效对比,本书修改了RNSA算法,采用对非自体空间的期望覆盖率作为算法的终止条件。
2.4.1 2D综合数据集
这些数据集包含几种不同的子数据集。我们选择Ring、Stripe和Pentagram子数据集来测试GB-RNSA的检测器生成性能。图2.4显示了这三种数据集在二维实值空间的分布。

图2.4 Ring、Stripe和Pentagram数据集的分布
这三种数据集的自体集合大小为Nself= 1000。训练集由自体集中随机选择的数据点组成,测试数据由二维[0,1]空间中随机选择的点组成。实验重复20次取平均值。表2.8和表2.9显示了实验结果,其中括号中的值为方差。表2.8列出了GB-RNSA在三种数据集具有相同的期望覆盖率(90%)、相同的训练集大小(Ns= 300)、不同的自体半径的情况下,检测率和误报率的对比。可以看出,算法在较小的自体半径下,具有较高的检测率和误报率,同时在较大的自体半径下,具有较低的检测率和误报率。表2.9列出了GB-RNSA在三种数据集具有相同的期望覆盖率(90%)、相同的自体半径(rs= 0.05)、不同的训练集大小的情况下,检测率和误报率对比。可以看出,随着训练集增大,检测率逐渐增大,误报率逐渐减小。
表2.8 不同自体半径的影响

表2.9 不同训练集大小的影响

2.4.2 UCI数据集
实验选取了三种标准的UCI数据集,包括Iris、Haberman's Survival和Abalone,实验参数如表2.10所示。对这三种数据集,自体集和非自体集都是随机选择的,训练集和测试集也是随机选择的。实验重复20次并取平均值。
表2.10 UCI数据集的实验参数

2.4.2.1 检测器数量对比
图2.5、图2.6、图2.7显示了RNSA、V-Detector和GB-RNSA在三种数据集下的成熟检测器数量的对比。从图中可以看出,随着期望覆盖率的上升,三种算法所需的成熟检测器数量相应上升。但是GB-RNSA的效率明显优于其他两种算法。对Iris数据集来说,为了达到期望覆盖率99%, RNSA需要13527个成熟检测器,V-Detector需要1432个,而GB-RNSA需要1166个,依次下降了89.4%和18.6%。对大数据集Abalone来说,为了达到期望覆盖率99%, RNSA需要11500个成熟检测器,V-Detector需要620个,而GB-RNSA需要235个,依次下降了94%和62.1%。因此,在相同的期望覆盖率、不同的数据维度、不同的训练集下,GB-RNSA生成的成熟检测器数量相比RNSA和V-Detector大大减少。

图2.5 RNSA、V-Detector和GB-RNSA检测器数量对比(采用Haberman's Survival数据集,自体半径为0.1)

图2.6 RNSA、V-Detector和GB-RNSA检测器数量对比(采用Iris数据集,自体半径为0.1)

图2.7 RNSA、V-Detector和GB-RNSA检测器数量对比(采用Abalone数据集,自体半径为0.1)
2.4.2.2 检测器生成代价对比
图2.8、图2.9、图2.10显示了RNSA、V-Detector和GB-RNSA在三种数据集下的检测器生成的时间代价的对比。从图中可以看出,随着期望覆盖率的上升,RNSA和V-Detector的时间花费上升非常快,而GB-RNSA上升较缓慢。对Iris数据集来说,为了达到期望覆盖率90%, RNSA的时间消耗是350.187秒,V-Detector是0.347秒,而GB-RNSA是0.1秒,依次降低了99.9%和71.2%。当期望覆盖率为99%时,RNSA的时间消耗是1259.047秒,VDetector是40.775秒,而GB-RNSA是3.659秒,依次降低了99.7%和91.0%。对其他两种数据集,实验结果是类似的。因此,相比RNSA和V-Detector, GB-RNSA的检测器生成效率有了大幅提高。

图2.8 RNSA、V-Detector和GB-RNSA生成检测器的时间消耗对比(采用Haberman's Survival数据集,自体半径为0.1)

图2.9 RNSA、V-Detector和GB-RNSA生成检测器的时间消耗对比(采用Iris数据集,自体半径为0.1)

图2.10 RNSA、V-Detector和GB-RNSA生成检测器的时间消耗对比(采用Abalone数据集,自体半径为0.1)
2.4.2.3 检测率和误报率对比
图2.11、图2.12、图2.13显示了RNSA、V-Detector和GB-RNSA在三种数据集下的检测率和误报率对比。从图中可以看出,当期望覆盖率大于90%时,三种算法的检测率较为接近,其中RNSA稍低一点;而GB-RNSA的误报率明显低于RNSA和V-Detector。对Haberman's Survival数据集来说,当期望覆盖率为99%时,RNSA的误报率是55.2%, V-Detector是30.1%,而GB-RNSA是20.1%,依次降低了63.6%和33.2%。对Abalone数据集来说,当期望覆盖率为99%时,RNSA的误报率是25.1%, V-Detector是20.5%,而GB-RNSA是12.6%,依次降低了49.8%和38.5%。因此,在相同的期望覆盖率下,相比RNSA和V-Detector, GB-RNSA的误报率明显降低。

图2.11 RNSA、V-Detector和GB-RNSA的检测率和误报率对比(采用Haberman's Survival数据集,自体半径为0.1)

图2.12 RNSA、V-Detector和GB-RNSA的检测率和误报率对比(采用Iris数据集,自体半径为0.1)

图2.13 RNSA、V-Detector和GB-RNSA的检测率和误报率对比(采用Abalone数据集,自体半径为0.1)
ROC曲线是一个采用检测率(True positive rate)和误报率(False positive rate)绘制分类模式的图形方法。图2.14显示了RNSA、V-Detector和GBRNSA在三种数据集下的ROC曲线对比。一个好的分类模式的曲线应该尽可能分布在图形的左上方。从图中可以看出,GB-RNSA优于RNSA和V-Detector。

图2.14 RNSA、V-Detector和GB-RNSA的ROC曲线对比