分类预测 | Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测
目录
- 分类预测 | Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测
- 分类效果
- 基本描述
- 程序设计
- 参考资料
分类效果
基本描述
1.Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测(完整源码和数据)
2.多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。
3.程序语言为matlab,程序可出分类效果图,混淆矩阵图,运行环境matlab2018b及以上。
4.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
5.data为数据集,输入12个特征,分四类;main为主程序,其余为函数文件,无需运行,可在下载区获取数据和程序内容。
程序设计
- 完整程序和数据获取方式:私信博主回复Matlab实现基于PSO-PNN粒子群算法优化概率神经网络的数据分类预测。
%% 定义粒子群算法参数
% N 种群 T 迭代次数
%% 随机初始化种群
D=dim; %粒子维数
c1=1.5; %学习因子1
c2=1.5; %学习因子2
w=0.8; %惯性权重
Xmax=ub; %位置最大值
Xmin=lb; %位置最小值
Vmax=ub; %速度最大值
Vmin=lb; %速度最小值
%%
%%%%%%%%%%%%%%%%初始化种群个体(限定位置和速度)%%%%%%%%%%%%%%%%
x=rand(N,D).*(Xmax-Xmin)+Xmin;
v=rand(N,D).*(Vmax-Vmin)+Vmin;
%%%%%%%%%%%%%%%%%%初始化个体最优位置和最优值%%%%%%%%%%%%%%%%%%%
p=x;
pbest=ones(N,1);
for i=1:N
pbest(i)=fobj(x(i,:));
end
%%%%%%%%%%%%%%%%%%%初始化全局最优位置和最优值%%%%%%%%%%%%%%%%%%
g=ones(1,D);
gbest=inf;
for i=1:N
if(pbest(i)<gbest)
g=p(i,:);
gbest=pbest(i);
end
end
%%%%%%%%%%%按照公式依次迭代直到满足精度或者迭代次数%%%%%%%%%%%%%
for i=1:T
i
for j=1:N
%%%%%%%%%%%%%%更新个体最优位置和最优值%%%%%%%%%%%%%%%%%
if (fobj(x(j,:))) <pbest(j)
p(j,:)=x(j,:);
pbest(j)=fobj(x(j,:));