Matlab数学建模算法之小波神经网络详解

🔗 运行环境:Matlab

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

🔐#### 防伪水印——左手の明天 ####🔐

💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗

💗今天分享matlab数学建模算法——小波分析💗

📆  最近更新:2023 年 12 月 05 日,左手の明天的第 302 篇原创博客

📚 更新于专栏:matlab

🔐#### 防伪水印——左手の明天 ####🔐


一、小波神经网络

小波神经网络(Wavelet Neural Network,简称WNN)是基于小波变换理论构造而成,其原理与反向传播神经网络(BPNN)较为接近。最主要的特征是它的隐含层神经元激活函数为小波基函数,这一特性使其充分利用了小波变换的局部化性质和神经网络的大规模数据并行处理、自学习能力,因而具有较强的逼近能力和较快的收敛速度。

小波神经网络的结构图如下图所示:


二、小波分析

小波分析是一种强大的数学工具,它在信号处理、图像处理、量子力学等领域有着广泛的应用。小波变换是一种将信号分解成不同尺度的成分,以便更好地理解信号的特性的方法。

1、小波变换的定义

小波变换是一种信号分析方法,它可以将信号分解成不同尺度的成分。小波变换的基本思想是将信号投影到一组小波函数上,这组小波函数构成了小波基。小波基的特性是它们在时间和频率上都具有良好的局部性。这意味着小波基可以很好地捕捉信号中的局部特征,无论在高频还是低频部分。

小波变换的定义基于傅里叶变换和伸缩平移运算。它通过将信号与一组小波函数进行内积运算,得到信号在不同尺度下的投影。这些投影可以理解为信号在不同尺度下的细节和概貌。

2、小波变换的性质

小波变换具有一些重要的性质,包括:

(1) 适应性和多分辨率特性:小波变换可以适应不同尺度的信号,并能够同时处理高频和低频部分。这使得小波变换具有多分辨率特性,可以更好地分析信号的细节和概貌。

(2) 方向性和时间-频率局部性:小波基具有方向性和时间-频率局部性,这使得小波变换在处理信号时具有很好的局部性。它可以捕捉信号中的突变和边缘等局部特征,并提供关于这些特征的更多信息。

(3) 冗余性和压缩性:小波变换具有冗余性,这意味着它可以将信号分解成多个层次,每个层次都包含了信号的不同方面的信息。这种冗余性使得小波变换具有很好的压缩性,可以将信号压缩成更小的数据量。

3、小波变换的实现

小波变换的实现通常分为两步:首先是选择合适的小波基,然后是对信号进行小波分解和重构。选择合适的小波基需要考虑信号的特性和应用场景。常用的有小波基包括Daubechies小波基、Haar小波基、Morlet小波基等。

小波分解是将信号分解成多个层次的过程,每个层次都包含了信号的不同方面的信息。常用的有小波分解算法包括二进小波分解、多尺度小波分解等。重构是小波变换的逆过程,它可以根据小波分解的结果将信号恢复成原始形式。

4、小波变换的数学模型

小波变换的数学模型可以通过连续小波变换和离散小波变换表示。连续小波变换是对连续信号进行小波变换,可以用积分来表示。离散小波变换是对离散信号进行小波变换,可以用矩阵运算表示。

4.1 连续小波变换

连续小波变换的数学模型可以表示为:

W(a, b) = ∫f(t)ψ*[ (t-b)/a ] dt

其中,W(a, b)表示小波系数,f(t)表示原始信号,ψ(t)表示小波基函数,a和b分别表示尺度参数和平移参数。

4.2 离散小波变换

离散小波变换的数学模型可以表示为:

W(n, k) = ∑f(m)ψ*[ (m-k)/2^n ] 

其中,W(n, k)表示小波系数,f(m)表示原始信号,ψ(m)表示离散小波基函数,n表示尺度参数,k表示平移参数。

5、matlab实现小波变换

在MATLAB中进行小波分析的步骤如下:

  1. 准备数据:将待分析的信号数据准备好,可以是一个向量或一个矩阵。
  2. 选择小波类型:根据需要选择合适的小波类型,例如Daubechies小波、Haar小波、Morlet小波等。
  3. 进行小波分解:使用MATLAB中的小波分析函数,例如dwt()wavedec2(),对信号数据进行小波分解。这将会将信号分解成多个层次,每个层次都包含了信号的不同方面的信息。
  4. 分析小波系数:对分解后得到的小波系数进行分析,例如可以观察近似系数和细节系数的变化情况,从而得到信号在不同层次上的特征。
  5. 重构信号:如果需要,可以使用idwt()waverec2()函数对信号进行重构,得到原始信号。
  6. 计算相关统计量和特征量:根据需要,可以计算相关统计量和特征量,例如均方差、峰值等,以进一步分析信号的特征。

需要注意的是,在进行小波分析前,需要了解小波分析的基本原理和性质,以便更好地选择合适的小波类型和分解方式,以及正确地解释分析结果。

在MATLAB中进行小波分析,我们首先需要了解几个关键函数:

  1. dwt(): 这是进行一维小波单层分解的函数,它采用小波名称作为参数,返回近似系数和细节系数。
  2. wavdec(): 这是进行一维小波多层分解的函数,它可以将信号分解成多个层次。
  3. idwt(): 这是进行小波重构的函数,它采用近似系数和细节系数作为参数,返回重构后的信号。

下面是一个简单的例子,说明如何在MATLAB中使用小波分析:

% 创建信号
x = randn(1,100);
% 选择小波类型
wname = 'db1';
% 进行一维小波分解
[cA,cD] = dwt(x,wname);
% 进行小波重构
X = idwt(cA,cD,wname);

在这个例子中,首先创建了一个随机信号x。然后,选择了Daubechies小波('db1')进行小波分解。分解后,我们得到了近似系数cA和细节系数cD。最后,我们使用idwt()函数进行了小波重构,得到了重构后的信号X

注意:在进行小波重构时,必须使用与分解时相同的小波类型。

二维小波分析在图像处理中特别有用。在MATLAB中,你可以使用wavedec2()函数进行二维小波分解,使用waverec2()函数进行二维小波重构。二维小波分解和重构通常用于图像压缩、去噪等方面。


三、权值训练

小波神经网络(Wavelet Neural Network,简称WNN)是一种结合了小波变换和神经网络的复合体。它的权值训练一般通过以下步骤进行:

  1. 网络初始化:首先,对小波神经网络进行初始化,包括确定网络的结构、小波基函数的类型和参数、权值和阈值等。
  2. 输入数据学习:将已知的输入数据通过小波变换进行分解和重构,通过调整权值和阈值使得网络的输出尽可能接近目标输出。
  3. 误差反向传播:在每个训练周期结束后,计算网络输出和目标输出的误差,并将误差反向传播到网络中,根据误差调整权值和阈值。
  4. 权值更新:根据反向传播的误差,对网络的权值进行更新。一般采用梯度下降法或其他优化算法来更新权值。
  5. 重复学习:重复步骤2-4,直到网络的输出与目标输出之间的误差满足要求,或者达到预设的学习次数。

小波神经网络的权值训练过程与反向传播神经网络类似,都是通过不断调整权值和阈值来最小化网络输出与目标输出之间的误差。但是,小波神经网络的小波基函数具有更好的局部化性质和时频分析能力,因此可以更好地处理具有复杂特征的数据。


四、特征分析

小波神经网络利用小波基函数的性质进行特征分析主要表现在以下几个方面:

  1. 多尺度分析:小波神经网络可以通过多尺度分析,在不同尺度下提取信号的特征。小波基函数可以将信号分解成多个尺度的成分,每个尺度下的成分都包含了信号的不同频率信息和细节信息。
  2. 局部化分析:小波基函数具有局部化性质,可以捕捉信号的局部特征。通过小波神经网络对信号进行分解和重构,可以更好地提取信号中的局部特征,对于信号分类、识别等任务有很大的帮助。
  3. 方向选择性:小波基函数在时频域上具有方向选择性,可以更好地适应信号的变化。通过小波神经网络对信号进行分解和重构,可以更好地适应信号的变化,提高信号处理的准确性和鲁棒性。
  4. 非线性映射:小波基函数具有非线性映射的能力,可以将输入信号映射到高维空间中。通过小波神经网络对输入信号进行学习和映射,可以更好地表示输入信号的特征,提高分类和识别的准确性。

总之,小波神经网络利用小波基函数的性质进行特征分析,可以更好地提取信号的特征,提高信号处理的准确性和鲁棒性。


五、小波基函数

小波基函数是小波分析的核心组成部分,选择合适的小波基函数对于信号处理、图像处理、数值分析等领域的应用非常重要。在选择小波基函数时,需要考虑以下几个因素:

5.1 支撑长度(Support Length)

小波基函数的支撑长度是指在一定尺度下,小波基函数的非零部分所覆盖的信号长度。一般来说,支撑长度越长,小波基函数就越能捕捉到信号中的细节和特征,但同时也会增加计算的复杂性和内存消耗。因此,在选择小波基函数时,需要根据应用场景和硬件资源进行权衡。

常见的支撑长度有小波基函数的名称和对应的支撑长度(在MATLAB环境下):

  • Daubechies 2 (db2): 3
  • Daubechies 3 (db3): 4
  • Daubechies 4 (db4): 5
  • Daubechies 5 (db5): 6
  • Daubechies 6 (db6): 7
  • Daubechies 8 (db8): 9
  • Daubechies 12 (db12): 13
  • Daubechies 14 (db14): 15

5.2 紧支撑(Tight Support)

紧支撑是指小波基函数在时间和频率域中的局部化性质,即在小波变换的过程中,只有靠近输入信号的位置才会产生非零系数。选择具有紧支撑的小波基函数可以减少计算量和内存消耗,同时提高信号处理的效率和准确性。

在选择小波基函数时,需要考虑其紧支撑性质。一般来说,Daubechies系列小波基函数具有较好的紧支撑性质。此外,还可以根据应用场景和问题特点来选择具有合适支撑长度和紧支撑的小波基函数。例如,当处理信号的频率成分较为复杂时,可以选择支撑长度较长的小波基函数;当处理信号的时域特征较为重要时,可以选择具有较好紧支撑性质的小波基函数。

总之,选择合适的小波基函数需要考虑支撑长度和紧支撑等因素,同时结合具体的应用场景和问题特点进行选择。在MATLAB环境下,可以使用wfilters函数来查看不同小波基函数的性质和特点,以便选择合适的小波基函数进行应用。


六、小波神经网络实现过程

  • 步骤1:数据准备

首先,我们需要准备用于训练和测试的数据集。数据集应包含输入样本和对应的目标输出。确保数据集经过预处理和归一化处理,便于网络的训练和学习。

  • 步骤2:网络建立

使用MATLAB的神经网络工具箱,我们可以方便地建立小波神经网络。首先,定义网络的拓扑结构和参数配置,包括输入层、隐藏层和输出层的节点数,以及学习率、最大迭代次数等参数。

  • 步骤3:训练网络

使用训练数据集对小波神经网络进行训练。在MATLAB中,可以使用train函数来训练神经网络。通过设置训练选项,可以控制训练过程的细节和收敛性。

  • 步骤4:测试网络

使用测试数据集对训练好的小波神经网络进行测试,以评估其性能和泛化能力。在MATLAB中,可以使用sim函数来模拟网络的响应。通过比较网络的输出和目标输出,可以计算误差和评估网络的性能。

  • 步骤5:应用网络

使用训练好的小波神经网络对新的输入数据进行威胁评估。将新的输入数据输入到网络的输入层,通过隐藏层和输出层的计算,得到威胁评估结果。

以上是一个简单的小波神经网络实现过程。在实际应用中,可能需要根据具体情况进行适当的调整和优化。同时,也可以考虑使用其他工具或框架来实现小波神经网络,如MATLAB的Deep Learning Toolbox、Python的PyWavelets和Scikit-Learn等。


七、MATLAB实现的小波神经网络

以下是一个使用MATLAB实现的小波神经网络代码示例:

% 加载数据集
load iris_dataset% 定义小波神经网络结构
net = newff(input, target, [10 1], {'logsig', 'purelin'}, 'trainlm');% 设置训练参数
net.trainParam.epochs = 100;
net.trainParam.goal = 1e-5;
net.trainParam.show = 10;
net.trainParam.lr = 0.01;
net.trainParam.mc = 0.9;% 训练网络
[net, tr] = train(net, input, target);% 测试网络性能
output = net(input);
perf = perform(net, target, output);

在上述代码中,首先加载了鸢尾花数据集,并定义了一个具有10个隐层节点和1个输出节点的小波神经网络。使用了logsig激活函数作为隐层激活函数,并使用purelin激活函数作为输出层激活函数。然后,设置了网络的训练参数,包括最大迭代次数、目标误差、显示间隔、学习率和动量等。最后,使用train函数训练了网络,并使用perform函数评估了网络的性能。

function main()
clc;clear all;close all;
%用Mexihat函数作为样本输入和输出
x=0:0.03:3; %样本输入值
c=2/(sqrt(3).*pi.^(1/4));
d=1/sqrt(2);
u=x/2-1;
targ=d.*c.*exp(-u.^2/2).*(1-u.^2);  % 目标函数的样本输出值
eta=0.02;aerfa=0.735; %赋予网络学习速率和动量因子初始值
%初始化输出层和隐层的连接权wjh和隐层和输出层的连接权.
%假设小波函数节点数为H,样本数为P,输出节点数为J,输入节点数为I.
H=15;P=2;I=length(x);J=length(targ);
b=rand(H,1);a=rand(H,1); %初始化小波参数
whi=rand(I,H);wjh=rand(H,J); %初始化权系数;
b1=rand(H,1);b2=rand(J,1);%阈值初始化;
p=0;
Err_NetOut=[];%保存的误差;
flag=1;count=0;
while flag>0
flag=0;
count=count+1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xhp1=0;
for h=1:Hfor i=1:Ixhp1=xhp1+whi(i,h)*x(i);end
ixhp(h)=xhp1+b1(h);
xhp1=0;
end
for h=1:H
oxhp(h)=fai((ixhp(h)-b(h))/a(h));
end
ixjp1=0;
for j=1:Jfor h=1:Hixjp1=ixjp1+wjh(h,j)*oxhp(h);end
ixjp(j)=ixjp1+b2(j);
ixjp1=0;
end
for i=1:J
oxjp(i)=fnn(ixjp(i));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
wuchayy=1/2*sumsqr(oxjp-targ);
Err_NetOut=[Err_NetOut wuchayy];%保存每次的误差;
%求解小波网络运用BP算法,各参数每次学习的调整量
for j=1:J
detaj(j)=-(oxjp(j)-targ(j))*oxjp(j)*(1-oxjp(j));
end
for j=1:Jfor h=1:Hdetawjh(h,j)=eta*detaj(j)*oxhp(h);end
end
detab2=eta*detaj;
sum=0;
for h=1:Hfor j=1:Jsum=detaj(j)*wjh(h,j)*diffai((ixhp(h)-b(h))/a(h))/a(h)+sum;end
detah(h)=sum;
sum=0;
end
for h=1:Hfor i=1:Idetawhi(i,h)=eta*detah(h)*x(i);end
end
detab1=eta*detah;
detab=-eta*detah;
for h=1:H
detaa(h)=-eta*detah(h)*((ixhp(h)-b(h))/a(h));
end
%引入动量因子aerfa,加快收敛速度和阻碍陷入局部极小值.
wjh=wjh+(1+aerfa)*detawjh;
whi=whi+(1+aerfa)*detawhi;
a=a+(1+aerfa)*detaa';
b=b+(1+aerfa)*detab';
b1=b1+(1+aerfa)*detab1';
b2=b2+(1+aerfa)*detab2';
%本算法采用的是样本逐个处理而不是数据批处理
p=p+1;
if p~=P
flag=flag+1;
else
if Err_NetOut(end)>0.008
flag=flag+1;
else
figure;
plot(Err_NetOut);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('网络学习误差曲线','fontsize',20,'color',[0 1 1],'fontname','隶书');
end
end
if count>6000
figure(1);
subplot(1,2,1)
plot(Err_NetOut,'color','b','linestyle','-','linewidth',2.2,...
'marker','^','markersize',3.5);
xlabel('网络学习的次数');ylabel('网络输出的误差');
title('误差曲线','fontsize',20,'color',[1 1 1],'fontname','隶书');
subplot(1,2,2)
handle1=plot(x,targ,'color','r','linestyle','--','linewidth',2.2,...
'marker','p','markersize',3.5);
hold on
handle1=plot(x,oxjp,'color','g','linestyle','-.','linewidth',2.2,...'marker','d','markersize',3.5);
xlabel('样本输入值');ylabel('样本目标值与网络输出值');
title('目标值与网络输出值比较','fontsize',20,'color',[1 1 1],'fontname','隶书');
legend('样本目标值','网络仿真值');
break;
end
end
function y3=diffai(x)  %子程序
y3=-1.75*sin(1.75*x).*exp(-x.^2/2)-cos(1.75*x).*exp(-x.^2/2).*x;
function yl=fai(x)  %子程序
yl=cos(1.75.*x).*exp(-x.^2/2);
function y2=fnn(x)  %子程序
y2=1/(1+exp(-x));

八、小波神经网络应用场景

小波神经网络在许多应用场景上表现较好,以下是其中几个例子:

  1. 信号处理:小波神经网络可以用于信号压缩、分类、识别与诊断,去污等。在医学成像方面,可以减少B超、CT、核磁共振成像的时间,提高解析度等。
  2. 图像处理:小波神经网络在图像处理方面也有广泛的应用,包括图像压缩、分类、识别、去噪等。
  3. 信号分析:小波神经网络可以用于边界的处理与滤波、时频分析、信噪分离与提取弱信号、求分形指数、信号的识别与诊断以及多尺度边缘侦测等。
  4. 工程技术:小波神经网络在工程技术等方面也有应用,包括电脑视觉、电脑图形学、曲线设计、湍流、远端宇宙的研究与生物医学方面。

此外,小波神经网络还可以应用于模式识别、非线性映射、优化设计等领域。总之,小波神经网络具有广泛的应用前景,可以在不同领域中发挥其优势。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构高阶】红黑树

目录 一、红黑树的概念 二、红黑树的性质 2.1 红黑树与AVL树的比较 三、红黑树的实现 3.1 红黑树节点的定义 3.2 数据的插入 3.2.1 红黑树的调整思路 3.2.1.1 cur为红,f为红,g为黑,u存在且为红 3.2.1.2 cur为红,f为红&am…

【Spring教程20】Spring框架实战:AOP(面对切面编程)知识总结

欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《利用 AOP通知获取数据代码…

【Linux】进程间通信

目录 一、进程间通信介绍 什么是进程间通信 进程间通信目的 如何实现进程间通信 进程间通信分类 管道 System V IPC POSIX IPC 二、管道 什么是管道 匿名管道 匿名管道的概念 匿名管道的接口 匿名管道的创建 匿名管道读写规则 匿名管道的应用场景 命名管道 创…

linux权限管理以及shell

1.shell 1.1什么是shell? shell即外壳,是运行在linux系统上的一个脚本语言,包裹在linux内核的外面。我们常说的linux操作系统实际上是linux内核。我们使用的所有指令都是一个个程序,而shell指令就是一个将我们用户的操作翻译给linux内核的程…

为 Compose MultiPlatform 添加 C/C++ 支持(1):在 kotlin 中使用 cinterop 实现与 C/C++ 互操作

前言 在安卓中我们可以使用 jvm 提供的 jni 方便的编写 C/C 代码并与 java/kotlin 互操作。 但是当使用 kotlin MultiPlatform 时想要调用 C/C 代码将变得麻烦甚至是不可用,因为对于 Android 和 Desktop 来说依旧使用的是 jvm ,所以只要稍微适配一下也…

网络攻击(三)--攻击阶段

5. 威胁建模阶段 目标 了解威胁建模阶段的工作内容 工作内容 威胁建模主要使用在情报搜集阶段所获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。 在进行威胁建模时,确定最为高效的攻击方法、所需要进一步获取到的信息,以及从…

048:利用vue-video-player播放m3u8

第048个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

AWS Ubuntu设置DNS解析(解决resolve.conf被覆盖问题)

众所周知: Ubuntu在域名解析时,最直接使用的是/etc/resolve.conf文件,它是/run/systemd/resolve/resolve.conf的软链接,而对于刚装完的ubuntu系统,该文件的内容如下 ubuntuip-172-31-36-184:/etc$ cat resolv.conf #…

【MYSQL】单表查询

查询语法: select 字段(*表示全字段) from 数据表 【where 条件表达式】 【group by 分组字段【having 分组条件表达式】】 【order by 排序字段【asc | desc】】 例子: 教职工表Teacher(Tno, TName, age, sal, mgr, DNo)&#…

【原创创新点】金属工件缺陷检测系统:Efficient Multi-Scale-Conv的改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义:金属工件是现代工业生产中不可或缺的重要组成部分。金属工件的质量和性能直接影响到产品的品质和效率,因此对金属工件的研究和改进具有重要…

【K8S in Action】服务:让客户端发现pod 并与之通信(1)

服务是一种为一组功能相同的 pod 提供单一不变的接入点的资源。当服务存在时,它的 IP 地址和端口不会改变。 客户端通过 IP 地址和端口号建立连接, 这些连接会被路由到提供该服务的任意一个 pod 上。 pod 是短暂,会删除增加,调度…

【go语言开发】go项目打包成Docker镜像,包括Dockerfile命令介绍、goctl工具生成

本文主要介绍如何将go项目打包成镜像,首先介绍Dockerfile常用命令介绍,然后介绍使用工具goctl用于生成Dockerfile,还可以根据需求自定义指令内容,最后讲解如何将go-blog项目打包成镜像,以及如何运行等 文章目录 前言Do…

JavaWeb(十)

一、JavaWeb概述 Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 JavaWeb:使用 Java技术进行web互联网开发。 二、JavaWeb 技术栈 2.1、B/S 架构 B/S 架构:Browser/Server,浏览器/服务器…

ELK的日志解决方案

ELK的日志解决方案 ELK是什么 ELK 是一个缩写,代表 Elastic Stack,而不是三个独立的产品名称。Elastic Stack 是一个开源的数据处理和分析平台,用于实时搜索、分析和可视化大规模数据。ELK 是由三个主要的组件构成: Elasticsea…

[MySQL--进阶篇]存储引擎的体系结构、简介、特点、选择

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录:不要在乎别人怎么看你,因为他们根本就没有时间,他们只关心他们自己。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 MySQL数据库 存储引擎 前言MySQL体…

泽攸科技桌面型扫描电子显微镜(SEM)技术解析

台式扫描电子显微镜是一种利用电子束扫描样品表面并检测样品反射或发射的电子信号,从而获得样品表面形貌、结构和成分信息的仪器。它的工作原理是由电子枪发出的电子束经过栅极静电聚焦后成为直径50微米的点光源,然后在加速电压作用下,经两三…

分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测

分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测 目录 分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类…

【Spring Boot 源码学习】ApplicationListener 详解

Spring Boot 源码学习系列 ApplicationListener 详解 引言往期内容主要内容1. 初识 ApplicationListener2. 加载 ApplicationListener3. 响应应用程序事件 总结 引言 书接前文《初识 SpringApplication》,我们从 Spring Boot 的启动类 SpringApplication 上入手&am…

我对迁移学习的一点理解——领域适应(系列3)

文章目录 1. 领域适应(Domain Adaptation)的基本概念2.领域适应(Domain Adaptation)的目标3.领域适应(Domain Adaptation)的实现方法4.领域适应(Domain Adaptation)的可以解决的问题…

RC522(RFID射频模块)读卡ID的简单应用

文章目录 一、RFID是什么?二、RC522模块三、使用步骤1.硬件1.硬件连接2.引脚定义 2.软件1.初始化配置代码如下(示例):2.引脚配置代码如下(示例):3.模块复位代码如下(示例&#xff09…