#分类 #算法 #机器学习 #k-nn

bin+lib knn_classifier

这个简单的库是 k-最近邻(kNN/k-nn)算法的分类器

3 个版本

0.1.2 2024年2月25日
0.1.1 2024年2月24日
0.1.0 2024年2月24日

#589算法

MIT 许可证

14KB
169

k-nn 分类器

这是一个使用 k-最近邻(k-nn)算法解决分类问题的库。由于算法的简单性,它轻量级且非常适合轻松解决分类问题。

安装

cargo add knn_classifier

简单示例

以下示例是一个程序,根据身高(cm)和体重(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"]);
}

支持 CSV 格式

分类器可以转换为 CSV 格式。

// 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");

示例

参考

无运行时依赖