1use mlinrust::dataset::{Dataset, FromPathDataset, DatasetName};
2use mlinrust::model::knn::{KNNAlg, KNNModel, KNNWeighting};
3use mlinrust::utils::evaluate;
4
5fn main() {
6
7 let path = ".data/MobilePhonePricePredict/train.csv";
8
9 let dataset = Dataset::<usize>::from_name(path, DatasetName::MobilePhonePricePredictDataset, None);
10 let mut temp = dataset.split_dataset(vec![0.8, 0.2], 0);
11 let (train_dataset, test_dataset) = (temp.remove(0), temp.remove(0));
12
13 println!("train {} : test {}", train_dataset.len(), test_dataset.len());
14
15 let model = KNNModel::new(KNNAlg::KdTree, 16, Some(KNNWeighting::Distance), train_dataset, Some(2));
16 println!("model training done!");
17
18 let (correct, acc) = evaluate(&test_dataset, &model);
19 println!("evaluate results\ncorrect {correct} / total {}, acc = {acc:.5}", test_dataset.len());
20}