谱聚类matlab实现

  • K3_969528
    了解作者
  • matlab
    开发工具
  • 55.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-22 10:27
    上传日期
谱聚类,数据集为大家熟悉的TwoMoons,还有SPL的字母字样的数据,用谱聚类实现之后,可以得到较好的结果。
Spectral Clustering.zip
  • Spectral Clustering
  • Data
  • Figures
  • Original_SPL.jpg
    21.6KB
  • Ideal_SPL.jpg
    21.7KB
  • TwoMoons.mat
    7.4KB
  • SPL.mat
    5.4KB
  • Sparity_SPL.mat
    3.5KB
  • Demo
  • Demo_TwoMoons.m
    730B
  • Demo_SPL.m
    539B
  • Demo_SPL.asv
    541B
  • GenerateSPL.m
    1.6KB
  • Functions
  • Visual_SC.m
    403B
  • AdjacencyMatrix.m
    355B
  • SpectralClustering.m
    2KB
  • VisualData.m
    1.6KB
  • Visual_SPL.m
    429B
内容介绍
function [ C, L, D, Q, V ] = SpectralClustering(W, k) %||||||||||||||||||||||||||||||||||||||||||| Note |||||||||||||||||||||||||||||||||||||||||| % spectral clustering algorithm % input: adjacency matrix W; number of cluster k % return: cluster indicator vectors as columns in C; unnormalized Laplacian L; % degree matrix D; eigenvectors matrix Q; eigenvalues matrix V %//////////////////////////////// Body //////////////////////////////////// % calculate degree matrix degs = sum(W, 2); D = sparse(1:size(W, 1), 1:size(W, 2), degs); % sparse matrix % compute unnormalized Laplacian L = D - W; % compute the eigenvectors corresponding to the k smallest eigenvalues % diagonal matrix V is Ncut L's k smallest magnitude eigenvalues % matrix Q whose columns are the corresponding eigenvectors. [Q1, V1] = eigs(L, k+1, 'SA'); % min eigenvalue == 0 v = diag(V1); V = diag(v(2:end)); Q = Q1(:,2:end); % use the k-means algorithm to cluster V row-wise % C will be a n-by-1 matrix containing the cluster number for each data point C = kmeans(Q, k); % convert C to a n-by-k matrix containing the k indicator vectors as columns C = sparse(1:size(D, 1), C, 1); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % function C = SpectralClustering(W, k) % [n,m] = size(W) % s = sum(W); % D = full(sparse(1:n, 1:n, s)); % E = D^(-1/2)*W*D^(-1/2); % [Q, V] = eigs(E, k); % C = kmeans(Q, k); % end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % [Q1,V1] = eig(L); % m = size(L,1); % Q = zeros(m,k); % diag_e = diag(V1); % element = sort( diag_e ); % % if ( diag_e(1)<1e-10 ) % for i = 2:( k+1 ) % v(i-1) = element(i); % idx = find( diag_e == v(i-1),1); % Q(:,i-1) = Q1(:,idx); % end % else % for i = 1:k % v(i) = element(i); % idx = find( V1 == v(i),1); % Q(:,i) = Q1(:,idx); % end % end % V = diag(v); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
评论
    相关推荐
    • Matlab合集
      冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版(冈萨雷斯)+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算:MATLAB技术实现(第2版)].杨淑莹.扫描版
    • MATLAB教程
      MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
    • MATLAB
      MATLAB 该项目是在matlab上完成的,涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的,并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵(旋转,平移等)的概念...
    • MATLAB基础
      一本学习matlab的一本好书
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • matlabruntime
      通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此,我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序,然后使用具有Matlab运行时( 的容器)运行该应用程序 )...
    • matlab实现
      matlab实现 matlab实现matlab实现matlab实现matlab实现
    • matlab 教程
      matlab 信号处理资料,里面包含信号处理pdf文档,一些杂乱的程序和命令等
    • matlab教程
      matlab教程,PPT格式,包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点,并且每个知识点独立成为PPT,内还含有matlab信号处理详解等文档...
    • matlab简介
      1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后,会看到一个视窗MATLAB Command Window称为指令视窗,它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...