test_ap.m

来自「apcluster是发表在今年2007年Science上的一篇论文的代码实现,一」· M 代码 · 共 47 行

M
47
字号

if 1
    % original example shown in that paper
    N=100; x=rand(N,2); % Create N, 2-D data points
else
    % my example for iris data
    data = load('iris.txt');
    [nrow, dim] = size(data);
    N=nrow;
    truelabels = data(:,1);
    x = data(:,2:dim);
    dim = dim-1;
end

M=N*N-N; 
s=zeros(M,3); % Make ALL N^2-N similarities
j=1;

for i=1:N
   for k=[1:i-1,i+1:N]
     s(j,1)=i; 
     s(j,2)=k; 
     s(j,3)=-sum((x(i,:)-x(k,:)).^2);
     j=j+1;
   end;
 end;
% Set preference to median similarity
 p=0.5*median(s(:,3)); 
 [idx,labels,NC,netsim,dpsim,expref]=apcluster(s,p);%,'plot'
 C = unique(idx)';
 labels = idx;
 fprintf('Number of clusters: %d\n',length(C));
 fprintf('Fitness (net similarity): %f\n',netsim);
 
 figure; % Make a figures showing the data and the clusters
 for i=C
   ii=find(idx==i); 
   h=plot(x(ii,1),x(ii,2),'o'); 
   hold on;
   col=rand(1,3); 
   set(h,'Color',col,'MarkerFaceColor',col);
   xi1=x(i,1)*ones(size(ii)); 
   xi2=x(i,2)*ones(size(ii)); 
   line([x(ii,1),xi1]',[x(ii,2),xi2]','Color',col);
 end;
axis equal tight;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?