demoncutclustering.asv

来自「这是用matlab编的谱聚类程序」· ASV 代码 · 共 65 行

ASV
65
字号
% function demoNcutClustering;
% demoNcutClustering
% 
% demo for NcutClustering
% also initialize matlab paths to subfolders
% Timothee Cour, Stella Yu, Jianbo Shi, 2004.
clc;
clear;
disp('Ncut Clustering demo');

% initialize matlab paths to subfolders
main;

%% make up a point data set
caseid =3;
[data,label,size_cluster] = build_scene(caseid);
figure(1);clf;
plot(data(1,:),data(2,:),'ks', 'MarkerFaceColor','k','MarkerSize',5); 
axis image; hold on; 

% disp('This is the input data points to be clustered, press Enter to continue...');
% pause;

disp('Compute clustering...');

% compute similarity matrix
[W,Dist] = compute_relation(data);

% clustering graph in
nbCluster = 4;
tic;
[NcutDiscrete,NcutEigenvectors,NcutEigenvalues] = ncutW(W,nbCluster);
disp(['The computation took ' num2str(toc) ' seconds']);

% display clustering result
cluster_color = ['rgbmyc'];
figure(2);clf;
% for j=1:nbCluster,
%     id = find(NcutDiscrete(:,j));
%     plot(data(1,id),data(2,id),[cluster_color(j),'s'], 'MarkerFaceColor',cluster_color(j),'MarkerSize',5); hold on; 
% end
% [id]=kmeans(NcutEigenvectors,nbCluster);
% for j=1:nbCluster,
%     num=find(id==j);
%     plot(data(1,num),data(2,num),[cluster_color(j),'s'], 'MarkerFaceColor',cluster_color(j),'MarkerSize',5); hold on; 
% end

ker='rbf';% linear kernel is used
C=10;
global p1; %only valid for rbf gaussian kernel,it is the variance of rbf kernel
p1=2;
nmsapmle=[40,20,25,25];
% NcutEigenvectors=NcutEigenvectors*10000;
[trainx,trainy]=traindata(NcutEigenvectors,label,nmsapmle,nbCluster);

[id]=svmeig(trainx,trainy,NcutEigenvectors,ker,C);
% for j=1:nbCluster,
%     num=find(id==j);
%     plot(data(1,num),data(2,num),[cluster_color(j),'s'], 'MarkerFaceColor',cluster_color(j),'MarkerSize',5); hold on; 
% end

hold off; axis image;
disp('This is the clustering result');
disp('The demo is finished.');

⌨️ 快捷键说明

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