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

news2024/11/16 11:42:40

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

4.1 SVM

4.2 PSO-SVM

4.3 GA-PSO-SVM

5.算法完整程序工程


1.算法运行效果图预览

 

 

SVM:

 

  PSO-SVM:

 

GA-PSO-SVM:

 

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

2.算法运行软件版本

MATLAB2022a

3.部分核心程序

................................................
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
07_006m

4.算法理论概述

4.1 SVM

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

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

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

        在非线性情况下,SVM 可以通过引入核函数将数据从原始特征空间映射到高维特征空间,从而找到一个在高维空间中的超平面来进行分类。常见的核函数包括线性核、多项式核、高斯核(RBF核)等。
        总结起来,SVM 的原理在于寻找一个最优的超平面或曲线,使得不同类别之间的间隔最大化,从而实现分类任务。它的优势在于能够处理高维数据、非线性问题,并且在一定程度上能够抵抗过拟合。

4.2 PSO-SVM

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

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

4.3 GA-PSO-SVM

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

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

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

5.算法完整程序工程

OOOOO

OOO

O

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/958025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AAC和ADTS音频格式解析

1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播。当时崩溃了,后来通过查找资料才知道。一般…

加速关断BJT开关电路

引言&#xff1a;BJT从导通到关闭存在一定的延时&#xff0c;在特定的场景中比如BJT电平转换&#xff0c;高频信号调理&#xff0c;这种延时存在很大的隐患&#xff0c;本节简述如何消除BJT的关断延时。 €1.延时的产生机理 类似于图15-1&#xff0c;晶体管从截止状态切换到导…

干货| ICML2023:作为自适应自进化规划器的扩散模型

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者介绍 梁志烜 香港大学计算机系直博一年级学生&#xff0c;导师为罗平教授&#xff0c;研究兴趣是生成式机器学习&#xff0c;Embodied AI和Data-centric learning。 报告题目 作为自适应自进化规划器的扩散…

本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)

GitHub地址&#xff1a;https://github.com/dvlab-research/LISA 该项目论文paper reading&#xff1a;https://blog.csdn.net/Transfattyacids/article/details/132254770 在GitHub上下载源文件&#xff0c;进入下载的文件夹&#xff0c;打开该地址下的命令控制台&#xff0c;…

耐蚀点蚀镀铜工艺

引言 随着5G技术的推出&#xff0c;导致电子电路和IC基板在设计中要求更高的密度。由于5G应用的性质&#xff0c;这些设计中的高可靠性和出色的电气性能也越来越重要。为了满足5G应用和其他下一代设备平台的需求&#xff0c;逐渐建立了使用改良半加成加工(mSAP)制造电路板的制…

前端将UTC时间格式转化为本地时间格式~~uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下&#xff1a;UTC时间&#xff08;协调世界时&#xff0c;Coordinated Universal Time&#xff09;使用24小时制&#xff0c;以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时&#xff0c;取值范围为00到23。mm 表示分钟…

photoshop,ps自带“不规则图形”在哪

下拉箭头&#xff08;2步&#xff09;后有个“齿轮”&#xff0c;点击齿轮&#xff0c;列表里有“全部”。

大数据HBase学习圣经:一本书实现HBase学习自由

学习目标&#xff1a;三栖合一架构师 本文是《大数据HBase学习圣经》 V1版本&#xff0c;是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下&#xff1a;《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来&#xff0c; 已经汇集了 好几百题&#xff0c;大量的大厂面试…

Springboot 接口方式硬通知实现ConfigurationProperties 、@Value 动态刷新

前言 看到这个文章标题&#xff0c;也许有的看官就觉得很多余&#xff0c; 因为Nacos 可以设置 NacosValue(value "${XXX}",autoRefreshed true) 实现动态刷新&#xff1b; 又因为cloud config的RefreshScope 实现动态刷新&#xff1b; 还有阿波罗...等 这…

MAVEN利器:一文带你了解MAVEN中的依赖管理

前言&#xff1a; 强大的构建工具——Maven。作为Java生态系统中的重要组成部分&#xff0c;Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用&#xff0c;Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…

iOS 使用coreData存贮页面的模型数据中的字典

我们使用coreData时候&#xff0c;会遇到较为复杂的数据类型的存贮&#xff0c;例如&#xff0c;我们要存一个模型&#xff0c;但是一个模型里面有个字典&#xff0c;这时候&#xff0c;我们该如何存贮呢 如图所示&#xff0c;一个对象中含有一个字典 我们实现一个公共的方法…

无涯教程-Flutter - 安装步骤

本章将指导您详细在本地计算机上安装Flutter。 在Windows中安装 在本节中&#xff0c;让无涯教程看看如何在Windows系统中安装 Flutter SDK 及其要求。 第1步 - 转到URL,https: //flutter.dev/docs/get-started/install/windows并下载最新的Flutter SDK。 第2步 - 将zip归档…

(leetcode1761一个图中连通三元组的最小度数,暴力+剪枝)-------------------Java实现

&#xff08;leetcode1761一个图中连通三元组的最小度数&#xff0c;暴力剪枝&#xff09;-------------------Java实现 题目表述 给你一个无向图&#xff0c;整数 n 表示图中节点的数目&#xff0c;edges 数组表示图中的边&#xff0c;其中 edges[i] [ui, vi] &#xff0c;…

电脑锁屏怎么设置?这5个方法都管用!

“我的电脑好像没有锁屏&#xff0c;就算我很久没用电脑也不会息屏。这是为什么呢&#xff1f;有什么方法可以为电脑设置锁屏吗&#xff1f;” 电脑锁屏是保护隐私和安全的重要手段。如果我们希望在不使用电脑时电脑自动进行锁屏&#xff0c;是可以手动设置的。那么&#xff0c…

EXPLAIN的用法

一、语法 EXPLAIN SQL语句二、各字段解释 1、table ● 单表&#xff1a;显示这一行的数据是关于哪张表的。 ● 多表关联&#xff1a;t1为驱动表&#xff0c;t2为被驱动表。 注意&#xff1a; 内连接时&#xff0c;MySQL性能优化器会自动判断哪个表是驱动表&#xff0c;哪个表…

什么是HTTPS协议?与HTTP协议区别?

一、协议科普 HTTP协议&#xff08;超文本传输协议&#xff09;是一种用于在计算机网络上传输超文本的应用层协议。它是一种客户端-服务器协议&#xff0c;允许客户端通过Web浏览器等方式向服务器发送请求&#xff0c;服务器则返回响应。HTTP协议是构建万维网&#xff08;WWW&…

使用pip命令安装库,装到其他环境中的问题。

问题描述&#xff1a;我们在pycharm中创建了新的虚拟环境&#xff0c;但是在其终端使用Pip命令安装库时&#xff0c;发现库却安装到了其他conda创建的环境中。图示安装gym库&#xff0c;刚开始安装到了其他地方&#xff0c;第二次正确安装。 原因分析&#xff1a;安装库时&…

USB fastboot

1 Samsung fastboot flashing unlock 2 bootloader增加解锁密码 diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c index e4d46e4..1b4b450 100755 --- a/app/aboot/aboot.c b/app/aboot/aboot.c -2613,6 2613,20 void cmd_oem_unlock(const char *arg, void *data,…

[ES]mac安装es、kibana、ik分词器

一、安装es和kibana 1、创建一个网络&#xff0c;网络内的框架(eskibana)互联 docker network create es-net 2、下载es和kibana docker pull elasticsearch:7.12.1 docker pull kibana:7.12.1 3、运行docker命令部署单点eskibana&#xff08;用来操作es&#xff09; doc…

分布式搜索引擎

1 DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;来定义查询。常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数据&#xff0c;一…