摘要

摘要-特征选择(FS)是一种重要的数据预处理技术,它通过选择相关特征的一个小子集来提高学习性能。然而,由于其巨大的搜索空间,它也具有挑战性。近年来,竞争群优化器(CSO)由于其潜在的全局搜索能力,在FS中显示出了良好的结果。CSO的主要思想是随机选择两个解决方案,然后让失败者(更差的适合度)向获胜者学习(更好的适合度)。虽然这种搜索机制提供了较高的人口多样性,但由于不能保证赢家的质量,因此它有产生不合格的解决方案的风险。在这项工作中,我们提出了一个受约束的CSO进化机制,它验证了所有粒子的质量,并让不可行(不合格)解从可行(合格)解中学习。我们还提出了一种新的局部搜索和一个大小变化算子,以引导种群搜索具有相似或更好的分类性能的更小的特征子集。提出了一种基于支持向量机的代理模型,以帮助局部搜索和大小变化算子在不需要大量计算资源的情况下探索大量的潜在特征子集。在24个真实数据集上的研究结果表明,与现有的进化计算(EC)和非EC基准算法相比,该算法可以选择更小的、具有更高分类性能的特征子集。

前言

在机器学习中,分类是一项重要的任务,它根据实例的特征对对象/实例进行分类。分类性能强烈地依赖于数据特征[1]的质量。在许多分类问题中,实例是由一组大量的特征来描述的,也被称为高维数据。例如,文本数据或基因表达数据集可以有数千个特征。现有的分类算法处理这种高维数据具有挑战性。高维数据通常由冗余/不相关的特性组成,这些特性提供了关于类标签的冗余信息,甚至是误导性的信息。这些特征严重降低了分类模型[2]的效率和准确性。此外,由于“维数诅咒”,当特征数量增加时,有效地训练分类器需要指数增加的实例数量[3],[4]。特征选择在处理高维数据中起着至关重要的作用。其主要思想是通过去除所有不相关和冗余的特征[5]来选择相关和互补特征的子集。特征选择方法通常由两个主要组成部分组成:搜索机制和评价准则。搜索机制负责生成由评价准则评估的候选特征子集。

虽然特征选择提供了许多好处,如避免密集的计算成本,提高分类性能和数据紧凑性,但它拥有巨大的搜索空间,需要一个有效的搜索机制[6]。与传统的搜索机制或穷举等搜索方法相比,进化计算(EC)由于其潜在的全局搜索能力[2],在探索如此巨大的搜索空间方面更有效。在各种EC技术中,粒子群优化(PSO)由于其简单和效率[7]-[11]从特征选择社区获得了更高的吸收。Cheng和Jin提出了PSO的一种变体,称为竞争群优化器(CSO),它扩展了PSO在大规模优化问题[12]上的工作能力。Gu等人的[7]研究表明,CSO在应用特征选择时优于规范PSO,因为CSO通常具有更多样化的种群,从而具有更好的探索能力。因此,我们在本工作中利用CSO来实现特征选择。

除了大的搜索空间,由于特征之间的复杂交互,特征选择也具有挑战性。例如,仅选择强相关的特性可能会产生冗余,因为所选择的相关特性可能提供有关类标签的相同信息。尽管每个特征提供的信息很少,但个体弱相关特征的子集可能提供高度区分的信息,称为互补特征[2]。评价准则必须考虑特征交互,以找到尽可能接近最优的特征子集。根据评价标准,特征选择可分为三大类:过滤器、嵌入式和包装式方法[2]。滤波器方法基于内在的数据特征来评估特征子集,这些特征子集独立于任何分类算法。嵌入式方法将特征选择过程和分类器的训练过程纳入到一个单一的学习过程中,从而可以通过学习到的分类器获得所选择的特征。相比之下,包装器方法通过训练一个基于特征子集的包装分类算法来评估候选特征子集。利用所得到的分类器的分类性能来衡量特征子集的优度。与过滤器和嵌入式方法相比,包装器方法通常表现得更好,因为它们经常考虑所选择的特征和包装的分类算法[1]之间的相互作用。因此本文想发展一种包装分类算法。

A 动机

PSO通过保持一个并行探索搜索空间的粒子群来解决一个优化问题。典型的PSO和CSO之间的关键区别在于它们更新粒子的方式。标准PSO允许每个粒子向粒子发现的最佳位置(即pbest)和整个粒子群发现的最佳位置(即gbest)移动。相比之下,CSO不是保持两个最佳位置,而是迭代地选择两个随机解并比较这两个解。失败者(更糟)的解转向获胜者(更好)的解,获胜者直接添加到下一代。虽然CSO的搜索行为增加了粒子群的多样性,但可能存在赢家不是一个好的解的风险。因此,向好赢家前进可能会导致另一个不好的解,计算资源被浪费。问题是如何在保持多样性的同时发展更有希望的解。

此外,研究表明,将PSO与局部搜索相结合可以提高特征选择[13]-[15]的性能。PSO可以快速定位有前途的区域,而局部搜索可以快速定位该区域内的最优解。这种组合有利于有大而复杂的搜索空间的问题,如特征选择[2]。特征选择的本质是做出二元决策,即选择或删除特征。因此,最适合进行特征选择的局部搜索技术之一是翻转少量的位置元素,即将特征的决策从选择变为未选择,反之亦然。而在现有的基于局部搜索的特征选择方法中,被选择的特征和未被选择的特征具有相同的翻转概率。我们稍后将展示,这种翻转机制更有可能导致一个更大的特征子集。此外,如何评估新生成的特征子集是局部搜索中的一个关键问题。使用分类性能作为指标具有良好的性能,但需要不合理的计算成本[15]。因此,设计一个有效的、高效的特征选择的局部搜索仍然是一个有待解决的问题。

过早收敛是PSO的一个常见问题,特别是在处理高维数据时。最近,Tran等人[14]提出了一种长度变化机制,通过迭代收缩所选择特征的特征集,有效地避免了过早收敛的问题,并显著减少了候选特征子集的大小。虽然取得了很好的结果,但长度变化机制需要对这些特征进行排序。在收缩过程中只考虑排名最高的特征,由于排除了一些特征组合,这可能会限制性能。此外,长度变化操作需要一个预定义的粒子群划分数量。

贡献

为了解决上述问题,我们提出了一种新的基于cso的特征选择算法,其主要贡献如下:

  • 我们提出了一个性能约束,其中只有优于性能阈值的粒子被认为是可行的粒子。演化过程被修改,使较差的粒子不仅从更好的粒子中学习,而且从可行的粒子中学习。因此,与标准的CSO相比,较差的粒子被引导到更有前途的区域。在所提出的约束机制中,性能阈值对平衡种群质量和多样性起着至关重要的作用。一个严格的约束,即一个高性能阈值,导致整个种群向极少的可行粒子移动,从而降低种群多样性。相比之下,一个松散的约束,即一个低性能的阈值,可能无法提供足够的压力来改善人口质量。为了解决这一问题,我们提出在进化过程中动态更新阈值,以平衡种群多样性和种群质量。
  • 提出了一种具有非对称翻转算子的局部搜索方法来搜索具有更好分类性能的较小特征子集。非对称一词指的是特征从被选择到未被选择的翻转概率不等于特征从未被选择到被选择的翻转概率。我们合并了Relief [16],一个著名的过滤措施,以提高局部搜索的有效性。
  • 提出了一种新的尺寸变化算子来克服过早收敛的问题。所提出的网格网格操作员利用救济分数,根据最佳粒子所选择的特征的数量,重新初始化种群。尽管Relief分数优先考虑了那些更相关的特性,但在重新初始化过程中,那些不太相关的特性仍然有轻微的机会被选择。因此,所提出的尺寸变化算子解释了弱相关特征之间的互补相互作用。
  • 为了方便所提出的局部搜索和大小变化算子,我们建议建立一个基于SVM的代理模型。代理模型是一个SVM分类器,它将两个特征子集之间的差值作为输入,然后输出更好的特征子集。代理模型允许局部搜索和大小变化操作符执行大量的试验,而不会造成密集的计算时间。为了提高代理模型的性能,在进化过程中,我们不断更新用于训练代理模型的代理训练集。

背景

A 特征选择

特征选择旨在通过去除不相关和冗余的特征来提高分类性能。一种典型的特征选择算法使用搜索机制迭代地生成候选特征子集,然后使用评估准则对生成的子集进行评估。过滤特征选择方法主要使用三个常见的标准:基于统计的度量、基于相似度的度量和基于信息的度量[1]。CFS (correlation-based Feature Selection)[17]是基于统计的度量的代表,其主要思想是使用一种基于相关性的启发式方法来度量特征类相关性和特征(Feature)的相关性。其目标是找到一个与类标签有强相关性和特征之间有弱相关性的特征子集。CFS利用最佳搜索策略来有效地寻找局部最优特征子集。mRMR(最小冗余最大相关性)[18]是一种众所周知的基于信息的方法,它利用突变信息来测量特征相关性和特征冗余。然而,只考虑成对的相互作用。

ReliefF [19]是基于相似度的度量的代表,它选择特征从不同的类中分离实例。该算法基于最近邻的概念来对所有特征进行排序。如果来自不同类的两个最近的实例之间的特性值差异很大(一个“错过”),那么它的分数就会增加,因为该特性可能有助于分离不同的类。相反,如果来自同一类的两个最近的实例之间的特征值差异很大,那么它的分数就会降低,因为该特征似乎会将实例与同一类分开,这可能会降低分类性能。因此,越好(排名第一)的Relief分数越大。通过随机选择个实例实现,根据以下公式计算特征的Relief分数:

其中c是类标签的数量;分别是实例在同一个类和类y中最近邻实例。分别为的大小。是一个距离函数,是实例在类y中所占的比例。由于Relief是一种有效和有效的过滤度量,我们将利用它来衡量这项工作中的特征相关性。

近年来,基于稀疏性的方法由于其良好的性能和可解释性而受到特征选择界的广泛关注。其主要思想是建立一个系数矩阵,从特征数据映射到类标签。目的是通过最小化稀疏正则化项来最小化分类误差。正则化项迫使许多特征系数非常小,这样的特征可以被删除。RFS(鲁棒特征选择)[21]是早期基于稀疏的特征选择算法之一,它使用范数作为分类误差和正则化项,不仅选择特征,还避免异常值。随后,Peng和Fan [22]提出了一个一般的稀疏性特征选择框架(GFS),该框架优化了一个范数拟合误差和一个范数(0 < p≤1)正则化项。结果表明,范数可以避免异常值,而范数可以进一步增强学习模型的稀疏性,从而选择更少的特征。但是,GFS需要根据所有特征的权重系数对其进行排序,然后选择排名最高的特征,这存在选择冗余特征的风险。Fan等人[23]使用范数直接优化二进制决策向量和系数矩阵。二进制向量的目标是选择包含k个特征的顶部子集,而不是选择k个顶部特征。该算法被称为TKFS(Top k特征选择),比RFS具有更好的性能。Wang等人[24]提出了SDFS(稀疏判别特征选择),该方法使用跟踪比率矩阵来避免调整损失项和正则化项之间的权衡参数。现有的基于稀疏性的特征选择算法的主要局限性是涉及复杂矩阵算子(乘法、逆等),它们不能很好地扩展数据集的大小。与嵌入式方法和过滤器方法相比,包装器方法通常能获得更好的分类性能。因此,在这项工作中,我们专注于开发基于包装器的特征选择。

B 基于EC的特征选择

EC由于其潜在的全局搜索能力[2],[5],已被广泛应用于特征选择。EC不需要其目标函数(也称为适应度函数)是可微的,因此它可以采用大部分的评价标准作为其适应度函数。遗传算法(GAs)是最早应用于特征选择的EC技术之一,因为它的二进制表示可以自然地显示一个特征是否被选择为[25]-[29](自己可以用的)。其他新兴的EC技术也被用于特征选择,例如,蚁群优化(ACO)[30]和差分进化(DE)[31]-[33]。在这些技术中,粒子群优化(PSO)随着越来越多的论文使用PSO进行特征选择而最受关注[2],[5]。过滤器和包装措施都已在PSO中使用,有良好的结果[15],[34]-[37]。在[2]中可以看到对现有的基于PSO的特征选择算法的一个全面的综述。

虽然PSO以快速定位有希望的区域而闻名,但它可能不能很好地利用这些区域来定位最优区域,特别是在特征选择[38]的大而复杂的搜索空间上。因此,在PSO中添加局部搜索可以进一步提高其性能。例如,Tran等人[39]提出去除高度相关的(因此是冗余的)的特征,然后添加更多相关的特征来改进pbest,这是PSO中每个粒子发现的最佳位置。Nguyen等人[35]也提出了类似的想法,但局部搜索是提高gbest,在PSO中整个游泳发现的最佳位置。最近,基于翻转的局部搜索被提出通过翻转少量的位来搜索一个很有前途的特征子集,这显著提高了[14],[40]的性能。然而,这种翻转算子倾向于产生更大的特征子集,这将在本文后面展示。此外,局部搜索需要更多的计算资源,这增加了总体计算成本,特别是当使用分类性能来评估新生成的子集时。在这项工作中,我们将提出一个非对称翻转算子,它倾向于产生更小的特征子集。此外,提出了一种基于支持向量机的代理模型来辅助局部搜索,在不增加计算成本的情况下检查大量的周围子集。

在PSO中,粒子向gbest和pbest移动,这通常会导致过早收敛的问题,即整个粒子群被困在局部最优状态。Mistry等人的[13]通过增加种群多样性来解决这个问题。其思想是由一个与gbest相关性最低和最高的粒子组成的小次级粒子群,这样算法就可以在开发和搜索之间取得平衡。竞争群优化器(CSO)[12]已经提出了一个去除gbest和pbest的思想。CSO允许任何一对解决方案进行竞争,然后相互学习,这也提高了种群的多样性。Gu等人的[7]研究表明,CSO在特征选择方面取得了很好的结果。CSO通常具有较高的种群多样性,这使得它可以很好地处理特征选择等搜索空间较大的问题。然而,CSO的成对机制可能允许一个粒子从其他不好的粒子中学习,这可能导致低种群质量。在这项工作中,我们提出了一种受限的机制,允许CSO不仅具有高种群多样性,而且具有高种群质量。

提出的方法

本节首先描述了基于ec的特征选择的基本元素表示和适应度函数。然后介绍了特征的约束选择、基于不等翻转算子的局部搜索、对称算子和基于SVM的代理模型。最后给出了总体的CCSO(受约束的CSO)。

A 表示和适应度函数

1)表示:给定一个具有D特征的训练集,每个粒子的位置用一个D维向量表示,其中每个元素对应于一个原始特征。元素值在范围[0,1]内,表示是否选择了相应的特征。如果元素值大于阈值θ,则选择相应的特征,否则,将丢弃该特征。我们将θ设置为0.6,这鼓励总体从相对较小的特征子集开始。这种设置已被广泛应用于基于PSO的特征选择[35],[40],[41]。

2)适应度函数:候选特征子集S的适应度值根据以下公式计算:

其中,为训练集上的分类错误率,|S|为S的大小,控制错误率和选择率的贡献(|S|/D)。在特征选择中,错误率通常比特征比更重要。因为,降低特征比要比降低错误率要容易得多。使用特征比的小权重可以使进化过程更多地关注降低错误率。因此,α被设置为0.98,这也是特征选择[35],[40]中的常见设置。

B 限制竞争群优化器(CCSO)

CSO的一个好主意是随机选择两个候选解决方案,然后让它们进行竞争。失败者(较差的粒子)将向获胜者(较好的)的粒子移动。这种想法增加了种群多样性,这对于大型和复杂搜索空间的问题特别有用,如特征选择[7],[12]。然而,获胜的粒子不一定是一个好的解决方案,而移动失败者的粒子可能不会得到一个好的解决方案。为了解决这个问题,我们建议在让失败者跟随获胜者之前验证获胜者粒子的质量,我们称之为约束CSO(CCSO)。

1) 对获胜者的约束:其想法是设置一个基于适应度的约束来验证获胜者的质量。特别是,如果它的适合度不高于一个被称为的适合度阈值(而不是更差),那么获胜者就是好的。假设总体P由m个粒子组成,即。在每次迭代开始时,定义了一组适应度值不高于的可行解()。按照CSO的思想,将P分为m/2对,然后在每对对中的两个粒子之间进行竞争。对于每一对粒子,分别表示赢家和输者。在标准的CSO中,将从中学习。相比之下,所提出的CCSO算法首先验证了,结果有两种情况:

  • 如果的适应度不高于(而不是更差)(即是一个可行的解),则将直接添加到下一个种群中,而作为其学习粒子。在本例中,只需要更新
  • 如果的适应度大于(即是一个不可行的解),则认为不足以引导。在这种情况下,都需要学习。它们的学习粒子是从可行的集合中随机选择的。请注意,这两个学习粒子是保持种群多样性的两种不同的解决方案。

以下学习策略应用于解和它的学习目标。首先,用以下公式对在t代的速度进行更新:

其中是三个随机生成的向量,相邻解的平均位置。的位置以新的速度进行更新:

图1显示了CSO和CCSO之间的差异。问题是如何定义阈值

2) 定义在CCSO中扮演着重要的角色。如果太大,将会有许多可行的,但没有足够好的粒子直接传递给下一个种群。因此,粒子群的质量并不能得到保证。另一方面,如果太小,可行粒子的数量就非常小。因此,由于大量的不可行粒子会向少数可行粒子移动,所以不能保证种群的多样性。我们建议使用粒子群适应度值的中值作为。因此,在进化过程中,可以适应当前数据集和种群质量。建议的策略具有以下优势:

  • 将为每个特征选择数据集自适应地定义,它不需要任何先验知识。
  • 在早期的迭代中,由于是适应度值的中值,50%的种群是不可行解,50%的种群是可行解。因此,平均而言,每个不可行解都有其独特的可行的学习解,这仍然保证了较高的种群多样性。
  • 随着种群的进化,会产生更好的粒子。如果阈值在进化过程中是固定的,则是基于通常质量不佳的初始种群。因此,一个固定的值导致一个易于约束,并且整个种群将很快变得可行,从而使所提出的算法变成标准的CSO。因此,基于中值适应度值动态更新可以使进化过程中对生成的约束更加严格,从而不断地对种群施加压力,以产生更好的粒子。
  • 最后,大多数粒子(通常超过种群的50%)以相同的适应度值收敛到相同的位置,并为设置适应度值。剩余的不可行粒子移动并利用收敛位置的周围区域。因此,并不阻止种群的收敛。

C 基于非对称翻转的局部搜索

为了提高该算法的性能,我们提出了一种局部搜索方法来提高顶级粒子的质量。应用翻转算子是基于PSO的特征选择[14],[40]中最常见的局部搜索技术之一。首先,将连续向量转换为一个二进制向量,其中1表示选择特征,0表示丢弃特征。这个想法是将几个位(从选择的(1)转换为未选择的(0),反之亦然),以搜索一个更好的特征子集。

1) 0位和1位的翻转概率:大多数,现有的工作对被选择的位和未被选择的位使用相同的翻转率。研究表明,使用相同的翻转率更有可能产生更大的特征子集。特别是,假设有个0位和个1位,翻转概率为p。平均而言,从0翻转到1的位数为,从1翻转到0的位数为。因此,在翻转操作符之后,1位的平均值(对应于所选特征的数量)为:

由于翻转算子应用于高质量的特征子集,通常选择少量的特征,所以通常大于,即。因此,翻转算子会产生更大的特征子集,其中可能包含更多的冗余/无关的特征。

为了解决上述问题,我们提出了一个非对称翻转算子,其中从1到0的翻转概率远远大于从0到1的翻转概率。特别是。因此,翻转算子更有可能产生更小的特征子集。

2) 相同位类型的翻转概率:除了0位和1位之间的不同翻转概率外,我们还考虑了相同类型的位之间的不同翻转概率。特别是,在当前的1位中,对应于更相关特性的位应该不太可能被翻转,也就是说,不太可能删除高度相关的特征。相比之下,在当前的0位中,对应于更相关特性的位应该更有可能被翻转,即更有可能添加高度相关的特性。我们用来表示特征的相关分数。

给定位,它们的累积翻转概率为。我们建议根据相关分数对累积翻转概率进行分割,如下式所示:

其中,是一个未被选择的特征的索引,特征的翻转概率。

同样,不同的1位根据其对应特征的相关性分数,具有不同的翻转概率,如下式所示:

请注意,我们使用了,这样被选择的和更相关的特征被翻转或移除的机会就更小了。在这项工作中,我们使用relief作为相关的分数,因为它已被广泛用于实现特征选择[43]。此外,relief基于最近邻的想法,很适合包装的KNN算法。

3) 摘要:我们提出了一种基于非对称翻转算子的局部搜索来提高种群质量。当L次评价的最佳解没有改进时,将局部搜索应用于总体的前的粒子/候选子集,即局部搜索中涉及的个子集。对于每个候选子集,局部搜索最多运行次代(m是总体大小),并且每次迭代生成一个新的候选子集。如果新子集更好,当前子集将被新子集取代,本地搜索立即停止。在最坏的情况下,对于子集,有新子集被评估,这导致了非常密集的计算成本。在这项工作中,我们提出了一个基于SVM的代理模型,它可以快速地比较当前的子集和新的子集,而不需要使用昂贵的评估。因此,不需要使用适应度函数来计算m*m个新的子集。首先,代理模型比较了新的子集和当前的子集。如果有一个新的子集可能比基于代理模型的当前子集更好,则停止循环。然后用等式给出的适应度函数进行评估,如果达到更好的适应度值,则替换当前子集。由于局部搜索是在个顶部子集上执行的,所以最多有的子集由适应度函数进行评估。总之,虽然生成了个新的子集,但我们只需要运行次的适应度函数。局部搜索运算符的伪代码显示在中。关于代理模型的更多细节将在后面提供。

D 尺寸变更操作

早收敛是粒子群算法的一个常见问题,特别是在处理大而复杂的特征选择搜索空间时。我们提出了一个大小变化算子来避免过早收敛问题,通过重新初始化人口到更有希望的区域和更少的特征。具体思想解释如下。

当SC计算的最佳解不改变,这表明出现了一个过早的收敛时,大小变化算子将启动并重新初始化整个总体。最佳特征子集的大小被用作重新初始化过程的上界。特别是,对于每个粒子,生成一个随机数量的特征。然后,生成m个新的候选特征子集(m个是种群大小),并使用最好的一个来重新初始化个体。通过对原始特征集进行轮盘赌轮选择,形成了新的候选特征子集。选择一个特征的几率取决于它的Relief分数。越相关的特性就有更高的机会被选择。因此,即使是弱相关的特征也被考虑选择。大小变化运算符的伪代码显示在中。

总的来说,有新子集,这也是耗时的评估。为了加快这个过程,我们使用了基于SVM的代理模型,它也用于本地搜索操作。请注意,尽管整个总体都被重新初始化了,但迄今为止的最优解仍然被记录下来。此外,过去的搜索体验也存储在SVM代理模型中,该模型是基于过去的解决方案对之间的比较而构建的。由于代理模型是在重新初始化过程中使用的,因此过去的经验实际上有助于有良好的重新初始化总体。下面的小节更详细地描述了代理模型。

E 基于SVM的代理模型

在提出的局部搜索和大小变化算子中,常见的关键步骤是比较两个候选特征子集。在本地搜索中,将新生成的子集与当前子集进行比较。在大小变化操作符中,新生成的子集将与每个子集进行比较
另一种方法是找到重新初始化粒子的最佳方法。使用Eq.(2)中的适应度函数评估所有生成的子集是计算密集型的。因此,我们提出了一个基于svm的代理模型,快速比较一对特征子集。

1) 代理模型的输入和输出:代理模型的目标是预测在一对特征子集中,哪个特征子集更好。因此,我们将这个问题表述为一个分类问题,并用类标签来说明哪个子集更好。假设我们想快速比较两个特征子集,分别由两个二进制向量表示。由于两个特征子集之间的性能差异主要取决于两个特征子集不一致的特征,而不是两个特征子集一致的特征,因此我们使用两个对应的二值向量之间的差异作为所提分类模型的输入。注意,这两个向量都是D维向量,其中D是原始特征的数量。然后,差分向量的计算方法为:

因此,的长度也是D,其每个元素都对应于一个原始特征。的元素值有三个可能的值: -1、0和1。值-1表示相应的特征被选择,而没有被选择。而如果值为1,则表示对应的特征不是由选择的,而是由选择的。值为0表示对相应的特征具有相同的决策。因此,说明了之间的差异。如果一个特征被同时选中或删除,那么它在中的值为0,因此对分类过程没有贡献。

然后使用作为分类模型的实例,该模型输出两个可能的值:1表示好,0表示否则,也称为二元分类问题。人们可能会想,为什么只有两个标签,而不是三个标签对应的三种情况: 更好,更差,和相同。第一个原因是,如果不如,那么选择而不是是无害的。此外,给定一定数量的训练实例,通常更容易用更少的类标签训练一个更准确的分类模型。此外,两个不同的特征子集很可能有不同的适应度值。因此,相同的情况数比其他两种情况要小得多,这导致了一个更具挑战性解决的不平衡分类问题。因此,我们决定制定一个二元分类问题。一个线性SVM被使用,因为它最初被提出用于一个二元分类问题,并有一个良好的理论基础[44]。

2) 构建代理模型:为了构建基于SVM的代理模型,有一个训练集是必要的,我们称之为代理训练集。请注意,这里的代理训练集与用于执行特征选择的训练集不同。对于每一次迭代,所提出的约束CSO算法形成m/2对候选解(特征子集)进行比较。每一对比较都为代理训练集提供了一个实例。因此,在每次迭代后,代理训练集的大小增加了m/2个实例。图2显示了一个构建替代训练集的例子。

最初,基于SVM的代理模型是基于第一个m/2个实例进行训练的。该模型可以在每次迭代中进行重新训练,但训练代价比较昂贵特别是当代理训练集较大时。请注意,如果太小,则代理模型将更频繁地重新训练。补充资料的IV.C小节表明,不同的值之间没有显著差异。主要原因是代理模型只用于不频繁发生的局部搜索和大小变化运算符。因此,不应太小,以获得更好的效率。此外,每次迭代都会更新代理训练集,从而避免了信息的丢失。

F 整体算法

显示了CCSO的总体伪代码。首先,利用基于适应度的阈值来分离可行解和不可行解。每个不可行解从可行解学习,(第15-18行),或随机选择可行方案(第20-23行)。此外,SVM-based代理模型,每评估更新一次,用于两个额外的搜索算子:局部搜索算子被执行当最好的解L次迭代不改变(行32-35)和大小变化算子重新初始化种群如果最好的解不改变SC次评估(行36-38)。当求值次数达到最大时,算法停止,返回最优解选择的特征子集作为最终的特征子集。

实验设计

A 基准数据集

我们在24个数据集上检查了提出的算法,这些数据集来自不同的现实世界应用,如物理(Musk1, QsarAndrogenReceptor, qsaroraltoxiction),文本分类(BASEHOCK, RELATHE),面部图像数据(COIL20,ORL),手写图像(USPS),生物数据(GLIOMA,Brain1),数字/字母识别(Isolet, Gisette),游戏(Chess)和金融(German)。从表一可以看出,24个数据集被选择了不同数量的特征、实例和类。我们希望这些数据集能很好地代表现实世界的分类问题。为了表示方便,四个数据集Movementlibras、MultipleFeatures、QsarAndrogenReceptor和QsarOralTox的数据集后来分别被称为Mov、MFs、QAR和QOT。

B 基准算法

为了评估CCSO的性能,我们将其与六种最先进的基于EC的特征选择算法进行了比较:

  • 用于特征选择的标准CSO[7]。
  • 改进的CSO(MCSO)[45],在大规模优化方面优于CSO。
  • SBPSO [11],它重新定义了PSO的速度和动量概念,以适应二元搜索空间。
  • VLPSO [14],考虑原始特征的不同子集将种群划分为多个部分。在进化过程中,由于长度的变化,特征的数量减少了。
  • PSOEMT [43]应用进化的多任务处理范式来实现特征选择。第一个任务是从所有的原始特征中进行选择,而第二个任务是只从排名最高的特征中进行选择。
  • MIRFDE [46],它将标准化的救济和Fisher分数组合成一个由差分进化(DE)优化的适应度函数。

基于EC的特征选择算法的代码直接从他们的作者那里获得,并使用其原始论文中推荐的相同设置运行。

我们还比较了CCSO与著名的和最先进的非EC特征选择算法,包括:

  • CFS [17]是一种基于相关性的特征选择的代表
  • mRMR [18],一个基于信息的特征选择的代表
  • ReliefF [19],一个基于相似性的特征选择的代表
  • RFS(鲁棒特征选择)[21],通过诱导基于`2,1-范数的稀疏权值矩阵来实现特征选择
  • GFS(一般稀疏性正则化特征选择),通过在损失函数上使用范数,在正则化上使用-范数来扩展RFS
  • SDFS(子空间稀疏性判别特征选择)[24],它集成了跟踪比和由范数形成的结构化稀疏子空间约束
  • TKFS(Top-k监督特征选择)[23],它将范数转换为由交替方向乘子法(ADMM)优化的等效连续优化问题。

非EC特征选择算法本身不能确定所选择的特征的数量,因此我们使用CCSO所选择的特征的数量来确保相对公平的比较。CFS、mRMR和RFS的代码是通过科学工具包特性包[1]获得的。GFS、SDFS和TKFS的代码来自于它们的作者。

C 基准技术

除GLIOMA和Brain1数据集外,其余22个数据集均分为70%作为训练集,30%作为测试集。为了避免特征选择偏差,每个特征选择算法首先在训练集上运行。然后在测试集上检查所选的特征,从而得到一个测试精度。在胶质瘤和脑1上,由于它们的实例数量较少,应用了10倍交叉验证。KNN被用作包装的分类算法,因为已经证明使用KNN的包装器通常选择被推广到其他分类器[47]的特征子集。此外,KNN不具有嵌入式的特征选择能力,因此使用KNN可以更准确地反映特征选择算法的选择能力。邻居数设置为3,以确保效率,同时降低离群值灵敏度。这些设置通常用于特征选择[2],[48]。

由于基于EC的特征选择算法是随机的,因此它们可以独立运行30次。算法通过弗里德曼显著性检验进行比较,其中显著性水平设置为0.05。进一步进行Holm事后分析,在基准算法和CCSO之间进行成对比较。

结果和分析

首先,我们将比较CCSO和标准CSO,以说明每个提出的算子的有效性。然后,我们进一步比较了CCSO与最先进的特征选择算法。

A 与标准CSO和MCSO的比较

为了评估约束进化机制的影响,我们将标准CSO和MCSO与CCSO仅使用约束进化机制进行比较,称为CCSO-C。对于每种算法,每100次评估记录一次最佳适应度值。图3显示了CSO、MCSO、CCSO-C在四个代表性数据集上的演化过程。从图中可以看出,在整个进化过程中,CCSO-C的适应度值始终低于CSO值,这表明CCSO-C始终进化出更好的特征子集。因此,允许不可行(低质量)解从可行(高质量)解中学习比强迫一个解盲目地从另一个解中学习更有益。

与MCSO相比,CCSO-C在整个进化过程中通常能获得更好的适应度值。MCSO的主要思想是使用三竞争机制,允许三个粒子进入竞争,而标准的CSO使用双竞争机制,只允许两个粒子。在这三个粒子中,适合度值最好的粒子被认为是赢家,其余两个粒子是输家。这两个失败者都要向赢家来学习。与CCSO-C相比,MCSO专注于较少的好的解决方案(赢家),从而提高了MCSO的收敛速度。然而,特征选择通常有一个非常粗糙的搜索空间,有许多局部最优,这使得MCSO比CCSO-C更容易被困在局部最优中。

值得注意的是,CSO的主要优势是其较高的种群多样性,这使得CSO能够很好地处理大而粗糙的搜索空间的问题,如特征选择。为了进一步研究CCSO-C是否仍然继承了CSO的高种群多样性,我们还通过平均所有粒子到群质心的欧几里德距离(群中所有粒子的平均位置)来测量其种群多样性。所使用的多样性测量也被称为“群质心周围的平均距离”,这是由奥洛伦达和恩格尔布莱希特[49]推荐的,并在CSO [12]的原始论文中使用。群中心的使用可以避免异常值的影响,从而避免了高标准差[49]。

CSO和CCSO-C的种群多样性如图4所示。在进化过程的前40%中,CCSO-C具有与CSO相似甚至更高的多样性。虽然CCSO-C倾向于比CSO更多地探索一点,但它仍然比CSO获得更好的适应度值。因为,约束的进化过程指导CCSO-C不仅搜索更多的区域,而且搜索比标准CSO更好的区域。之后,CCSO-C的多样性逐渐小于CSO,说明CCSO-C正在向开发的方向迈进。需要注意的是,低多样性并不意味着CCSO-C存在过早收敛的问题,因为它的适应度值仍然在提高。从图3中可以看出,CCSO-C最终仍然比CSO获得更好的适应度值。

综上所述,受约束的进化机制比标准的CSO更好地控制探索和开发,从而获得更好的特征子集。

B CCSO vs完整

表II显示了使用所有特征(“Full”列所示)获得的测试精度,以及SBPSO、VLPSO、PSOEMT和所提算法CCSO选择的特征子集。最准确的数字用粗体标出。W/D/L显示了CCSO比基准算法显著押注(与基准算法相似/更差)的次数,这是从Friedman检验中获得的。表III显示了基于EC的算法所选择的特征数量。在Gisette上,SBPSO, VLPSO, PSOEMT在7天后无法得到结果,所以他们的结果在表格中是N/A。

从表II可以看出,CCSO选择的特征子集在大多数数据集上的分类性能明显优于使用所有特征。在超过一半的数据集上,改进至少为5%。例如,在Madelon数据集上,CCSO比使用所有特性好20%左右。从选取的特征数量上看,CCSO选取的特征多在原始特征的30%以下。结果表明,CCSO可以选择相关特征的小子集,比使用所有特征获得更好的分类性能。

特征选择:A Constrained Competitive Swarm Optimiser withan SVM-based Surrogate Model for Feature Selecton相关推荐

  1. R语言SVM支持向量机模型数据分类实战:探索性数据分析、模型调优、特征选择、核函数选择

    R语言SVM支持向量机模型数据分类实战:探索性数据分析.模型调优.特征选择.核函数选择 目录 R语言SVM支持向量机模型数据分类实战:探索性数据分析.模型调优.特征选择.核函数选择 ​ #SVM基本原 ...

  2. 使用森林优化算法的特征选择

    转自:FeatureselectionusingForestOptimizationAlgorithm Manizheh Ghaemi a,n, Mohammad-RezaFeizi-Derakhsh ...

  3. python利用决策树进行特征选择

    python利用决策树进行特征选择(注释部分为绘图功能),最后输出特征排序: import numpy as np import tflearn from tflearn.layers.core im ...

  4. Java机器学习库ML之二Feature Selection(特征选择)

    机器学习中训练模型的前提必备工作就是特征选择,起到降维和降低计算开销的目的,当然在获取尽可能小的特征子集的同时,应不显著降低分类精度.不影响类分布.保持特征子集的稳定适应性强等. ML库提供了特征选择 ...

  5. 【白话机器学习】算法理论+实战之支持向量机(SVM)

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法A ...

  6. 特征选择:11 种特征选择策略总结!

    Datawhale干货 来源:DeepHub IMBA,编辑:数据派THU 本文约4800字,建议阅读10+分钟 本文与你分享可应用于特征选择的各种技术的有用指南. 太多的特征会增加模型的复杂性和过拟 ...

  7. 机器学习之降维(特征选择与特征提取)

    一.降维技术主要分为两大类:特征选择和特征提取. 基本概念:特征选择:我们可以选出原始特征的一个子集.特征提取:通过现有信息进行推演,构造出一个新的特征子空间. 为什么要降维:    (1)数据的多重 ...

  8. 机器学习实验之肿瘤分类与预测(SVM)

    文章目录 肿瘤分类与预测(SVM) [实验内容] [实验要求] **[数据集]:威斯康星乳腺肿瘤数据集** 加载data文件夹里的数据集:威斯康星乳腺肿瘤数据集 查看样本特征和特征值,查看样本特征值的 ...

  9. 肿瘤分类与预测(SVM)

    文章目录 实验内容:肿瘤分类与预测(SVM) [实验要求] [数据集]:威斯康星乳腺肿瘤数据集 完整代码 实验内容:肿瘤分类与预测(SVM) 采用SVM方法,对美国威斯康星州的乳腺癌诊断数据集进行分类 ...

最新文章

  1. Qt中定时器使用的两种方法
  2. GDB / TUI 模式
  3. Android应用截图嵌入到真实设备
  4. java myeclipse The type java.lang.CharSequence cannot be resolved. It is indirectly referen
  5. linux调用v4l2获取视频,嵌入式Linux:V4L2视频采集操作流程和接口说明
  6. 本地java【动态监听】zk集群节点变化
  7. 【敏感度,查询,裁剪代码实现】差分隐私代码实现系列(六)
  8. java怎么求两组整数的或集_Java面试题(判断集合中是否有两个数的和等于某个给定整数)...
  9. java查看链表指定元素_Java 实例 – 链表元素查找
  10. Windows平台下tomcat+java的web程序持续占cpu问题调试
  11. 新手C#面向对象的学习2018.08.06
  12. python输入10个数字排序案例_介绍十个Python小案例,新手入门就在这里
  13. SVN打开HTML文件,tortoisesvn安装后怎么打开
  14. 【万物互联支持一碰传、多屏协同】第三方非华为电脑安装华为电脑管家
  15. 迭代最近邻ICP算法
  16. en结尾的单词_以en结尾的形容词
  17. 【论文阅读】强化学习与知识图谱关系路径发现
  18. 【Codeforces Round #439 (Div. 2) A】The Artful Expedient
  19. 仿抖音--将图片转化成对应的字符图片
  20. 什么是进程,进程与程序的主要区别是什么?

热门文章

  1. jmeter学习记录(3)jmeter中如何引用变量?
  2. 2017年度总结——三十而立
  3. knn算法python代码_KNN算法原理(python代码实现)
  4. android 华为荣耀v8不能上传视频,华为荣耀V8能拍摄720p视频吗
  5. 百度面试题:判断两棵树是否相等
  6. C#调用WinRAR解压、压缩文件
  7. Dialog-普通对话框-列表对话框
  8. uniapp动态气泡上升效果
  9. Word中添加图片时自动添加图片名
  10. 蔚来即将二次上市 车企跨界排头兵或将再添一员?