【发布时间】:2016-02-22 10:54:48
【问题描述】:
我已经尝试了几个小时,但我找不到解决方案。
我有“两个甜甜圈”数据样本(变量“X”)
您可以在以下链接下载文件
如下图所示的二维形状
前 250 点位于甜甜圈内,后 750 点位于甜甜圈外。
我需要进行谱聚类。
我用高斯相似距离制作(相似矩阵“W”)。
我通过每个原始“W”的总和来制作度数矩阵
然后我计算了特征值(E)和特征向量(V)
而且“V”的形状不好。
我的试用有什么问题???
我想不通。
load rings.mat
[D, N] = size(X); % data stored in X
%initial plot data
figure; hold on;
for i=1:N,
plot(X(1,i), X(2,i),'o');
end
% perform spectral clustering
W = zeros(N,N);
D = zeros(N,N);
sigma = 1;
for i=1:N,
for j=1:N,
xixj2 = (X(1,i)-X(1,j))^2 + (X(2,i)-X(2,j))^2 ;
W(i,j) = exp( -1*xixj2 / (2*sigma^2) ) ; % compute weight here
% if (i==j)
% W(i,j)=0;
% end;
end;
D(i,i) = sum(W(i,:)) ;
end;
L = D - W ;
normL = D^-0.5*L*D^-0.5;
[u,s,v] = svd(normL);
【问题讨论】:
-
“V 形不好”——这到底是什么意思?错误是什么?
-
不是错误。但我无法从 V 中找到清晰的形状。你能试试我的代码吗?我也上传了数据集。
-
所以,跟随 Ng 等人。你有几个问题:1)你没有标准化拉普拉斯算子。 2)您永远不会进行聚类...如果您愿意,您当然可以采用 SVD,但使用 k=2 的 k-means 可能更容易。你为什么不看看这个的第 2 节:ai.stanford.edu/~ang/papers/nips01-spectral.pdf
-
原始模板具有相似矩阵 (W) 的 SVD 代码。我已经访问了这篇论文。但我无法理解。如果我能理解,我不会上传这个问题。无论如何,我应该做的是计算 D^-0.5 * W * D^-0.5 ???。什么是拉普拉斯算子的归一化?
-
所以,第 2 节非常清楚,i.m.o.您成功创建了相似度矩阵。您现在需要:1) 采用 归一化 拉普拉斯算子而不是未归一化,2) 采用顶部特征向量,然后 3) 应用 k-means 来获得集群名称。
标签: matlab cluster-analysis spectral