当前位置:文档之家› 谱聚类-MATLAB

谱聚类-MATLAB


☼ ‘jaccard’: 离。
‘chebychev’:Chebychev距
MATLAB函数--squareform
☼ 调用格式:Z=squareform(Y)
☼ 说明: 强制将距离矩阵从上三角形式转化为方阵形式,或从方阵形式 转化为上三角形式。
MATLAB函数--sum
☼ a=sum(x); %列求和
☼ W=squareform(d);
☼ T=linkage(W,' ');
|
|
C=cluster(T,k);
A=cophenet(T,W);
☼ a=sum(x,2); %行求和
☼ a=sum(x(:)); %矩阵求和
MATLAB函数--sparse
☼ S = sparse(A) ☼ 将矩阵A转化为稀疏矩阵形式,即矩阵A中任何0元素被去除,非零元 素及其下标组成矩阵S。如果A本身是稀疏的,sparse(S)返回S。 ☼ S = sparse(i,j,s,m,n,nzmax) ☼ 由向量i,j,s生成一个m*n的含有nzmax个非零元素的稀疏矩阵S,并且 有 S(i(k),j(k)) = s(k)。向量 i,j 和 s 有相同的长度。对应对向量i和j的 值,s 中任何零元素将被忽略。 ☼ 缩写:
☼ [V,D] = eigs(Afun,n,…) ☼ [V,D,flag] = eigs(A,…) %flag表示特征值的收敛性,若flag=0,则所有特征值 都收敛,否则,不是所有都收敛。 ☼ [V,D,flag] = eiБайду номын сангаасs(Afun,n,…) ☼ d = eigs(A,k,sigma) % sigma:'lm' 表示绝对值最大的特征值;'sm' 绝对值 最小特征值;对实对称问题:'la'表示最大特征值;'sa'为最小特征值;对非对 称和复数问题:'lr' 表示最大实部;'sr' 表示最小实部;'li' 表示最大虚部;'si'表 示最小虚部
MATLAB函数--kmeans
☼ idx= kmeans(X,k);
☼ IDX:每个样本点所在的类别
☼ k:分类数
MATLAB聚类
☼ 1. clusterdata函数对样本数据进行一次聚类,clusterdata(M, 0.6)
☼ 2. K-均值聚类,kmeans(M, k)
☼ 3. 层次聚类:(1)找到数据集合中变量两两之间的相似性和非相似 性,用pdist函数计算变量之间的距离;(2)用 linkage函数定义变量 之间的连接;(3)用 cophenetic函数评价聚类信息;(4)用cluster 函数创建聚类。 ☼ d= pdist(M); | H=dendrogram(T);
拉普拉斯矩阵
☼ 拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离 散拉普拉斯算子,主要应用在图论中,作为一个图的矩阵表示。 ☼ 给定一个有n个顶点的图G,它的拉普拉斯矩阵定义为:L=D-A,其中D 为图的度矩阵,A为图的邻接矩阵。 ☼ 例:
☼ 图
邻接矩阵A
度矩阵D
谱聚类-MATLAB实现
算法
1) 构建表示对象集的相似度矩阵W;
2) 通过计算相似度矩阵或拉普拉斯矩阵的前k个特征值与特征向量,构建 特征向量空间;
3) 利用K-means或其它经典聚类算法对特征向量空间中的特征向量进行 聚类。
谱聚类的基本思想便 是利用样本数据之间 的相似矩阵(拉普拉 斯矩阵)进行特征分 解( 通过Laplacian Eigenmap 的降维方 式降维),然后将得 到的特征向量进行 K-means聚类。
拉普拉斯矩阵L
MATLAB代码
1) 构建表示对象集的相似度矩阵W;
d= pdist(M);
W=squareform(d); 2) 根据相似度矩阵W构建非正规拉普拉斯矩阵; N=tril(W,0);
s=sum(N);
D=diag(s); L=D-N; 3) 计算拉普拉斯矩阵的前k个特征值与特征向量,构建特征向量空间; [Q,A]=eigs(L,k,'SR'); 4) 利用K-means对特征向量空间中的特征向量进行聚类。 C = kmeans(Q, k);
☼ S = sparse(i,j,s,m,n)
用 nzmax = length(s)
☼ S = sparse(i,j,s) 使m = max(i) 和 n = max(j),在s中零元素被移除 前计算最大值,[i j s]中其中一行可能为[m n 0]。
MATLAB函数--eigs
☼ eig求所有特征值和特征向量 ☼ [V,D] = eigs(A,…) %D为6个最大特征值对角阵,V的列向量为对应特征向量。
MATLAB函数--pdist
☼ 调用格式:Y=pdist(X,’metric’) ☼ 说明: 用 ‘metric’指定的方法计算 X 数据矩阵中对象之间的距离。 ☼ X:一个m× n的矩阵,它是由 m个对象组成的数据集,每个对象的大 小为n。 ☼ metric取值如下: ☼ ‘euclidean’:欧氏距离(默认); 距离; ☼ ‘mahalanobis’:马氏距离; ☼ ‘minkowski’:明可夫斯基距离; ☼ ‘correlation’: ‘seuclidean’:标准化欧氏 ‘cityblock’:布洛克距离; ‘cosine’:cos函数 ‘hamming’:
相关主题