Spectral Clustering.zip

  • p6_237392
    了解作者
  • 5.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-26 05:57
    上传日期
matlab谱聚类工具包
Spectral Clustering.zip
  • Spectral Clustering
  • GenerateData.m
    988B
  • Perona_Freeman.m
    1.3KB
  • CalculateAffinity.m
    282B
  • Shi_Malik.m
    1.4KB
  • Ng_Jordan_Weiss.m
    2.1KB
  • Scott_Longuet_Higgins.m
    2.9KB
内容介绍
% G.L. Scott and H. C. Longuet-Higgins, % "Feature Grouping by Relocalisation of Eigenvectors of the Proxmity Matrix", % In Proc. British Machine Vision Conference, pages 103-108, 1990. % Asad Ali % GIK Institute of Engineering Sciences & Technology, Pakistan % Email: asad_82@yahoo.com % CONCEPT: Introduced the Q matrix for the discretization of eigenvectors for the % points belonging to the same cluster clear all; close all; % generate the data data = GenerateData(2); figure,plot(data(:,1), data(:,2),'r+'), title('Original Data Points'); grid on;shg % calculate the affinity matrix affinity = CalculateAffinity(data); figure,imshow(affinity,[]), title('Affinity Matrix'); % perform the eigen value decomposition [eigVectors,eigValues] = eig(affinity); % select k largest eigen vectors k = 3; nEigVec = eigVectors(:,(size(eigVectors,1)-(k-1)): size(eigVectors,1)); % construct the normalized matrix U from the obtained eigen vectors for i=1:size(nEigVec,1) % compute the norm of ith row and normalize the row to have unit % Euclidean norm n = sqrt(sum(nEigVec(i,:).^2)); U(i,:) = nEigVec(i,:) ./ n; end % construct the matrix Q Q = U * transpose(U); figure, imshow(Q,[]), title('Clustered Q Matrix'); % Q(i,j) = 1, if points belong to the same group and Q(i,j) = 0, % if points belong to different groups. % find data points where Q(i,j) >= 0.9 index = 1; for i=1:size(Q,1) for j=1:size(Q,2) if Q(i,j) >= 0.9 && Q(j,i) >= 0.9 dataPoints(index,1) = i; dataPoints(index,2) = j; index = index + 1; end end end % create full cluster set using all points index = 1; for i=1:size(data,1) [xx,yy] = find(dataPoints(:,1) == i); for j=1:size(xx,1) clusterSet(i,j) = dataPoints(xx(j),2); end end % create unique cluster set from all clusters uniqueIndex = 1; uniqueClusterSet = clusterSet(1,:); for i=1:size(clusterSet,1) found = 0; for j=1:uniqueIndex if isequal(uniqueClusterSet(j,:),clusterSet(i,:)) found = 1; end end if ~found uniqueIndex = uniqueIndex + 1; uniqueClusterSet(uniqueIndex,:) = clusterSet(i,:); end end % display the clustered data figure, hold on; for i=1:size(uniqueClusterSet,1) [xx,yy] = find(uniqueClusterSet(i,:) > 0); if i == 1 plot(data(uniqueClusterSet(i,yy(:)),1),data(uniqueClusterSet(i,yy(:)),2),'m+'); elseif i == 2 plot(data(uniqueClusterSet(i,yy(:)),1),data(uniqueClusterSet(i,yy(:)),2),'g+'); elseif i == 3 plot(data(uniqueClusterSet(i,yy(:)),1),data(uniqueClusterSet(i,yy(:)),2),'b+'); elseif i == 4 plot(data(uniqueClusterSet(i,yy(:)),1),data(uniqueClusterSet(i,yy(:)),2),'k+'); end end hold off; title('Clustering Results Using Q Matrix'); grid on; shg;
评论
    相关推荐
    • 粒子群聚类matlab
      K均值算法:调用模糊聚类库函数kmeans Pso粒子群聚类程序:没有最优解,多次迭代 基于模拟退火的k均值聚类:可以有最优解 基于pso的k均值算法:有最优解,根据适应度判断,适应度越小,分类效果越好
    • k-means聚类MATLAB的基本代码
      用于k-means聚类MATLAB代码的编写,实现数据的聚类分析
    • 动态聚类MATLAB 代码
      根据矩阵计算聚类中心 并分类,再计算聚类中心,迭代出最终结果
    • 聚类MATLAB程序
      聚类MATLAB程序,希望能够对同行有所帮助!
    • k均值聚类 matlab
      matlab 中 k均值聚类 从其他地方k来得 里面有图 句子有解释
    • Kmeans聚类matlab程序
      用Kmeans聚类方法实现随即点的分类,在二维平面上以均匀分布随机多个点,输入所需聚类数以得到聚类结果。
    • K聚类matlab程序
      方便对于大容量的数据进行聚类压缩,K-means算法目前是比较主流的主流方法,亲测有效,需要的可以下载,有问题的也可以给我留言进行交流。
    • 图像聚类matlab程序
      针对图像聚类,编写的图像聚类matlab的程序,简单易懂。
    • 聚类matlab实现
      聚类,数据集为大家熟悉的TwoMoons,还有SPL的字母字样的数据,用谱聚类实现之后,可以得到较好的结果。
    • 模糊聚类matlab程序
      积分最低,模糊聚类matlab程序,里面有相关系数法聚类,欧几里得法等聚类方法