Module rusty_machine::learning::k_means [] [src]

K-means Classification

Provides implementation of K-Means classification.

Usage

use rusty_machine::linalg::Matrix;
use rusty_machine::learning::k_means::KMeansClassifier;
use rusty_machine::learning::UnSupModel;

let inputs = Matrix::new(3, 2, vec![1.0, 2.0, 1.0, 3.0, 1.0, 4.0]);
let test_inputs = Matrix::new(1, 2, vec![1.0, 3.5]);

// Create model with k(=2) classes.
let mut model = KMeansClassifier::new(2);

// Where inputs is a Matrix with features in columns.
model.train(&inputs).unwrap();

// Where test_inputs is a Matrix with features in columns.
let a = model.predict(&test_inputs).unwrap();

Additionally you can control the initialization algorithm and max number of iterations.

Initializations

Three initialization algorithms are supported.

Forgy initialization

Choose initial centroids randomly from the data.

Random Partition initialization

Randomly assign each data point to one of k clusters. The initial centroids are the mean of the data in their class.

K-means++ initialization

The k-means++ scheme.

Structs

Forgy

The Forgy initialization scheme.

KMeansClassifier

K-Means Classification model.

KPlusPlus

The K-means ++ initialization scheme.

RandomPartition

The Random Partition initialization scheme.

Traits

Initializer

Trait for algorithms initializing the K-means centroids.