一种基于高斯变异的基于对立的长城构建元启发式算法用于特征选择,含MATLAB代码

发布于:2025-03-19 ⋅ 阅读:(12) ⋅ 点赞:(0)

B. 对抗学习

对抗学习(OBL)[48] 是多智能体系统(MAS)领域中的一种新兴概念,灵感来自不同实体之间观察到的对抗动态。对抗概念的提出在2005年标志着一个重要的里程碑,在随后的十年中引起了研究人员的广泛关注。包括优化技术、强化学习、人工神经网络和模糊系统在内的各种软计算算法,已经采用了OBL的原则来增强和提高操作效率。OBL的核心是同时检查当前解及其对抗对应物以实现高效问题解决[49]的基础思想。简单来说,当优化算法旨在发现目标函数的最佳可能结果时,结合候选解及其对立面可以被证明是有利的,从而增强算法的整体有效性。

从2005年1月开始,已有超过400篇关于OBL[48]概念的学术作品发表。这些研究贡献在各种平台中找到了它们的归宿,包括会议、期刊和书籍,所有这些都位于软计算领域。在此汇编中,大约60%表现为期刊论文,38%为会议论文,其余2%为书籍或论文集。

定义1:设 X = ( x 1 , . . . , x D ) X = (x_1, ..., x_D) X=(x1,...,xD)为搜索空间中的候选解,其中 x j ∈ ( L B j , U B j ) x_j \in (LB_j, UB_j) xj(LBj,UBj) j ∈ { 1 , . . . , D } j \in \{1, ..., D\} j{1,...,D} X X X的对立候选解用 X ˘ \breve{X} X˘表示,并通过方程6[49]计算。

X ˘ = L B + U B − X (6) \breve{X} = LB + UB - X \tag{6} X˘=LB+UBX(6)

自从引入了最初的OBL概念以来,一系列作品已经出现。在此背景下,我们深入研究了一种简单而高效的OBL方法,详细见于[23]。该技术作为我们提出的算法中的一个基石,专门设计用于解决FS问题。在接下来的部分中,我们描述了[23]中描述的OBL技术的工作原理。这种方法采用了一对算法,即算法5和6,来计算对比解。目标是最小化函数评估的浪费。这些算法之间的选择取决于当前种群的多样性。当使用方程7计算的多样性超过预定阈值时,执行算法5。相反,如果它低于阈值,则采用算法6。一方面,算法5已经证明其能够通过充分利用对立信息来加速MAS的收敛速度。另一方面,算法6已被证明可以通过部分结合对立信息来增强MAS的多样性。表2总结了算法5和6的定义中使用的参数,以及方程7到15。
 normDiv = 1 N ∑ i = 1 N ∑ j = 1 D 1 D ( X i , j − X ˉ j UB j − LB j ) 2 X ˉ = 1 N ( X 1 + … + X N ) X ˘ i , j = B ( α , β ) × ( UB j − LB j ) + LB j i ∈ { 1 , … , N }  and  j ∈ { 1 , … , D } B ( α , β ) = ∫ 0 1 t α − 1 ( 1 − t ) β − 1 d t α = {  spread ×  peak , mode < 0.5  spread , otherwise β = {  spread , mode < 0.5  spread ×  peak , otherwise spread = ( 1 normDiv ) 1 + N ( 0 , 0.5 ) peak = { ( spread − 2 ) ×  mode + 1 spread × ( 1 − mode ) , mode < 0.5 2 − spread spread + spread − 1 spread ×  mode , otherwise mode = UB j − X i , j UB j − LB j spread = 0.1 × normDiv + 0.9 mode = X i , j − LB j UB j − LB j \begin{align*} \text { normDiv}&=\frac {1}{N}\sum _{i=1}^{N}\sum _{j=1}^{D}\sqrt {\frac {1}{D}\left ({\frac {X_{i,j} - \bar {X}_{j}}{\text {UB}_{j} - \text {LB}_{j}}}\right)^{2}} \tag{7}\\ \bar {X}&=\frac {1}{N}\left ({X_{1}+\ldots +X_{N}}\right) \\ \breve {X}_{i,j}&=\mathbb {B}(\alpha,\beta) \times \left ({\text {UB}_{j}-\text {LB}_{j}}\right)+\text {LB}_{j} \\ &\quad i\in \{1,\ldots,N\} \text { and }j\in \{1,\ldots,D\} \\ \mathbb {B}(\alpha,\beta)&=\int _{0}^{1}t^{\alpha -1}\left ({1-t}\right)^{\beta -1}dt \tag{8}\\ \alpha &=\begin{cases} \displaystyle \text { spread} \times \text { peak}, & \text {mode} < 0.5 \\ \displaystyle \text { spread}, & \text {otherwise} \end{cases} \tag{9}\\ \beta &=\begin{cases} \displaystyle \text { spread}, & \text {mode} < 0.5 \\ \displaystyle \text { spread} \times \text { peak}, & \text {otherwise} \end{cases} \tag{10}\\ \text {spread}&=\left ({\frac {1}{\sqrt {\text {normDiv}}}}\right)^{1+\mathbb {N}(0,0.5)} \tag{11}\\ \text {peak}&=\begin{cases} \displaystyle \frac {\left ({\text {spread} - 2}\right) \times \text { mode} + 1}{\text {spread} \times \left ({1 - \text {mode}}\right)} &, \text {mode} < 0.5 \\ \displaystyle \frac {2 - \text {spread}}{\text {spread}} + \frac {\text {spread} - 1}{\text {spread} \times \text { mode}} &, \text {otherwise} \end{cases} \tag{12}\\ \text {mode}&=\frac {\text {UB}_{j} - X_{i,j}}{\text {UB}_{j} - \text {LB}_{j}} \tag{13}\\ \text {spread}&=0.1 \times \sqrt {\text {normDiv}} + 0.9 \tag{14}\\ \text {mode}&=\frac {X_{i,j} - \text {LB}_{j}}{\text {UB}_{j} - \text {LB}_{j}} \tag{15}\end{align*}  normDivXˉX˘i,jB(α,β)αβspreadpeakmodespreadmode=N1i=1Nj=1DD1(UBjLBjXi,jXˉj)2 =N1(X1++XN)=B(α,β)×(UBjLBj)+LBji{1,,N} and j{1,,D}=01tα1(1t)β1dt={ spread× peak, spread,mode<0.5otherwise={ spread, spread× peak,mode<0.5otherwise=(normDiv 1)1+N(0,0.5)= spread×(1mode)(spread2)× mode+1spread2spread+spread× modespread1,mode<0.5,otherwise=UBjLBjUBjXi,j=0.1×normDiv +0.9=UBjLBjXi,jLBj(7)(8)(9)(10)(11)(12)(13)(14)(15)

D. K-最近邻

K-最近邻(KNN)[50] 是一种简单但有效的机器学习算法,用于分类和回归任务。KNN的工作原理围绕基于邻近度的预测概念展开。给定一个新的数据点,算法根据所选距离度量(通常是欧几里得距离)在训练数据集中识别其 k k k个最近邻。对于分类,将这 k k k个邻居中的多数类分配给新数据点。在回归中,算法计算来自 k k k个邻居的目标值的平均值或加权平均值,以预测连续值。关键假设是相似的数据点可能具有相似的结果。 k k k的值,即邻居的数量,是一个影响算法性能和泛化能力的关键参数。较小的 k k k值会导致更灵活、可能更嘈杂的预测,而较大的 k k k值会导致更平滑但可能过于简化的预测。KNN易于理解和实现,使其成为各种任务的宝贵工具,但由于需要为每个查询点计算距离,其效率可能会随着数据集的增大而降低。

E. 评估指标

在机器学习的分类任务中,使用各种评估指标来评估模型预测的性能[51]。这些指标提供了模型如何对不同类别进行分类的见解,并帮助量化其优势和劣势。这些指标提供了从不同角度对分类器性能的全面视图。选择指标取决于问题的具体特征、类别分布和应用目标。通常建议考虑多个指标,以全面评估模型的性能。以下是分类任务中一些常见的评估指标。

  1. 混淆矩阵

混淆矩阵提供了真正例(TP)——模型正确识别正例,真负例(TN)——模型正确识别负例,假正例(FP)——模型预测正例时应该预测负例,假负例(FN)——模型未能预测正例时应该预测正例的详细分解,这对于计算后续指标至关重要。

  1. 准确率

准确率是正确预测实例与数据集中总实例数的比率。虽然容易理解,但在一个类别主导其他类别的不平衡数据集中,准确率可能不太合适。其数学表达式由方程16给出。

accuracy = TP + TN TP + TN + FP + FN (16) \text{accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} \tag{16} accuracy=TP+TN+FP+FNTP+TN(16)

  1. 精确率

精确率衡量正确预测的正例与总预测正例的比率。它侧重于正预测的正确性,并在假阳性成本高昂的情况下有所帮助。其数学表达式由方程17定义。

precision = TP TP + FP (17) \text{precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \tag{17} precision=TP+FPTP(17)

  1. 召回率

召回率计算正确预测的正例与实际正例的比率。当重点在于最小化假阴性时,它很有用。方程18提供了其数学公式。

recall = TP TP + FN (18) \text{recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \tag{18} recall=TP+FNTP(18)

  1. F1-分数

F1-分数是精确率和召回率的调和平均值。它在精确率和召回率之间提供了平衡,这在需要同时考虑假阳性和假阴性时可能很有价值。其数学公式在方程19中表达。

F1-score = 2 × ( precision × recall ) precision + recall (19) \text{F1-score} = \frac{2 \times (\text{precision} \times \text{recall})}{\text{precision} + \text{recall}} \tag{19} F1-score=precision+recall2×(precision×recall)(19)

  1. 分类错误率

在机器学习中,分类错误率是一个基本的性能指标,它量化数据集中错误分类实例的比例,将错误分类的数据点数与实例总数进行比较。它作为分类模型准确性的直接指标,错误率越低表示性能越好,错误率越高表示准确性越低。然而,分类错误率有其局限性,例如无法区分不同类型的错误(例如,假阳性和假阴性),并且不考虑类别不平衡。因此,通常与其他指标结合使用,以提供对模型分类能力的更全面评估。方程20给出了其数学表达式。

CER = FP + FN TP + TN + FP + FN (20) \text{CER} = \frac{\text{FP} + \text{FN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} \tag{20} CER=TP+TN+FP+FNFP+FN(20)

F. 特征选择问题的数学表述

特征选择(FS)问题涉及从较大集合中选择一组特征,同时旨在实现某些优化目标,例如提高模型性能或减少复杂性。数学表述可以根据问题的具体目标和约束条件而有所不同。在以下部分中,我们给出了FS问题的数学表述。

在FS问题中,我们假设一个包含 N N N个实例和 D D D个特征的数据集: X = { x 1 , . . . , x N } X = \{x_1, ..., x_N\} X={x1,...,xN},其中 x i x_i xi是一个 D D D维特征向量, y y y是一个响应变量。目标是从原始 D D D个特征中选择一个特征子集,以最大化或最小化某个目标函数。目标函数可以根据各种标准定义,例如模型性能(例如,准确率,F1分数),模型复杂性(例如,所选特征的数量)或其他特定领域的考虑。本文中使用的一般FS问题,使用方程21、22和23进行数学表述。

最小化:

α × CER + ( 1 − α ) × ∣ R ∣ ∣ D ∣ (21) \alpha \times \text{CER} + (1 - \alpha) \times \frac{|R|}{|D|} \tag{21} α×CER+(1α)×DR(21)

其中:

∑ j = 1 D x i , j ≤ K , i ∈ { 1 , . . . , N } (22) \sum_{j=1}^{D} x_{i,j} \leq K, \quad i \in \{1, ..., N\} \tag{22} j=1Dxi,jK,i{1,...,N}(22)

x i , j ∈ { 0 , 1 } , i ∈ { 1 , . . . , N } , j ∈ { 1 , . . . , D } (23) x_{i,j} \in \{0, 1\}, \quad i \in \{1, ..., N\}, \quad j \in \{1, ..., D\} \tag{23} xi,j{0,1},i{1,...,N},j{1,...,D}(23)

其中 x i , j x_{i,j} xi,j是一个二进制决策变量,表示是否为实例 i i i选择特征 j j j。如果 x i , j = 1 x_{i,j} = 1 xi,j=1,则选择该特征;如果 x i , j = 0 x_{i,j} = 0 xi,j=0,则不选择该特征。
在这里插入图片描述

F. Zitouni, A. S. Almazyad, G. Xiong, A. W. Mohamed and S. Harous, “An Opposition-Based Great Wall Construction Metaheuristic Algorithm With Gaussian Mutation for Feature Selection,” in IEEE Access, vol. 12, pp. 30796-30823, 2024, doi: 10.1109/ACCESS.2024.3367440