/// <summary> /// Hierarchical clustering successively finds the closest distance between pairs of centroids until k is reached /// </summary> /// <param name="data">The list of vectors to cluster</param> /// <param name="k">The number of clusters to find</param> /// <returns>A list of k clusters</returns> public static IReadOnlyList <IReadOnlyList <IVector> > HierachicalCluster( this IReadOnlyList <IVector> data, int k) { using var clusterer = new Hierarchical(k, data); clusterer.Cluster(); return(clusterer.Clusters); }