📄 init1.m
字号:
i=0;
j=0;
k=0;
y=0;
e=0;
w=[];
v=0;
b=0;
sv=0;
ta=0.25;%%ACO中rmse的判定值,当小于该值时结束循环
tb=0.95;%%ACO中OCA得判定值,当大于该值结束循环
train=[];
dm=10000;
a=0;
k=0;
z=0;
feature=[];
rand20=zeros(20,15);%%ACO算法中随机的20组解
best5=zeros(5,15);%%20组解中最优的5组解
train=[];
d=zeros(690,2);%%存储样本的类别,第一列为实际值,第二列为估计值
rmse=zeros(20,10);%%第一列为离差值,第二列为粒子(蚂蚁)的编号,第三列为估计值与实际值都为1类的样本个数,第四列
%%列为实际值为第一类估计值为第二类的样本数,第五列为实际值为第二类估计值为第一类的样本数,第六列为实际值与估计值
%%都为第二类的样本数;第七、第八列分别为第一类和第二类数据的正确分类比例;第十列为整体正确分类OCA的值
pso_rmse=zeros(20,10);%%同上,每个粒子都有以上十项指标
pso=zeros(20,16);
pbest=zeros(20,15);
pbest_rmse=zeros(20,10);%%同上,每个粒子都有以上十项指标
gbest=zeros(1,15);
gbest_rmse=zeros(1,10);%%同上,每个粒子都有以上十项指标
%parameterd of PSO
wmax=0.9;
wmin=0.4;
vmax=6;
c1=2.0;
c2=2.0;
ps=20; %particles
tmax=500; %iterations
n=[];
t=[];
p=[];
p1=[];
v1=zeros(ps,15);
rmse=zeros(15,10);
iteration=50;
x=zeros(690,2);
feature=zeros(690,16); %data set add label of class
MM=zeros(6,2);
for i=1:6
MM(i,2)=1e10;
end
for i=1:690
if strcmp(textdata(i,1),'a')
feature(i,1)=1;
end
if strcmp(textdata(i,1),'b')
feature(i,1)=2;
end
if strcmp(textdata(i,1),'?')
feature(i,1)=floor((feature(i-1,1)+feature(i+1,1))/2); % an integer
end
if strcmp(textdata(i,4),'u')
feature(i,4)=1;
end
if strcmp(textdata(i,4),'y')
feature(i,4)=0.66;
end
if strcmp(textdata(i,4),'l')
feature(i,4)=0.33;
end
if strcmp(textdata(i,4),'t')
feature(i,4)=0;
end
if strcmp(textdata(i,4),'?')
feature(i,4)=(feature(i-1,3)+feature(i+1,3))/2;
end
if strcmp(textdata(i,5),'g')
feature(i,5)=1;
end
if strcmp(textdata(i,5),'p')
feature(i,5)=0.5;
end
if strcmp(textdata(i,5),'gg')
feature(i,5)=0;
end
if strcmp(textdata(i,5),'?')
feature(i,5)=(feature(i-1,5)+feature(i+1,5))/2;
end
if strcmp(textdata(i,6),'c')
feature(i,6)=1;
end
if strcmp(textdata(i,6),'d')
feature(i,6)=0.93;
end
if strcmp(textdata(i,6),'cc')
feature(i,6)=0.86;
end
if strcmp(textdata(i,6),'i')
feature(i,6)=0.79;
end
if strcmp(textdata(i,6),'j')
feature(i,6)=0.72;
end
if strcmp(textdata(i,6),'k')
feature(i,6)=0.64;
end
if strcmp(textdata(i,6),'m')
feature(i,6)=0.56;
end
if strcmp(textdata(i,6),'r')
feature(i,6)=0.48;
end
if strcmp(textdata(i,6),'q')
feature(i,6)=0.40;
end
if strcmp(textdata(i,6),'w')
feature(i,6)=0.32;
end
if strcmp(textdata(i,6),'x')
feature(i,6)=0.24;
end
if strcmp(textdata(i,6),'e')
feature(i,6)=0.16;
end
if strcmp(textdata(i,6),'aa')
feature(i,6)=0.08;
end
if strcmp(textdata(i,6),'ff')
feature(i,6)=0;
end
if strcmp(textdata(i,6),'?')
feature(i,6)=(feature(i-1,6)+feature(i+1,6))/2;
end
if strcmp(textdata(i,7),'v')
feature(i,7)=1;
end
if strcmp(textdata(i,7),'h')
feature(i,7)=0.875;
end
if strcmp(textdata(i,7),'bb')
feature(i,7)=0.75;
end
if strcmp(textdata(i,7),'j')
feature(i,7)=0.625;
end
if strcmp(textdata(i,7),'n')
feature(i,7)=0.5;
end
if strcmp(textdata(i,7),'z')
feature(i,7)=0.375;
end
if strcmp(textdata(i,7),'dd')
feature(i,7)=0.25;
end
if strcmp(textdata(i,7),'ff')
feature(i,7)=0.125;
end
if strcmp(textdata(i,7),'o')
feature(i,7)=0;
end
if strcmp(textdata(i,7),'?')
feature(i,7)=(feature(i-1,7)+feature(i+1,7))/2;
end
if strcmp(textdata(i,9),'t')
feature(i,9)=1;
end
if strcmp(textdata(i,9),'f')
feature(i,9)=0;
end
if strcmp(textdata(i,9),'?')
feature(i,9)=(feature(i-1,9)+feature(i+1,9))/2;
end
if strcmp(textdata(i,10),'t')
feature(i,10)=1;
end
if strcmp(textdata(i,10),'f')
feature(i,10)=0;
end
if strcmp(textdata(i,10),'?')
feature(i,10)=(feature(i-1,10)+feature(i+1,10))/2;
end
if strcmp(textdata(i,12),'t')
feature(i,12)=1;
end
if strcmp(textdata(i,12),'f')
feature(i,12)=0;
end
if strcmp(textdata(i,12),'?')
feature(i,12)=(feature(i-1,12)+feature(i+1,12))/2;
end
if strcmp(textdata(i,13),'g')
feature(i,13)=1;
end
if strcmp(textdata(i,13),'p')
feature(i,13)=0.5;
end
if strcmp(textdata(i,13),'s')
feature(i,13)=0;
end
if strcmp(textdata(i,13),'?')
feature(i,13)=(feature(i-1,13)+feature(i+1,13))/2;
end
if strcmp(textdata(i,16),'+') % label of class
feature(i,16)=1;
end
if strcmp(textdata(i,16),'-')
feature(i,16)=0;
end
if strcmp(textdata(i,16),'?')
feature(i,16)=floor((feature(i-1,16)+feature(i+1,16))/2); % an integer
end
end
for i=1:690
if data(i,1)>MM(1,1)
MM(1,1)=data(i,1);
end
if data(i,1)<MM(1,2)
MM(1,2)=data(i,1);
end
if data(i,2)>MM(2,1)
MM(2,1)=data(i,2);
end
if data(i,2)<MM(2,2)
MM(2,2)=data(i,2);
end
if data(i,7)>MM(3,1)
MM(3,1)=data(i,7);
end
if data(i,7)<MM(3,2)
MM(3,2)=data(i,7);
end
if data(i,10)>MM(4,1)
MM(4,1)=data(i,10);
end
if data(i,10)<MM(4,2)
MM(4,2)=data(i,10);
end
if data(i,13)>MM(5,1)
MM(5,1)=data(i,13);
end
if data(i,13)<MM(5,2)
MM(5,2)=data(i,13);
end
if data(i,14)>MM(6,1)
MM(6,1)=data(i,14);
end
if data(i,14)<MM(6,2)
MM(6,2)=data(i,14);
end
end
for i=1:690
feature(i,2)=(data(i,1)-MM(1,2))/(MM(1,1)+MM(1,2));
feature(i,3)=(data(i,2)-MM(2,2))/(MM(2,1)+MM(2,2));
feature(i,8)=(data(i,7)-MM(3,2))/(MM(3,1)+MM(3,2));
feature(i,11)=(data(i,10)-MM(4,2))/(MM(4,1)+MM(4,2));
feature(i,14)=(data(i,13)-MM(5,2))/(MM(5,1)+MM(5,2));
feature(i,15)=(data(i,14)-MM(6,2))/(MM(6,1)+MM(6,2));
end
for i=1:ps
pbest_rmse(i,1)=100;
pbest_rmse(i,10)=0;
gbest_rmse(1,1)=100;
gbest_rmse(1,10)=0;
end
for i=1:ps
pso_rmse(i,1)=100;
pso_rmse(i,2)=i;
pso_rmse(i,10)=0;
end
for i=1:690
if feature(i,1)==1
train(1)=i;
break;
end
end
for i=1:690
if feature(i,1)==2
train(2)=i;
break;
end
end
for i=1:690
for j=1:15
if feature(i,j)>1e10
feature(i,j)=(feature(i,j-1)+feature(i,j+1))/2
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -