【特征选择】基于改进非洲秃鹰的DDoS攻击检测传递函数的特征选择方法(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客   

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

物联网 (IoT) 服务和设备带来了许多挑战,例如连接性、计算性和安全性。因此,网络应提供并保持优质服务。如今,根据最近的研究,分布式拒绝服务(DDoS)攻击是最重要的网络攻击。在各种DDoS检测方法中,机器学习(ML)算法吸引了研究人员。在 ML 中,选择最佳特征子集对于提高分类率具有重要作用。这个问题称为特征选择问题属于NP难题,精确的算法无法在可接受的时间内获得最佳结果。因此,采用元启发式算法等近似算法来解决问题。由于这些算法不会搜索所有解空间,因此它们属于局部最优并提供过早的收敛率。到目前为止,已经引入了几种方法来应对这些挑战,但研究人员试图找到提高方法性能的新策略。该文提出一种二进制改进的非洲秃鹫优化算法(Sin-Cos-bIAVOA)来选择DDoS攻击的有效特征。该方法应用了一种新的化合物传递函数(Sin-Cos)来增加探索。为了选择要素的最佳子集,该方法中采用重力固定半径最近邻 (GFRNN) 作为分类器。此外,AVOA在勘探、平衡勘探和开发以及开发阶段三个阶段进行了改进。因此,Sin-Cos-bIAVOA探索有希望的领域,以实现最佳解决方案并避免局部最优。

📚2 运行结果

部分代码:

function [Best_vulture1_F,Best_vulture1_X]=sin_cos_bIAVOA(pop_size,max_iter,dim,fobj)

lower_bound=-6;upper_bound=6;
% initialize Best_vulture1, Best_vulture2
Best_vulture1_X=zeros(1,dim);
Best_vulture1_F=inf;
Best_vulture2_X=zeros(1,dim);
Best_vulture2_F=inf;
%Initialize the first random population of vultures
X=double(initialization(pop_size,dim,1,0)>0.5);
%%  Controlling parameter
p1=0.6;
p2=0.4;
p3=0.6;
alpha=0.8;
betha=0.2;
gamma=2.5;
%%Main loop
current_iter=0; % Loop counter
while current_iter < max_iter
    for i=1:size(X,1)
      
        S1=cos(X(i,:))/2+0.5;
        X1=rand(1,dim)<S1;
        ObjVal1=feval(fobj,X1);
        S2=sin(X(i,:))/2+0.5;
        X2=rand(1,dim)<S2;
        ObjVal2=feval(fobj,X2);
        XX=[X1;X2];
        
        fiti=[ObjVal1;ObjVal2];
        [~,ind]=min(fiti(:,1));
        X(i,:)=XX(ind,:);
        current_vulture_X = X(i,:);
        current_vulture_F=fiti(ind,:);
        fit(i,:)=fiti(ind,:);
        
        % Update the first best two vultures if needed and Calculate the fitness of the population
        if current_vulture_F(1)<Best_vulture1_F(1)
            Best_vulture1_F=current_vulture_F; % Update the first best bulture
            Best_vulture1_X=current_vulture_X;
        end
        if current_vulture_F(1)>Best_vulture1_F(1) && ...
                current_vulture_F(1)<Best_vulture2_F(1)
            Best_vulture2_F=current_vulture_F; % Update the second best bulture
            Best_vulture2_X=current_vulture_X;
        end
    end
    worst=max(fit(:,1));
    a=unifrnd(-2,2,1,1)*((sin((pi/2)*(current_iter/max_iter))^gamma)+cos((pi/2)*(current_iter/max_iter))-1);
    P1=(2*rand+1)*(1-(current_iter/max_iter))+a;
    % Update the location
    for i=1:size(X,1)
        current_vulture_X = X(i,:);  % pick the current vulture back to the population
        F=P1*(2*rand()-1);
        random_vulture_X=random_select(Best_vulture1_X,Best_vulture2_X,alpha,betha);
        if (current_iter<=(1/3*max_iter))
            
            current_vulture_X = exploration(current_vulture_X, random_vulture_X, F, p1, upper_bound, lower_bound);
            % Exploitation:
        elseif (current_iter>(1/3*max_iter)&&  (current_iter<=(2/3*max_iter)))
            prob=(fit(i)-worst)/(Best_vulture1_F(1)-worst);
            if (prob>0.4)
                current_vulture_X= exploitation(current_vulture_X, Best_vulture1_X, Best_vulture2_X, random_vulture_X, F, p2, p3, dim, upper_bound, lower_bound);
            else
                current_vulture_X = exploration(current_vulture_X, random_vulture_X, F, p1, upper_bound, lower_bound);
            end
        else
            current_vulture_X = exploration(current_vulture_X, random_vulture_X, F, p1, upper_bound, lower_bound);
        end
        X(i,:) = current_vulture_X; % place the current vulture back into the population
    end
    
    current_iter=current_iter+1;
    
    X = boundaryCheck(X, lower_bound, upper_bound);
    fprintf('Iteration=%d Best_Fitness(Fitness Function,Accuracy,Precision,Recall,Specificity)=%f,%f,%f,%f,%f\n', current_iter,Best_vulture1_F );
    
end

end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Zakieh Sharifian, Behrang Barekatain, Alfonso Ariza Quintana, Zahra Beheshti, Faramarz Safi-Esfahani (2023), Sin-Cos-bIAVOA: A new feature selection method based on improved African vulture optimization algorithm and a novel transfer function to DDoS attack detection, Expert System with Application, https://doi.org/10.1016/j.eswa.2023.120404

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
禁忌搜索算法在某些方面存在一些不足,需要进行改进。首先,禁忌搜索对初始解有较强的依赖性,较好的初始解可以帮助算法在解空间中搜索到好的解,而较差的初始解则会减慢算法的收敛速度。因此,可以将禁忌搜索算法与其他优化算法如遗传算法、模拟退火算法等结合,先产生较好的初始解,再使用禁忌搜索算法进行搜索优化。这样可以提高算法的性能和效果。 其次,禁忌搜索算法的迭代搜索过程是串行的,只是单一状态的移动,而非并行搜索。为了进一步改善禁忌搜索的性能,可以改进禁忌搜索算法本身的操作和参数选择,引入并行策略,实现并行禁忌搜索算法。另外,还可以与遗传算法、神经网络算法以及基于问题信息的局部搜索相结合,从而进一步提高算法的搜索效率和准确性。 此外,在集中性与多样性搜索并重的情况下,禁忌搜索算法可能存在多样性不足的问题。集中性搜索策略用于加强对当前搜索优良解的邻域进行更充分的搜索,以找到全局最优解。而多样性搜索策略则用于拓宽搜索区域,尤其是未知区域,当搜索陷入局部最优时,多样性搜索可以改变搜索方向,跳出局部最优,从而实现全局最优。增加多样性策略的一种简单处理方式是重新随机初始化算法,或者根据频率信息对一些已知对象进行惩罚。 综上所述,对禁忌搜索算法的改进可以从改进初始解的产生、引入并行策略、与其他优化算法结合以及增加多样性搜索等方面进行。这些改进措施可以提高禁忌搜索算法的性能和效果,使其在实际应用中更加有效地解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Bald eagle search Optimization algorithm秃鹰搜索优化算法 Matlab](https://download.csdn.net/download/weixin_39168167/88262751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【TS TSP】基于matlab改进的禁忌搜索算法求解旅行商问题【含Matlab源码 241期】](https://blog.csdn.net/TIQCmatlab/article/details/113732930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值