function elm_rbf
a=randn(500,2)+repmat([-2 -2],500,1);
a=[a;randn(500,2)+repmat([2 2],500,1)];
b=randn(500,2)+repmat([3 -3],500,1);
b=[b;randn(500,2)+repmat([-3 2],500,1)];
hold on
plot(a(:,1),a(:,2),'r.');
plot(b(:,1),b(:,2),'b.');
[acidx, actrs] = kmeans(a,2);
[bcidx, bctrs] = kmeans(b,2);
data=[a;b];
ctrs=[actrs;bctrs];
pause
plot(ctrs(:,1),ctrs(:,2),'k*');
pause
labels=[ones(500,1) zeros(500,1)
zeros(500,1) ones(500,1)];
t=zeros(1000,4);
for k1=1:1000
for k2=1:4
t(k1,k2)=exp(-(sumsqr(data(k1,:)-ctrs(k2,:))/2));
end
end
clf
hold on
plot(t(:,1),'r.')
plot(t(:,2),'g.')
plot(t(:,3),'b.')
plot(t(:,4),'c.')
pause
clf
hold on
plot(a(:,1),a(:,2),'r.');
plot(b(:,1),b(:,2),'b.');
X=(t'*t)\(t'*labels);
plot(ctrs(:,1),ctrs(:,2),'k*');
Q=t*X;
for k1=1:1000
if find(Q(k1,:)==max(Q(k1,:))) ~= find(labels(k1,:)==max(labels(k1,:)))
plot(data(k1,1),data(k1,2),'g*')
end
end
end
2013年10月22日 23点10分
26
回复@xxf700:怎么还不去发技术贴?
2013年10月23日 10点10分