Expand description

K Nearest Neighbors Classifier

K Nearest Neighbors Classifier

smartcore relies on 2 backend algorithms to speedup KNN queries:

The parameter k controls the stability of the KNN estimate: when k is small the algorithm is sensitive to the noise in data. When k increases the estimator becomes more stable. In terms of the bias variance trade-off the variance decreases with k and the bias is likely to increase with k.

When you don’t know which search algorithm and k value to use go with default parameters defined by Default::default()

To fit the model to a 4 x 2 matrix with 4 training samples, 2 features per sample:

use smartcore::linalg::basic::matrix::DenseMatrix;
use smartcore::neighbors::knn_classifier::*;
use smartcore::metrics::distance::*;

//your explanatory variables. Each row is a training sample with 2 numerical features
let x = DenseMatrix::from_2d_array(&[
    &[1., 2.],
    &[3., 4.],
    &[5., 6.],
    &[7., 8.],
&[9., 10.]]);
let y = vec![2, 2, 2, 3, 3]; //your class labels

let knn = KNNClassifier::fit(&x, &y, Default::default()).unwrap();
let y_hat = knn.predict(&x).unwrap();

variable y_hat will hold a vector with estimates of class labels

Structs