文章: On Spectral Clustering: Analysis and an algorithm
作者: Andrew Y. Ng
在算法第二步并没有讲清楚,矩阵A是表示的是各点之间的亲和值?我按照这个算法写了后对于半月形的数据集无法得出好的结果,在参考其他人的资料后,才意识到中途有一个图构造的过程,即取与点xi最邻近的k个点,只保留这一部分信息,来计算图的权重矩阵W。代码如下:
function re = spectral(X,k,KnearNum,sigma)
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
%Matrix A
[m,n] =size(X);
A = zeros(m,m);
D = zeros(m,m); %度
%KnearNum = 10; %构图采用10邻近
d = sigma;
%1-step: A
for i = 1:m
for j =1:m
if i~=j
A(i,j) = exp(-(norm(X(i,:)-X(j,:)).^2)/(2*d.^2));
%D(i,i) = D(i,i)+ A(i,j);
end
end
end
A_s= zeros(m,m);
in_A=zeros(m,m);
for i&