数据来源为华为杯全国研究生数学建模比赛2015年B题第一问,它提供的数据格式为.mat(maltab默认保存数据类型)。
数据一共有200组,每组数据有100个特征。
编写运用maltab。
clear
clc
load 1.mat;
sud=0;
jig=ones(200,200);
d=ones(200,1);
for i=1:200;
for j=1:200;
sd=sum((data(:,i)-data(:,j)).^2);
sud=sd+sud;
jig(i,j)=sqrt(sd)/2;
end
end
for i=1:200;
ac=sort(jig(i,:));
d(i)=ac(200);
end
md=sort(d);
maxd=md(200);
[c,d]=find(jig==maxd);
err=0.01;
dd=ones([1,2]);
u=zeros([2,200]);
errma=1;
E=0;
n=1;
while errma>err;
n=n+1;
if n==1000000;
break;
end
for i=1:200;
for j=1:2;
dd(1,j)=jig(c(j),i);
if j==2 && dd(1,j)>dd(1,1);
u(1,i)=1;
end
if j==2 && dd(1,j)<=dd(1,1);
u(2,i)=1;
end
end
end
adds=0;
for j=1:2;
adds=adds+jig(c(j),:)*u(j,:)';
end
errma=abs(adds-E);
E=adds;
for j=1:2;
sum1=[];
dd1=find(u(j,:)==1);
for k=1:length(dd1);
sum2=0;
for i=1:length(dd1);
sum2=sum2+jig(dd1(k),dd1(i));
end
sum1=[sum1 sum2];
end
mb=sort(sum1);
dd2=find(sum1==mb(1));
c(i)=dd1(dd2);
end
end
最终结果为
第一类(组号)