问题同样为聚类小联系一种问题
问题原述:将文件1.mat中数据分为两类;
算法介绍见文献:Gan G, Wu J. A convergence theorem for the fuzzy subspace clustering (FSC) algorithm. Pattern Recognition, 2008,41(6):
clear;
clc;
load 1.mat;
jig=data';
z=[jig(1,:)
jig(2,:)];
w=ones([2,100])./100;
alp=2;
lmd=0.5;
err=0.01;
dd=ones([1,2]);
errma=1;
E=0;
n=1;
while errma>err;
n=n+1;
if n==1000000;
break;
end
u=zeros([2,200]);
for i=1:200;
for j=1:2;
dd(1,j)=w(j,:).^alp*((jig(i,:)-z(j,:)).^2)';
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;
for i=1:200;
adds=adds+u(j,i)*w(j,:).^alp*((jig(i,:)-z(j,:)).^2)';
end
end
EE=lmd*sum(sum(w.^alp))+adds;
errma=abs(EE-E);
E=EE;
for j=1:2;
for h=1:100;
sum1=0;
for t=1:100;
sum2=0;
sum3=0;
for i=1:200;
sum2=sum2+u(j,i)*(jig(i,j)-z(j,h))^2;
sum3=sum3+u(j,i)*(jig(i,t)-z(j,t))^2;
end
sum1=sum1+((sum2+lmd)/(sum3+lmd))^(1/(alp-1));
end
w(j,h)=1/sum1;
end
end
for j=1:2;
for h=1:100;
z(j,h)=u(j,:)*jig(:,h)/sum(u(j,:));
end
end
end
结果u
Columns 1 through 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0