ncutdc

PURPOSE

Minimum Normalised Cut Divisive Clustering

SYNOPSIS

function [idx,t] = ncutdc(X, K, varargin)

DESCRIPTION

Minimum Normalised Cut Divisive Clustering
[IDX,T] = NCUTDC(X, K, VARARGIN)

  [IDX, T] = NCUTDC(X, K) produces a divisive hierarchical clustering of the 
  N-by-D data matrix X into K clusters. This algorithm uses a hierarchy of
  binary partitions each splitting the observations with the hyperplane that
  minimises the normalised cut criterion. The algorithm can return fewer 
  clusters if no valid hyperplane separators are found.

  [IDX, T] = NCUTDC(X, K) returns the cluster assignment, IDX, and the  binary 
  tree (T) containing the cluster hierarchy

  [IDX, T] = NCUTDC(X, K, 'PARAM1',val1, 'PARAM2',val2, ...) specifies optional parameters
  in the form of Name,Value pairs. 

  'v0' - Function handle. v0(X) returns D-by-S matrix of initial projection vectors
       (default: v0 = @(X)(pca(X,'NumComponents',1)) -- 1st principal component)

  'sigma' - Function handle. sigma(X,pars) returns scaling parameter (sigma) as function of data matrix
    (default: sigma = 100*sqrt(l)*N^(-0.2), where l = max(eig(cov(X))); )

  'split_index' - Criterion determining which cluster to split
    Function Handle: index = split_index(v, X, pars)
            (v: projection vector, X:data matrix, pars: parameters structure)
    Cluster with MAXIMUM INDEX is split at each step of the algorithm
    Two standard choices of split index can be enabled by setting 'split_index' to 
    one of the strings below:
        + 'fval':    Split cluster whose hyperplane achieves the lowest normalised cut value
        + 'size':    Split largest cluster
    (default: split_index = 'fval')

  'minsize' - Minimum cluster size (integer)
    (default minsize = 1)

  'maxit' - Number of BFGS iterations to perform for each value of alpha (default: 50)

  'ftol' - Stopping criterion for change in objective function value over consecutive iterations
    (default: 1.e-7)

  'verb' - Verbosity. Values greater than 0 enable visualisation during execution
    Enabling this option slows down the algorithm considerably
    (default: 0)

  'labels' - true cluster labels. Specifying these enables the computation of performance over 
    successive iterations and a better visualisation of how clusters are split

  'colours' - Matrix containing colour specification for observations in different clusters
    Number of rows must be equal to the number of true clusters (if 'labels' has been specified) or equal to 2.

Reference:
D.P. Hofmeyr. Clustering by minimum cut hyperplanes. IEEE Transactions on Pattern
Analysis and Machine Intelligence, 39(8):1547–1560, 2017.

CROSS-REFERENCE INFORMATION

This function calls: This function is called by:
Generated on Tue 17-Jul-2018 18:58:09 by m2html © 2005