📄 moban_cssj_som7.m
字号:
%SOM神经网络,20051210
%实验类内距离和类内离差阵的关系
%======每5类DOA相差9,检查对DOA的适应情况=DOA变化从3倍sita变化=== 识别率为 100 ========================
format long;
P=[35 41 77 83 99;
9310 9416 9822 9728 9834;
4.1 4.2 4.3 4.4 4.5]';
% 4.05 4.1 4.15 4.2 4.25]'; %
P=[65 71 77 83 89;
9810 9816 9822 9828 9834;
4.1 4.2 3.3 4.4 4.5]';
D1=[];
Nu=length(P);%数据位数
Pro=[];
PP1=zeros(3,1);PPPP=[];
PP1=[];
TT=zeros(3,1);
TT=[]
for i=1:Nu
sigma_D=3;
sigma_F=3;
sigma_PW=0.1;
DOA=P(i,1);
Fa=P(i,2);
PW=P(i,3);
sita_MX1=sqrt(sigma_D.^2+sigma_F.^2+sigma_PW.^2);%门限
M1=4;%每类的个数
T=[0 0 0 0 1;0 0 0 1 0;0 0 1 0 0;0 1 0 0 0;1 0 0 0 0] ;
for j=1:M1
D=normrnd(DOA,sigma_D);%随机产生高斯分布的数据
F=normrnd(Fa,sigma_F);
F1=normrnd(PW,sigma_PW);
PP=[D F F1];
% PP=[D F P(i,3) P(i,4)];
PP1=[PP1;PP];% 每种类型中有M1组数据
TT=[TT;T(i,:)];
end
for j=1:2*M1
D=normrnd(DOA,sigma_D);%随机产生高斯分布的数据
F=normrnd(Fa,sigma_F);
F1=normrnd(PW,sigma_PW);
PP=[D F F1];
% PP=[D F P(i,3) P(i,4)];
PPPP=[PPPP;PP];% 每种类型中有M1组数据
end
end
PP1=PPPP([1:M1 2*M1+1:3*M1 4*M1+1:5*M1 6*M1+1:7*M1 8*M1+1:9*M1],:);%训练样本
PP2=PPPP([1*M1+1:2*M1 3*M1+1:4*M1 5*M1+1:6*M1 7*M1+1:8*M1 9*M1+1:10*M1],:);%测试样本
p1=PP1(1:4,:);p2=PP1(5:8,:);p3=PP1(9:12,:);p4=PP1(13:16,:);p5=PP1(17:20,:);
m1=mean(p1);m2=mean(p2);m3=mean(p3);m4=mean(p4);m5=mean(p5);m=mean(PP1);
j1=0;
for i=1:4
j1=j1+(p1(i,:)-m1)*(p1(i,:)-m1)';
end
j2=0;
for i=1:4
j2=j2+(p2(i,:)-m2)*(p2(i,:)-m2)';
end
j3=0;
for i=1:4
j3=j3+(p3(i,:)-m3)*(p3(i,:)-m3)';
end
j4=0;
for i=1:4
j4=j4+(p4(i,:)-m4)*(p4(i,:)-m4)';
end
j5=0;
for i=1:4
j5=j5+(p5(i,:)-m5)*(p5(i,:)-m5)';
end
Jw=j1+j2+j3+j4+j5;
JB=(m1-m)*(m1-m)'+(m2-m)*(m2-m)'+(m3-m)*(m3-m)'+(m4-m)*(m4-m)'+(m5-m)*(m5-m)';
J1=JB/Jw
%%%%%%
j1=zeros(3,3);
for i=1:4
j1=j1+(p1(i,:)-m1)'*(p1(i,:)-m1);
end
j2=zeros(3,3);
for i=1:4
j2=j2+(p2(i,:)-m2)'*(p2(i,:)-m2);
end
j3=zeros(3,3);
for i=1:4
j3=j3+(p3(i,:)-m3)'*(p3(i,:)-m3);
end
j4=zeros(3,3);
for i=1:4
j4=j4+(p4(i,:)-m4)'*(p4(i,:)-m4);
end
j5=zeros(3,3);
for i=1:4
j5=j5+(p5(i,:)-m5)'*(p5(i,:)-m5);
end
Sw=1/20*(j1+j2+j3+j4+j5);
SB=1/5*((m1-m)'*(m1-m)+(m2-m)'*(m2-m)+(m3-m)'*(m3-m)+(m4-m)'*(m4-m)+(m5-m)'*(m5-m));
l=[1,0,0;0,1,0;0,0,1];
J2=sum(sum(l.*(SB*inv(Sw))))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -