Clustering - accord-net/framework GitHub Wiki

Clustering problems

Unsupervised classification

Knowledge discovery

Models

K-Means

using Accord.MachineLearning;

Accord.Math.Random.Generator.Seed = 0;

// Declare some observations
double[][] observations =
{
    new double[] { -5, -2, -1 },
    new double[] { -5, -5, -6 },
    new double[] {  2,  1,  1 },
    new double[] {  1,  1,  2 },
    new double[] {  1,  2,  2 },
    new double[] {  3,  1,  2 },
    new double[] { 11,  5,  4 },
    new double[] { 15,  5,  6 },
    new double[] { 10,  5,  6 },
};

// Create a new K-Means algorithm with 3 clusters 
KMeans kmeans = new KMeans(3);

// Compute the algorithm, retrieving an integer array
//  containing the labels for each of the observations
KMeansClusterCollection clusters = kmeans.Learn(observations);

// As a result, the first two observations should belong to the
//  same cluster (thus having the same label). The same should
//  happen to the next four observations and to the last three.
int[] labels = clusters.Decide(observations);

Binary Split

Mean Shift

Gaussian Mixture Models