⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_ap.m

📁 apcluster是发表在今年2007年Science上的一篇论文的代码实现,一种新的有效的聚类算法,
💻 M
字号:

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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -