spectral clustering

A = load(‘Gaussian.txt‘);
%A = load(‘ringData.txt‘);
[m, n] = size(A);
data=A(:,:);
% markersize default is 6
%plot(data(:,1),data(:,2),‘.‘, ‘markersize‘, 10);
% col sum. x^2 + y^2
squareData = sum(data.*data,2);
transitData = data*data‘;
% repmat means repeat matrix to 1*m
xi = repmat(squareData,1,m);
xj = repmat(squareData‘,m,1);
E = 2*transitData-xi-xj;
sig = 1;
W = exp(E / (2 * sig * sig));
% set diagnoal to zeros
W = W - diag(diag(W));
D = diag(sum(W,2));
%L = D-W;
L =D^(-.5)*W*D^(-.5);

K = 3;
[X, di] = eig(L);
[Xsort, Dsort] = eigsort(X, di);
%Xsort = sort(X);
Xuse = Xsort(:, 1:K);

Xsq = Xuse.*Xuse;
divmat=repmat(sqrt(sum(Xsq‘)‘),1,K);
Y=Xuse./divmat;

[c, Dsum, z] = kmeans(Y, K);
kk = c;
c1 = find(kk == 1);
c2 = find(kk == 2);
c3 = find(kk == 3);

plot(data(c1,1),data(c1,2),‘.‘,‘marker‘, ‘+‘);
hold on;
plot(data(c2,1),data(c2,2),‘.‘,‘marker‘, ‘*‘);
hold on;
plot(data(c3,1),data(c3,2),‘.‘,‘marker‘, ‘+‘);

function [Vsort, Dsort] = eigsort (V, D)
  eigvals = diag(D);
  [lohival,lohiindex] = sort(eigvals);
  lambda = flipud(lohival);
  index = flipud(lohiindex);
  Dsort = diag(lambda);
% Sort eigenvectors to correspond to the ordered eigenvalues. Store sorted
% eigenvectors as columns of the matrix vsort.
  M = length(lambda);
  Vsort = zeros(M,M);
for i=1:M
  Vsort(:,i) = V(:,index(i));
end;

  

时间: 2024-10-11 04:38:24

spectral clustering的相关文章

漫谈 Clustering (4): Spectral Clustering

如果说 K-means 和 GMM 这些聚类的方法是古代流行的算法的话,那么这次要讲的 Spectral Clustering 就可以算是现代流行的算法了,中文通常称为“谱聚类”.由于使用的矩阵的细微差别,谱聚类实际上可以说是一“类”算法. Spectral Clustering 和传统的聚类方法(例如 K-means)比起来有不少优点: 和 K-medoids 类似,Spectral Clustering 只需要数据之间的相似度矩阵就可以了,而不必像 K-means 那样要求数据必须是 N 维

谱聚类算法及其代码(Spectral Clustering)

简介 文章将介绍谱聚类(spectral clustering)的基本算法,以及在matlab下的代码实现.介绍内容将包括: 从图分割角度直观理解谱聚类 谱聚类算法步骤 数据以及实现代码 本文将不会涉及细节化的证明和推导,如有兴趣可参考july大神的文章从拉普拉斯矩阵说到谱聚类. 对谱聚类的理解 这一节将从图分割聚类的角度直观理解谱聚类.不过,因为本人是从事社交媒体分析的,将从一种社会关系网络的角度来介绍网络图分割成多个子图的概念. 图的分割 首先将社会关系网络看成是一个整体,每一个个体(use

谱聚类算法(Spectral Clustering)

谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的.其中的最优是指最优目标函数不同,可以是割边最小分割——如图1的Smallest cut(如后文的Min cut), 也可以是分割规模差不多且割边最小的分割——如图1的Best cut(如后文的Normalized cut). 图1 谱聚类无向图划分——Smallest cut和Best cut 这样,

谱聚类(Spectral Clustering, SC)

谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目 的.其中的最优是指最优目标函数不同,可以是割边最小分割——如图1的Smallest cut(如后文的Min cut), 也可以是分割规模差不多且割边最小的分割——如图1的Best cut(如后文的Normalized cut). 图1 谱聚类无向图划分——Smallest cut和Best cut 这样

Name Disambiguation in Author Citations using a Kway Spectral Clustering Method 论文之摘要

研究背景 要解决的问题 名字歧义问题会带来文献检索.网络搜索以及数据库整合上带来效率问题还可能对作者带来名誉上的问题.解决的两种名字歧义问题:1.一个作者实体却有多个相似(被简写)的或者被误拼的名字.2.多个不同的作者实体共享同一个名字(被简写或名字一样). 前人研究现状 前人采用的方法 记录连接(record linkage) 重复记录检测和消除(duplicate record detection and elimination) 合并/清除(merge/purge) 数据关联(data a

谱聚类(spectral clustering)及其实现详解

Preface 开了很多题,手稿都是写好一直思考如何放到CSDN上来,一方面由于公司技术隐私,一方面由于面向对象不同,要大改,所以一直没贴出完整,希望日后可以把开的题都补充全. 先把大纲列出来: 一.从狄多公主圈地传说说起 二.谱聚类的演算 (一).演算 1.谱聚类的概览 2.谱聚类构图 3.谱聚类切图 (1).RatioCut (2).Ncut (3).一点题外话 (二).pseudo-code 三.谱聚类的实现(scala) (一).Similarity Matrix (二).kNN/mut

漫谈 Clustering (4): Spectral Clustering<转载>

转自http://blog.pluskid.org/?p=287 如果说 K-means 和 GMM 这些聚类的方法是古代流行的算法的话,那么这次要讲的 Spectral Clustering 就可以算是现代流行的算法了,中文通常称为“谱聚类”.由于使用的矩阵的细微差别,谱聚类实际上可以说是一“类”算法. Spectral Clustering 和传统的聚类方法(例如 K-means)比起来有不少优点: 和 K-medoids 类似,Spectral Clustering 只需要数据之间的相似度

ML | spectral clustering

What's xxx In multivariate statistics and the clustering of data, spectral clustering techniques make use of the spectrum (eigenvalues) of the similarity matrix of the data to perform dimensionality reduction before clustering in fewer dimensions. Th

谱聚类(spectral clustering)原理总结

谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也不复杂.在处理实际的聚类问题时,个人认为谱聚类是应该首先考虑的几种算法之一.下面我们就对谱聚类的算法原理做一个总结. 一.谱聚类概述 谱聚类是从图论中演化出来的算法,后来在聚类中得到了广泛的应用.它的主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来.距离较远的两个点之间的边权重值较低

Ultra-Scalable Spectral Clustering and Ensemble Clustering

1.Abstract: 在U-SPEC中,针对稀疏相似子矩阵的构造,提出了一种混合代表选择策略和k -最近邻代表的快速逼近方法.将稀疏相似子矩阵解释为二部图,利用转移割对图进行有效分割,得到聚类结果: 在U-SENC中,多个U-SPEC聚类器被进一步集成到一个集成聚类框架中,在保持高效的同时增强了U-SPEC的鲁棒性.基于多U-SEPC s的集成生成,构造了一种新的目标与基簇之间的二部图,并对其进行有效分割,达到了一致的聚类结果 U-SPEC和U-SENC都具有近乎线性的时间和空间复杂度 2.I