📄 psoknntest.asv
字号:
%clear;
%load credit.txt;
%parameterd of PSO
%k=5; %knn
nn=2; %n-fold
wmax=0.9;
wmin=0.1;
vmax=6;
c1=2.0;
c2=2.0;
ps=20; %particles
tmax=50; %iterations
[x,feature]=init(data,textdata); % initizalize data: x as label of class; feature as data set
[n,p]=size(feature);
[x1,feature1]=init(data1,textdata1); % initizalize data: x as label of class; feature as data set
[n1,p1]=size(feature1);
ant_best2=zeros(1,15);
ant_rmse_oca2=zeros(1,10);
as=15; % ants
tmax=50; %iterations
q=0.5;
rmax=20;
r1=5;
ta=0.25;
tb=0.95;
%rand20=zeros(ps,p);%%ACO算法中随机的20组解
%best5=zeros(5,p);%%20组解中最优的5组解
%d=zeros(n,2);%%存储样本的类别,第一列为实际值,第二列为估计值
%rmse=zeros(ps,10);%%第一列为离差值,第二列为粒子(蚂蚁)的编号,第三列为估计值与实际值都为1类的样本个数,第四列
%%列为实际值为第一类估计值为第二类的样本数,第五列为实际值为第二类估计值为第一类的样本数,第六列为实际值与估计值
%%都为第二类的样本数;第七、第八列分别为第一类和第二类数据的正确分类比例;第十列为整体正确分类OCA的值
%%tic
%%[gbest1,gbest_rmse1]=pso(x,feature,wmax,wmin,vmax,c1,c2,ps,tmax); % ps0
%%disp(gbest_rmse1);
%%disp(gbest1);
%%dlmwrite('pso.txt',gbest_rmse1, ' ');
%%dlmwrite('pso.txt',gbest1, ' ');
%%toc
%% for i=1:20
%%[gbest1,gbest_rmse1]=pso(x1,feature1,wmax,wmin,vmax,c1,c2,ps,tmax,8); % ps0
%%[ant_best1,ant_rmse_oca1]=aco(x1,feature1,as,q,rmax,r1,ta,tb,tmax,8); % aco
%%tic
%[ant_best1,ant_rmse_oca1]=acoknn(x,feature,as,q,rmax,r1,ta,tb,tmax); % aco
%ant_best2=zeros(1,15);
%ant_rmse_oca2=zeros(1,10);
%%for i=1:10
%ant_rmse_oca2(1,i)=ant_rmse_oca1(1,i);
%%end
%%for i=1:15
% ant_best2(1,i)=ant_best1(1,i);
%%end
%disp(ant_rmse_oca2);
%disp(ant_best2);
%%toc
%% end
%%nn=8;
%% dlmwrite('pso.txt',nn,'-append','delimiter', ' ');
%% dlmwrite('aco.txt',nn,'-append','delimiter', ' ');
%% for i=1:20
%%[gbest1,gbest_rmse1]=pso(x,feature,wmax,wmin,vmax,c1,c2,ps,tmax,2); % ps0
%%[ant_best1,ant_rmse_oca1]=aco(x,feature,as,q,rmax,r1,ta,tb,tmax,2);
% aco
%%tic
%[ant_best1,ant_rmse_oca1]=acoknn(x,feature,as,q,rmax,r1,ta,tb,tmax); % aco
%ant_best2=zeros(1,15);
%ant_rmse_oca2=zeros(1,10);
%%for i=1:10
%ant_rmse_oca2(1,i)=ant_rmse_oca1(1,i);
%%end
%%for i=1:15
% ant_best2(1,i)=ant_best1(1,i);
%%end
%disp(ant_rmse_oca2);
%disp(ant_best2);
%%toc
%% end
%% nn=2;
%% dlmwrite('pso.txt',nn,'-append','delimiter', ' ');
%% dlmwrite('aco.txt',nn,'-append','delimiter', ' ');
%%for i=1:20
%%[gbest1,gbest_rmse1]=pso(x,feature,wmax,wmin,vmax,c1,c2,ps,tmax,4); % ps0
%%[ant_best1,ant_rmse_oca1]=aco(x,feature,as,q,rmax,r1,ta,tb,tmax,4);
% aco
%%tic
%[ant_best1,ant_rmse_oca1]=acoknn(x,feature,as,q,rmax,r1,ta,tb,tmax); % aco
%ant_best2=zeros(1,15);
%ant_rmse_oca2=zeros(1,10);
%%for i=1:10
%ant_rmse_oca2(1,i)=ant_rmse_oca1(1,i);
%%end
%%for i=1:15
% ant_best2(1,i)=ant_best1(1,i);
%%end
%disp(ant_rmse_oca2);
%disp(ant_best2);
%%toc
%% end
nn=8;
dlmwrite('pso.txt',nn,'-append','delimiter', ' ');
dlmwrite('aco.txt',nn,'-append','delimiter', ' ');
for i=1:20
[gbest1,gbest_rmse1]=pso(x,feature,wmax,wmin,vmax,c1,c2,ps,tmax,8); % ps0
[ant_best1,ant_rmse_oca1]=aco(x,feature,as,q,rmax,r1,ta,tb,tmax,8);
% aco
%%tic
%[ant_best1,ant_rmse_oca1]=acoknn(x,feature,as,q,rmax,r1,ta,tb,tmax); % aco
%ant_best2=zeros(1,15);
%ant_rmse_oca2=zeros(1,10);
%%for i=1:10
%ant_rmse_oca2(1,i)=ant_rmse_oca1(1,i);
%%end
%%for i=1:15
% ant_best2(1,i)=ant_best1(1,i);
%%end
%disp(ant_rmse_oca2);
%disp(ant_best2);
%%toc
end
disp('程序结束');
%save rasult.mat gbest1(1,:),gbest_rmse1(1,:) -APPEND;
%save rasult.mat ant_best1(1,:),ant_rmse_aco1(1,:) -APPEND;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -