# 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程序，里面有相关系数法聚类，欧几里得法等聚类方法