当前位置:   article > 正文

量子化信息素蚁群优化特征选择算法_蚁群算法特征选择

蚁群算法特征选择
近年来,许多涉及信息的领域中产生了包含众
多特征的高维数据,然而并不是所有特征都是重要
的。许多特征甚至是不相关或冗余的,这不仅使数
据处理过程变得困难,还降低了学习算法的效率,
如分类算法等学习算法的性能 [1] 。特征选择旨在利
用一种选择策略,消除不相关和冗余的特征,找到
最佳特征子集 [2]
根据选择策略的不同,特征选择方法可以分为
三类:过滤式方法、包裹式方法和嵌入式方法 [3]
过滤式:过滤式方法不依赖于任何的学习算法。
它们依靠训练数据的一般特性(如类间距离或统计
依赖关系)来选择特征 [4] 。这种方法具有很高的计
算效率。然而过滤式方法由于缺少具体的学习算法
指导特征选择阶段,选择出来的特征对于目标学习
算法而言可能并不是最优的。
包裹式:不同于过滤式方法,包裹式方法在评
价特征子集时,会检测特征变量间可能的相互作用
[5] 。此外,包裹式方法在评价特征子集时会根据不
同的问题选择不同的学习模型,因此,这种方法对
于某种学习模型往往更容易找到好的结果。
嵌入式:嵌入式方法将学习算法与特征选择部
分进行结合,这类方法所考虑的函数模型的结构在
其中起重要作用 [6] 。但是对于嵌入式方法而言,建
立合适的函数优化模型往往是一项艰巨的任务 [7]
特征选择是一个复杂的问题,对于一个有 n
特征的数据集,可能的解决方案的总数是 2 n -1 [8]
其搜索空间十分庞大。因此,用穷举搜索选择一组
最优特征的时间复杂度是 O(2 n ) [9] ,这在大多数情况
下是不切实际的。与传统方法相比,基于演化算法
的特征选择方法更适合于解决这种问题。
本文设计了一种基于随机二元蚁群网络的特征
选择方法,更换了启发式因子的计算方法,并提出 了一种新的信息素更新思路,将整体的信息素量子
化,赋予每个信息素生命周期,形成了量子化蚁群
特征选择算法( QPACO )。本文的其余部分如下 :
第一部分介绍相关工作,第二部分介绍基于 QPACO
的特征选择方法,第三部分展示实验结果并分析,
第四部分总结。
1 相关工作
近年来,基于演化计算的特征选择算法受到了
广泛研究, Xue 等人在文献中指出,最近已经有超
500 篇的基于演化计算的特征选择算法发表 [1]
1.1 基于演化算法的特征选择算法
基于演化计算的特征选择算法的研究近年来取
得了较为令人满意的结果。如 Rashedi 等人提出了
通过增强传递函数克服停滞问题的 IBGSA [10]
IBGSA 将二进制向量每个位与一个特征相关联,通
过寻找最优二进制向量找到特征选择的最优解;
Chuang 等人在二元粒子群算法 BPSO 中引入鲶鱼效
应提出了 CatfishBPSO [11] CatfishBPSO 将局部最优
中的粒子通过鲶鱼效应引导到新的搜索空间,同时
使用种群中最差的适应值替换 10% 的原始粒子,最
终避免了局部最优,进一步获得了更好的解; Il-Seok
等人提出了一种新的混合遗传特征选择算法
BGA [12] ,他们在该算法中设计局部搜索操作并将其
加入 GA 中以微调搜索过程,这种操作会根据其微
调效率进行参数化,并分析和比较它们的有效性和
时序性要求。
1.2 基于蚁群算法的特征选择
本文主要讨论基于蚁群算法的特征选择算法。
蚁群优化( ACO )是 Dorigo 等人提出的一种演化算
[13] 。蚂蚁之间的通信会产生正反馈行为,引导蚁
群收敛到最优解。蚁群路径上分布的信息素模拟了
真实蚂蚁所经过的路线上的化学物质 [14]
蚁群算法( ACO )解决特征选择的主要思想是
将问题建模为求解搜索图的最小成本路径问题,创
建一个包含节点的搜索空间并设计一个程序来寻找
解决方案的路径,蚂蚁的路径表示特征的子集。
ACO 基于信息素和启发式信息计算蚂蚁选择解路
径的转移概率。 Chen 等人使用这种类型的 ACO
行特征选择,提出了 ACOFS [15] ACOFS 中使用了
F-score 标准作为启发式值,但采用了不同的信息素
更新策略; Kashef 等人提出了一种优化的二进制蚁
群算法 ABACO [16] ,该算法的不同之处在于每个特
征都有两个节点,一个节点用于选择,另一个用于
取消选择相应的特征,最优特征子集是满足遍历停
止条件的最小节点数的蚂蚁遍历图。
与上述蚁群特征选择算法相比,本文提出的
QPACO 算法,采用了新的启发式因子的计算方法,
改变了传统的信息素的更新策略,避免了搜索特征
时的局部最优,提高了特征选择的精度。
2 QPACO 算法
2.1 基于蚁群的特征选择算法
基于蚁群的特征选择算法首先构造了由 n 个特
征组成的有向图,算法假设蚂蚁在初始时刻被随机
放置在 n 个特征节点中,并维护一张禁忌列表记录
每只蚂蚁已经访问过的节点,每条边的信息素 i , j τ
始值为 0 ,蚂蚁依据边上的信息素计算在 t 次迭代
时,蚂蚁 k 从特征 i 移动到特征 j 的概率(公式 1 ):
 
其中, S 是蚂蚁 k 的禁忌列表; α 是信息启发
因子; β 是期望启发式因子,用于分配启发式信息
和信息素浓度的权重; η i , j 是启发式信息,通常计
算为(公式 2 ): 
y 之间的边
ix jy )上的信息素; η i x, j y 反映了边
缘( ix jy )可取性的启发式信息; α
β 是确定信息素值和启发信息的两个参
数。
7 q 为信息素模拟消失常量, old τ 为原来的
信息素值, new τ 为更新后的信息素值,
τ 为信息素变化量。
8 dead τ 为在该次迭代中生命周期结束的信
息素量,其余符号意同公式( 7 )。
9
m
τ 为该条路径上所有的蚂蚁所留下
的信息素总和, k τ 为该条路径在本次
迭代( k 次迭代)时的更新量, k - cnt τ
cnt 次迭代前该条路径上的信息素更新
量,需注意这三者间的区分。 cnt 变量即
为我们最初所说的信息素单元的生命周
期。
10
c 是类别的数目, N 是特征的数目; k N i
k k=1 2 C )类中的特征 i i=1
2 n )的样本数;
k
ij x
k 类中的特
i j j=1,2 k N i )次训练样本;
i x 是所有类的特征 i 的平均值; ki x k
类中样本的特征 i 的平均值
11
n 是特征的总数,变量 ξ (0,1) 的常数。
2 QPACO 伪代码
Table 2 Pseudo code of QPACO
Algorithm QPACO(dataset, dataclass, t_per,
iteration)
输入:数据集、数据集类别、数据训练分割百分
比、迭代次数( dataset, dataclass, t_per, iteration
输出:拥有最高适应度的最优特征子集 1. Procedure QPACO
2. 检验读入数据
3. 初始化 alpha, beta, T0=0, MinT, MaxT (信息素
值的上下限)
4. 置信息素初 tau 是值为 T0
5. for i=1 to iteration do
6. 运用公式 10 11 计算启发式信息
7. 运用公式 6 计算每只蚂蚁在每条路上的选择概
8. 运用公式 9 更新信息素 tau
9. 记录 tau 的更新量 delta_tau
10. 评估构造子集并选择局部最优和全局最优子
11. End for
12. 返回拥有最高适应度的最优特征子集
3 实验结果与分析
3.1 实验数据与对比算法
我们从 UCI 数据库中选择了一些典型的数据集
对算法进行验证。表 3 列出了这些数据集的名称、
分类数、特征数、样本数。
 
为了更好的展现算法的可比性,我们选择了一
些具有代表性的特征选择算法与我们的算法进行比
较,其中包括 Catfish BPSO [11] 、二元遗传算法( BGA
[12] 、改进二元引力搜索( IBGSA [10] 、基于蚁群的
特征选择算法 ACOFS [15] ABACO H [18] 、较新颖高
效的改进的森林优化特征选择算法 IFSFOA [19] 和二
元蝴蝶优化特征选择算法 S-bBOA [20] 等。
3.2 实验环境、评估指标及实验参数
3.2.1 实验环境
实验中,我们使用了 python 3.6 实现了我们的
算法,同时使用了公开的工具包 scikit-learn 。所有
实验均在一台配置为 Intel Core i5-4210H CPU )、
8G 内存、 1TB 硬盘的电脑上完成。
3.2.2 评估指标
在本实验中,我们使用分类精度 (accuracy) 、精
确率( precision ),召回率 (recall) 和维度缩减率
(feature-reduction, fr) 来评估我们所提出的算法性
能。
分类精度 (accuracy) ,即正确分类的样本数和测
试集的总样本数的百分比,其定义如下(公式 12 ):
( )
测试集的总样本数
正确分类的样本数 分类精度 = 12
精确率( precision )和召回率 (recall) 如下(公式
 
其中, TP i 是第 i 类下正确分类的测试样本数;
FP i i 类下错误分类的测试样本数; TN i 是在其
他类别下正确分类的测试样本数; FN i 是在其他类
别下错误分类的测试样本数。
定义维度缩减率 (feature-reduction, fr) 如下(公
15 ):
15
nn
- p
Fr =
其中, n 是总特征数, p 是算法所选择的特征数。
3.2.3 算法参数设置
QPACO 与其他算法的对比实验中,我们统
一设置了算法的一些参数,它们的设置为:所有算
法的种群数量和迭代次数为 50 ;在每次实验中,
60 %的样本随机选择进行训练,剩下 40 %的样本用
于测试;实验结果在每个数据集和算法中独立运行
超过 20 次,最后统计平均值;蒸发系数 ρ 0.049
每条路径上的最小和最大信息素强度分别设定为
0.1 6 ;每个边缘的初始信息素强度设定为 0.1 α
β 是决定信息素和启发信息的相对重要性的两个
参数,我们设 α=1 β=0.5 ;在分类器的选择上,
们使用了 K 近邻( KNN )分类器作为基分类器。
之所以使用 KNN 是因为它是一个通用简便的分
类方法,并且由于 KNN 分类器相较于其它分类
器来说,并不需要调整过多的参数,因此较容易
进行对比实验来验证特征选择算法的性能。最近 提出的许多特征选择,也都只使用了 KNN 作为
唯一的基分类器 [21-23] 。在实验中我们将参数 K
置为 1
3.3 实验结果与分析
3.3.1 实验结果
为了确保对比实验的准确性,表 4 与表 5 中的
部分数据结果采用了文献 [18] 中公开发表的实验结
果,表 4 QPACO 与其对比算法在不同数据集上
的分类精度的对比,括号中的数字表示了在各个数
据集上每种算法性能的排名。表 5 QPACO 与其
对比算法在不同数据集上的精确率、召回率及维度
缩减率的对比,最后一列为每个算法在所有数据集
上的指标和,和越大说明算法总体性能越好。
3.3.2 实验分析
QPACO 在时间效率上是基本等同于二进制蚁
群算法的,在算法的改进过程中,计算和记录每次
信息素的更新量,以及查找生命周期结束信息素量
的时间复杂的都是 O(1) 的,因此时间上的开销差距
并不明显,所以本文遵从了相关的基于演化计算的
特征选择方法的实验设计模式,并未采用时间效率
来衡量算法性能 [18-24] ,但计算了其它常用的评估指
标进行算法间的对比。
对比分类精度,在表 4 中我们不难看出, QPACO
Glass Iris Letter Shuttle Spambase Waveform
Wisconsin 这些数据集上均位居第一,在 Tae Wine
Yeast 上位居第二,只在 Vehicle 上稍显逊色。因
QPACO 在分类精度上有了很明显的提升。通过
对比表 5 中的精确率、召回率以及维度缩减率,我
们发现 QPACO 算法在大多数情况下精确率和召回
率都略高于其他算法,且维度缩减率维持在平均水
平以上。
4 QPACO 及其对比算法的平均分类精度对比
 
5.478 4
本文提出了基于传统蚁群算法和二进制蚁群
算法的量子化蚁群特征选择算法 QPACO QPACO
中将信息素量子化,赋予每个信息素单独的生命周
期,同时修改了启发式因子的更新方式,增强了算
法的搜索能力。经过 11 个数据集和 12 个特征选择
算法的对比实验,验证了 QPACO 良好的性能。如
何在高维数据集中应用 QPACO 进行特征选择问题
的求解,将是下一步重点研究的内容。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/575604
推荐阅读
相关标签
  

闽ICP备14008679号