Crates.io | knn_classifier |
lib.rs | knn_classifier |
version | 0.1.2 |
source | src |
created_at | 2024-02-24 10:03:25.860153 |
updated_at | 2024-02-25 04:33:53.683117 |
description | This simple library is a classifier for the k-Nearest Neighbors (kNN/k-nn) algorithm. |
homepage | |
repository | https://github.com/kujirahand/rust-knn-classifier |
max_upload_size | |
id | 1151526 |
size | 14,217 |
This is a library for solving classification problems using the k-nearest neighbor (k-nn) algorithm. Due to the simplicity of the algorithm, it is lightweight and well-suited for easily solving classification problems.
cargo add knn_classifier
The following sample is a program that determines if a person is of normal weight or fat, based on their height(cm) and weight(kg).
use knn_classifier::KnnClassifier;
fn main() {
// Create the classifier
let mut clf = KnnClassifier::new(3);
// Learn from data
clf.fit(
&[&[170., 60.], &[166., 58.], &[152., 99.], &[163., 95.], &[150., 90.]],
&["Normal", "Normal", "Obesity", "Obesity", "Obesity"]);
// Predict
let labels = clf.predict(&[vec![159., 85.], vec![165., 55.]]);
println!("{:?}", labels); // ["Fat", "Normal"]
assert_eq!(labels, ["Obesity", "Normal"]);
}
The classifier can be converted to and from CSV format.
// Convert Data to CSV
let s = clf.to_csv(',');
println!("{}", s);
// Convert from CSV
clf.from_csv(&s, ',', 0, false);
// Predict one
let label = clf.predict_one(&[150., 80.]);
assert_eq!(label, "Obesity");