hclust

Hierarchical clustering algorithms in JavaScript
Installationnpm install ml-hclust
MethodsGenerate a clustering hierarchy.
new agnes(data,[options])AGNES (AGglomerative NESting): Continuously merge nodes that have the least dissimilarity.
Arguments
- data: Array of points to be clustered, are an array of arrays, as [[x1,y1],[x2,y2], ... ]
- options: Is an object with the parameters sim and kind, where sim is a distance function between vectors (the default function is the euclidean), and kind is the string name for the function to calculate distance between clusters, and it could be single(default), complete, average, centroid or ward
getDendogram([input])Returns a phylogram (a dendogram with weights) and change the leaves values for the values in input, if it's given.
Example
var hclust = require('ml-hclust')var data = [[2,6], [3,4], [3,8]];var HC = new hclust.agnes(data);var dend1 = HC.getDendogram();var dend2 = HC.getDendogram([{a:1},{b:2},{c:3}]);
nClusters(N)Returns at least N clusters based in the clustering tree if it's possible
new diana(data,[options])DIANA (Divisive ANAlysis): The process starts at the root with all the points as one cluster and recursively splits the higher level clusters to build the dendrogram.
Arguments
- data: Array of points to be clustered, are an array of arrays, as [[x1,y1],[x2,y2], ... ]
- options: Is an object with the parameters sim and kind, where sim is a distance function between vectors (the default function is the euclidean), and kind is the string name for the function to calculate distance between clusters, and it could be single(default), complete, average, centroid or ward
getDendogram([input])Returns a phylogram (a dendogram with weights) and change the leaves values for the values in input, if it's given.
Example
var hclust = require('ml-hclust')var data = [[2,6], [3,4], [3,8]];var HC = new hclust.diana(data);var dend1 = HC.getDendogram();var dend2 = HC.getDendogram([{a:1},{b:2},{c:3}]);
nClusters(N)Returns at least N clusters based in the clustering tree if it's possible
new birch(data,[options])BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies): Incrementally construct a CF (Clustering Feature) tree, a hierarchical data structure for multiphase clustering
new cure(data,[options])CURE (Clustering Using REpresentatives):
new chameleon(data,[options])CHAMELEON
Test$ npm install$ npm test
AuthorsLicenseMIT