Machine learning
Use k-means clustering algorithm to classify data points
This page is outdated. Please visit here to see the use case of Rust function in machine learning.
use wasm_bindgen::prelude::*;
use ndarray::{Array2};
use std::str::FromStr;
#[wasm_bindgen]
pub fn fit (csv_content: &[u8], dim: i32, num_clusters: i32) -> String {
let data = read_data(csv_content, dim as usize);
let (means, _clusters) = rkm::kmeans_lloyd(&data.view(), num_clusters as usize);
return serde_json::to_string(&means).unwrap();
}
fn read_data(csv_content: &[u8], dim: usize) -> Array2<f32> {
let mut data_reader = csv::Reader::from_reader(csv_content);
let mut data: Vec<f32> = Vec::new();
for record in data_reader.records() {
for field in record.unwrap().iter() {
let value = f32::from_str(field);
data.push(value.unwrap());
}
}
Array2::from_shape_vec((data.len() / dim, dim), data).unwrap()
}Last updated
Was this helpful?