zoukankan      html  css  js  c++  java
  • spectral clustering

    参考这篇:

    http://blog.csdn.net/liu1194397014/article/details/52990015

    自己的改动:

    % for kmeans function
    pkg load statistics
    
    A = load('Gaussian.txt');
    %A = load('ringData.txt');
    [m, n] = size(A);
    data=A(:,:);
    % markersize default is 6
    %plot(data(:,1),data(:,2),'.', 'markersize', 10);
    % col sum. x^2 + y^2
    squareData = sum(data.*data,2);
    transitData = data*data';
    % repmat means repeat matrix to 1*m
    xi = repmat(squareData,1,m);
    xj = repmat(squareData',m,1);
    E = 2*transitData-xi-xj;
    sig = 1;
    W = exp(E / (2 * sig * sig));
    % set diagnoal to zeros
    W = W - diag(diag(W));
    D = diag(sum(W,2));
    %L = D-W;
    L =D^(-.5)*W*D^(-.5);
    
    K = 3;
    [X, di] = eig(L);
    [Xsort, Dsort] = eigsort(X, di);
    %Xsort = sort(X);
    Xuse = Xsort(:, 1:K);
    
    Xsq = Xuse.*Xuse;
    divmat=repmat(sqrt(sum(Xsq')'),1,K);
    Y=Xuse./divmat;
    
    [c, Dsum, z] = kmeans(Y, K);
    kk = c;
    c1 = find(kk == 1);
    c2 = find(kk == 2);
    c3 = find(kk == 3);
    
    plot(data(c1,1),data(c1,2),'.','marker', '+');
    hold on;
    plot(data(c2,1),data(c2,2),'.','marker', '*');
    hold on;
    plot(data(c3,1),data(c3,2),'.','marker', '+');
    
    function [Vsort, Dsort] = eigsort (V, D)
      eigvals = diag(D);
      [lohival,lohiindex] = sort(eigvals);
      lambda = flipud(lohival);
      index = flipud(lohiindex);
      Dsort = diag(lambda);
    % Sort eigenvectors to correspond to the ordered eigenvalues. Store sorted
    % eigenvectors as columns of the matrix vsort.
      M = length(lambda);
      Vsort = zeros(M,M);
    for i=1:M
      Vsort(:,i) = V(:,index(i));
    end;
    

    分别使用两个文件测试,结果如下图:

      

  • 相关阅读:
    HDFS数据流——读数据流程
    HDFS网络拓扑概念及机架感知(副本节点选择)
    HDFS数据流——写数据流程
    HDFS基本概念
    Hadoop运行模式:本地模式、伪分布模式、完全分布模式
    Java枚举enum关键字
    Java内部类
    Eclipse常用快捷键
    Linux中Mysql安装卸载
    服务器同时运行两个项目
  • 原文地址:https://www.cnblogs.com/pxy7896/p/6508670.html
Copyright © 2011-2022 走看看