diff --git a/src/classification/mod.rs b/src/classification/mod.rs deleted file mode 100644 index 696cd87..0000000 --- a/src/classification/mod.rs +++ /dev/null @@ -1,23 +0,0 @@ -use crate::common::Nominal; - -pub mod knn; -pub mod logistic_regression; -pub mod decision_tree; -pub mod random_forest; - -pub trait Classifier -where - Y: Nominal -{ - - fn predict(&self, x: &X) -> Y; - - fn predict_vec(&self, x: &Vec) -> Vec{ - let mut result = Vec::new(); - for xv in x.iter() { - result.push(self.predict(xv)); - } - result - } - -} \ No newline at end of file diff --git a/src/ensemble/mod.rs b/src/ensemble/mod.rs new file mode 100644 index 0000000..5f273ad --- /dev/null +++ b/src/ensemble/mod.rs @@ -0,0 +1 @@ +pub mod random_forest; \ No newline at end of file diff --git a/src/classification/random_forest.rs b/src/ensemble/random_forest.rs similarity index 97% rename from src/classification/random_forest.rs rename to src/ensemble/random_forest.rs index 78d31ec..f26acab 100644 --- a/src/classification/random_forest.rs +++ b/src/ensemble/random_forest.rs @@ -3,7 +3,7 @@ extern crate rand; use rand::Rng; use std::default::Default; use crate::linalg::Matrix; -use crate::classification::decision_tree::{DecisionTree, DecisionTreeParameters, SplitCriterion, which_max}; +use crate::tree::decision_tree::{DecisionTree, DecisionTreeParameters, SplitCriterion, which_max}; #[derive(Debug, Clone)] pub struct RandomForestParameters { diff --git a/src/lib.rs b/src/lib.rs index a340717..1c2424f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,7 @@ -pub mod classification; -pub mod regression; +pub mod linear; +pub mod neighbors; +pub mod ensemble; +pub mod tree; pub mod cluster; pub mod decomposition; pub mod linalg; diff --git a/src/regression/linear_regression.rs b/src/linear/linear_regression.rs similarity index 100% rename from src/regression/linear_regression.rs rename to src/linear/linear_regression.rs diff --git a/src/classification/logistic_regression.rs b/src/linear/logistic_regression.rs similarity index 100% rename from src/classification/logistic_regression.rs rename to src/linear/logistic_regression.rs diff --git a/src/linear/mod.rs b/src/linear/mod.rs new file mode 100644 index 0000000..62ba834 --- /dev/null +++ b/src/linear/mod.rs @@ -0,0 +1,2 @@ +pub mod linear_regression; +pub mod logistic_regression; \ No newline at end of file diff --git a/src/classification/knn.rs b/src/neighbors/knn.rs similarity index 100% rename from src/classification/knn.rs rename to src/neighbors/knn.rs diff --git a/src/neighbors/mod.rs b/src/neighbors/mod.rs new file mode 100644 index 0000000..575b6e9 --- /dev/null +++ b/src/neighbors/mod.rs @@ -0,0 +1 @@ +pub mod knn; \ No newline at end of file diff --git a/src/regression/mod.rs b/src/regression/mod.rs deleted file mode 100644 index d765146..0000000 --- a/src/regression/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod linear_regression; \ No newline at end of file diff --git a/src/classification/decision_tree.rs b/src/tree/decision_tree.rs similarity index 100% rename from src/classification/decision_tree.rs rename to src/tree/decision_tree.rs diff --git a/src/tree/mod.rs b/src/tree/mod.rs new file mode 100644 index 0000000..1d5fd68 --- /dev/null +++ b/src/tree/mod.rs @@ -0,0 +1 @@ +pub mod decision_tree; \ No newline at end of file