- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
谱聚类-M与ATLAB
谱聚类-MATLAB实现 算法 1) 构建表示对象集的相似度矩阵W; 2) 通过计算相似度矩阵或拉普拉斯矩阵的前k个特征值与特征向量,构建特征向量空间; 3) 利用K-means或其它经典聚类算法对特征向量空间中的特征向量进行聚类。 谱聚类的基本思想便是利用样本数据之间的相似矩阵(拉普拉斯矩阵)进行特征分解( 通过Laplacian Eigenmap 的降维方式降维),然后将得到的特征向量进行 K-means聚类。 拉普拉斯矩阵 拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,主要应用在图论中,作为一个图的矩阵表示。 给定一个有n个顶点的图G,它的拉普拉斯矩阵定义为:L=D-A,其中D为图的度矩阵,A为图的邻接矩阵。 例: 图 邻接矩阵A 度矩阵D 拉普拉斯矩阵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); MATLAB函数--pdist 调用格式:Y=pdist(X,’metric’) 说明: 用 ‘metric’指定的方法计算 X 数据矩阵中对象之间的距离。 X:一个m×n的矩阵,它是由m个对象组成的数据集,每个对象的大小为n。 metric取值如下: ‘euclidean’:欧氏距离(默认); ‘seuclidean’:标准化欧氏距离; ‘mahalanobis’:马氏距离; ‘cityblock’:布洛克距离; ‘minkowski’:明可夫斯基距离; ‘cosine’:cos函数 ‘correlation’: ‘hamming’: ‘jaccard’: ‘chebychev’:Chebychev距离。 MATLAB函数--squareform 调用格式:Z=squareform(Y) 说明: 强制将距离矩阵从上三角形式转化为方阵形式,或从方阵形式转化为上三角形式。 MATLAB函数--sum a=sum(x); %列求和 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 中任何零元素将被忽略。 缩写: 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的列向量为对应特征向量。 [V,D] = eigs(Afun,n,…) [V,D,flag] = eigs(A,…) %flag表示特征值的收敛性,若flag=0,则所有特征值都收敛,否则,不是所有都收敛。 [V,D,flag] = eigs(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.
文档评论(0)