基于相空间重构的混沌背景下微弱信号检测算法matlab仿真,对比SVM,PSO-SVM以及GA-PSO-SVM

1.算法运行效果图预览



SVM:




 PSO-SVM:



GA-PSO-SVM:



 以上仿真图参考文献《基于相空间重构的混沌背景下微弱信号检测方法研究》


2.算法运行软件版本

MATLAB2022a


3.算法理论概述

3.1 SVM

      支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的机器学习方法,其原理基于寻找一个最优超平面(或者曲线在非线性情况下)来划分不同类别的数据点。SVM 的目标是找到一个能够最大化不同类别之间的间隔(margin)的超平面,从而在未知数据上取得良好的泛化能力。


       SVM的目标是找到一个超平面,使得距离超平面最近的数据点(支持向量)到超平面的距离(间隔)最大。这个间隔可以用数据点到超平面的函数距离来表示,即:



SVM 的目标是解决以下优化问题:



       在非线性情况下,SVM 可以通过引入核函数将数据从原始特征空间映射到高维特征空间,从而找到一个在高维空间中的超平面来进行分类。常见的核函数包括线性核、多项式核、高斯核(RBF核)等。

       总结起来,SVM 的原理在于寻找一个最优的超平面或曲线,使得不同类别之间的间隔最大化,从而实现分类任务。它的优势在于能够处理高维数据、非线性问题,并且在一定程度上能够抵抗过拟合。


3.2 PSO-SVM

      在将PSO应用于SVM的优化过程中,我们主要关注SVM的超参数,如核函数类型、正则化参数C等。PSO算法可以帮助我们找到一组超参数,使得SVM在训练数据上的性能最佳。



       在PSO-SVM中,适应度函数通常是SVM在训练集上的性能指标,如准确率、F1分数等。通过PSO算法优化SVM的超参数,可以帮助我们找到一组最优的超参数配置,从而提高SVM在分类问题中的性能表现。这种方法可以在一定程度上自动搜索超参数空间,避免了手动调整的繁琐过程。


3.3 GA-PSO-SVM

      GA-PSO结合了遗传算法的群体进化和粒子群优化的局部搜索能力。遗传算法通过模拟生物进化的过程,通过交叉、变异等操作对种群中的个体进行优化。粒子群优化模拟了鸟群或鱼群等自然界中群体行为,通过个体历史最优和群体历史最优来调整粒子的位置。


       在将GA-PSO应用于SVM的优化过程中,我们主要关注SVM的超参数,如核函数类型、正则化参数C等。GA-PSO算法可以帮助我们在超参数空间中搜索到更优的解,以提高SVM在训练数据上的性能。GA-PSO的公式包括遗传算法的选择、交叉和变异操作,以及粒子群优化的速度和位置更新公式。这些公式可以根据具体的算法变体进行调整。


       总体而言,GA-PSO算法将遗传算法和粒子群优化结合起来,通过遗传算法的全局搜索和粒子群优化的局部搜索,以及SVM的性能评估,实现对SVM超参数的优化。这种方法可以更全面地搜索超参数空间,从而提高SVM在分类问题中的性能。




4.部分核心程序

while gen < MAXGEN;  

     gen

     w       =wmax-gen*(wmax-wmin)/MAXGEN;

     FitnV = ranking(Objv);   

     Selch = select('sus',Chrom,FitnV);   

     Selch = recombin('xovsp',Selch,0.9);  

     Selch = mut(Selch,0.1);  

     phen1 = bs2rv(Selch,FieldD);  

     %基于粒子群的速度更新

     for i=1:1:NIND

         if gen > 1

              va(i)  = w*va(i) +c1*rand(1)*(phen1(i,1)-taos2)   +c2*rand(1)*(taos-taos2);

              vb(i)  = w*vb(i) + c1*rand(1)*(phen1(i,2)-ms2)     + c2*rand(1)*(ms-ms2);

              vc(i)  = w*vc(i) + c1*rand(1)*(phen1(i,3)-Cs2)     + c2*rand(1)*(Cs-Cs2);

              vd(i)  = w*vd(i) + c1*rand(1)*(phen1(i,4)-gammas2) +c2*rand(1)*(gammas-gammas2);

         else

              va(i)  = 0;

              vb(i)  = 0;

              vc(i)  = 0;

              vd(i)  = 0;

         end

     end


     for a=1:1:NIND 

         Data1(a,:) = phen1(a,:);     

         tao        = round(Data1(a,1) +0.15*va(i));%遗传+PSO

         m          = round(Data1(a,2) +0.15*vb(i));

         C          = Data1(a,3)       + 0.15*vc(i);

         gamma      = Data1(a,4)       + 0.15*vd(i);


           if tao >= max1

               tao  = max1;

           end

           if tao <= min1

               tao  = min1;

           end    

           if m >= max2

               m = max2;

           end

           if m <= min2

               m = min2;

           end 

           if C >= max3

               C = max3;

           end

           if C <= min3

               C = min3;

           end 

           if gamma >= max4

               gamma = max4;

           end

           if gamma <= min4

               gamma = min4;

           end  



         %计算对应的目标值

         [epls,tao,m,C,gamma] = func_fitness(X_train,X_test,tao,m,C,gamma);

         E                    = epls;

         JJ(a,1)              = E;

     end


     Objvsel=(JJ);   

     [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);  

     gen=gen+1;


     %保存参数收敛过程和误差收敛过程以及函数值拟合结论

     Error(gen) = mean(JJ);

     pause(0.2);

     [V,I] = min(Objvsel);

     JI      = I;

     tmpps    = Data1(JI,:);

     taos2    = round(tmpps(1));

     ms2      = round(tmpps(2));

     Cs2      = tmpps(3);

     gammas2  = tmpps(4);

end


[V,I] = min(Objvsel);

JI     = I;

tmpps  = Data1(JI,:);

tao0   = round(tmpps(1));

m0     = round(tmpps(2));

C0     = tmpps(3);

gamma0 = tmpps(4);



%save GAPSO.mat tao0 m0 C0 gamma0

end





if SEL == 2

load GAPSO.mat

%调用四个最优的参数

tao  = tao0;

m    = m0;

C    = C0;

gamma = gamma0;




%先进行相空间重构

[Xn ,dn ] = func_CC(X_train,tao,m);

[Xn1,dn1] = func_CC(X_test,tao,m);


t  =1/1:1/1:length(dn1)/1;

f  =0.05;

sn = 0.0002*sin(2*pi*f*t);

%叠加

dn1 = dn1 + sn';


%SVM训练%做单步预测

cmd = ['-s 3',' -t 2',[' -c ',num2str(C)],[' -g ',num2str(gamma)],' -p 0.000001'];

model = svmtrain(dn,Xn,cmd);

%SVM预测

[Predict1,error1] =svmpredict(dn1,Xn1,model);

RMSE              = sqrt(sum((dn1-Predict1).^2)/length(Predict1));

Err               = dn1-Predict1;

%误差获取

clc;

RMSE


figure;

plot(Err,'b');

title('混沌背景信号的预测误差');

xlabel('样本点n');

ylabel('误差幅值');

Fs = 1;

y  =fftshift(abs(fft(Err)));

N  =length(y)

fc = [-N/2+1:N/2]/N*Fs;

figure;

plot(fc(N/2+2:N),y(N/2+2:N));

xlabel('归一化频率');

ylabel('频谱');

text(0.06,0.07,'f=0.05Hz');

end

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容