From dcbbd89742c18482885d6b1cc44d0a1ca45142ce Mon Sep 17 00:00:00 2001 From: sinhrks Date: Sun, 18 Dec 2016 10:14:01 +0900 Subject: [PATCH] add feature gates --- Cargo.toml | 3 + src/datasets/mod.rs | 303 ++++++++++++++++++++++---------------------- src/lib.rs | 1 + tests/datasets.rs | 2 +- tests/lib.rs | 5 +- 5 files changed, 160 insertions(+), 154 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 256cc3cd..675b7873 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,10 @@ readme = "README.md" license = "MIT" [features] +default = ["datasets"] stats = [] +datasets = [] +test = ["datasets"] [dependencies] num = { version = "0.1.35", default-features = false } diff --git a/src/datasets/mod.rs b/src/datasets/mod.rs index f44748d7..1a4b364a 100644 --- a/src/datasets/mod.rs +++ b/src/datasets/mod.rs @@ -32,157 +32,156 @@ impl Dataset where D: Clone + Debug, T: Clone + Debug { /// Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. /// Irvine, CA: University of California, School of Information and Computer Science. pub fn load_iris() -> Dataset, Vector> { - let data: Vec = vec![5.1, 3.5, 1.4, 0.2, - 4.9, 3.0, 1.4, 0.2, - 4.7, 3.2, 1.3, 0.2, - 4.6, 3.1, 1.5, 0.2, - 5.0, 3.6, 1.4, 0.2, - 5.4, 3.9, 1.7, 0.4, - 4.6, 3.4, 1.4, 0.3, - 5.0, 3.4, 1.5, 0.2, - 4.4, 2.9, 1.4, 0.2, - 4.9, 3.1, 1.5, 0.1, - 5.4, 3.7, 1.5, 0.2, - 4.8, 3.4, 1.6, 0.2, - 4.8, 3.0, 1.4, 0.1, - 4.3, 3.0, 1.1, 0.1, - 5.8, 4.0, 1.2, 0.2, - 5.7, 4.4, 1.5, 0.4, - 5.4, 3.9, 1.3, 0.4, - 5.1, 3.5, 1.4, 0.3, - 5.7, 3.8, 1.7, 0.3, - 5.1, 3.8, 1.5, 0.3, - 5.4, 3.4, 1.7, 0.2, - 5.1, 3.7, 1.5, 0.4, - 4.6, 3.6, 1.0, 0.2, - 5.1, 3.3, 1.7, 0.5, - 4.8, 3.4, 1.9, 0.2, - 5.0, 3.0, 1.6, 0.2, - 5.0, 3.4, 1.6, 0.4, - 5.2, 3.5, 1.5, 0.2, - 5.2, 3.4, 1.4, 0.2, - 4.7, 3.2, 1.6, 0.2, - 4.8, 3.1, 1.6, 0.2, - 5.4, 3.4, 1.5, 0.4, - 5.2, 4.1, 1.5, 0.1, - 5.5, 4.2, 1.4, 0.2, - 4.9, 3.1, 1.5, 0.1, - 5.0, 3.2, 1.2, 0.2, - 5.5, 3.5, 1.3, 0.2, - 4.9, 3.1, 1.5, 0.1, - 4.4, 3.0, 1.3, 0.2, - 5.1, 3.4, 1.5, 0.2, - 5.0, 3.5, 1.3, 0.3, - 4.5, 2.3, 1.3, 0.3, - 4.4, 3.2, 1.3, 0.2, - 5.0, 3.5, 1.6, 0.6, - 5.1, 3.8, 1.9, 0.4, - 4.8, 3.0, 1.4, 0.3, - 5.1, 3.8, 1.6, 0.2, - 4.6, 3.2, 1.4, 0.2, - 5.3, 3.7, 1.5, 0.2, - 5.0, 3.3, 1.4, 0.2, - 7.0, 3.2, 4.7, 1.4, - 6.4, 3.2, 4.5, 1.5, - 6.9, 3.1, 4.9, 1.5, - 5.5, 2.3, 4.0, 1.3, - 6.5, 2.8, 4.6, 1.5, - 5.7, 2.8, 4.5, 1.3, - 6.3, 3.3, 4.7, 1.6, - 4.9, 2.4, 3.3, 1.0, - 6.6, 2.9, 4.6, 1.3, - 5.2, 2.7, 3.9, 1.4, - 5.0, 2.0, 3.5, 1.0, - 5.9, 3.0, 4.2, 1.5, - 6.0, 2.2, 4.0, 1.0, - 6.1, 2.9, 4.7, 1.4, - 5.6, 2.9, 3.6, 1.3, - 6.7, 3.1, 4.4, 1.4, - 5.6, 3.0, 4.5, 1.5, - 5.8, 2.7, 4.1, 1.0, - 6.2, 2.2, 4.5, 1.5, - 5.6, 2.5, 3.9, 1.1, - 5.9, 3.2, 4.8, 1.8, - 6.1, 2.8, 4.0, 1.3, - 6.3, 2.5, 4.9, 1.5, - 6.1, 2.8, 4.7, 1.2, - 6.4, 2.9, 4.3, 1.3, - 6.6, 3.0, 4.4, 1.4, - 6.8, 2.8, 4.8, 1.4, - 6.7, 3.0, 5.0, 1.7, - 6.0, 2.9, 4.5, 1.5, - 5.7, 2.6, 3.5, 1.0, - 5.5, 2.4, 3.8, 1.1, - 5.5, 2.4, 3.7, 1.0, - 5.8, 2.7, 3.9, 1.2, - 6.0, 2.7, 5.1, 1.6, - 5.4, 3.0, 4.5, 1.5, - 6.0, 3.4, 4.5, 1.6, - 6.7, 3.1, 4.7, 1.5, - 6.3, 2.3, 4.4, 1.3, - 5.6, 3.0, 4.1, 1.3, - 5.5, 2.5, 4.0, 1.3, - 5.5, 2.6, 4.4, 1.2, - 6.1, 3.0, 4.6, 1.4, - 5.8, 2.6, 4.0, 1.2, - 5.0, 2.3, 3.3, 1.0, - 5.6, 2.7, 4.2, 1.3, - 5.7, 3.0, 4.2, 1.2, - 5.7, 2.9, 4.2, 1.3, - 6.2, 2.9, 4.3, 1.3, - 5.1, 2.5, 3.0, 1.1, - 5.7, 2.8, 4.1, 1.3, - 6.3, 3.3, 6.0, 2.5, - 5.8, 2.7, 5.1, 1.9, - 7.1, 3.0, 5.9, 2.1, - 6.3, 2.9, 5.6, 1.8, - 6.5, 3.0, 5.8, 2.2, - 7.6, 3.0, 6.6, 2.1, - 4.9, 2.5, 4.5, 1.7, - 7.3, 2.9, 6.3, 1.8, - 6.7, 2.5, 5.8, 1.8, - 7.2, 3.6, 6.1, 2.5, - 6.5, 3.2, 5.1, 2.0, - 6.4, 2.7, 5.3, 1.9, - 6.8, 3.0, 5.5, 2.1, - 5.7, 2.5, 5.0, 2.0, - 5.8, 2.8, 5.1, 2.4, - 6.4, 3.2, 5.3, 2.3, - 6.5, 3.0, 5.5, 1.8, - 7.7, 3.8, 6.7, 2.2, - 7.7, 2.6, 6.9, 2.3, - 6.0, 2.2, 5.0, 1.5, - 6.9, 3.2, 5.7, 2.3, - 5.6, 2.8, 4.9, 2.0, - 7.7, 2.8, 6.7, 2.0, - 6.3, 2.7, 4.9, 1.8, - 6.7, 3.3, 5.7, 2.1, - 7.2, 3.2, 6.0, 1.8, - 6.2, 2.8, 4.8, 1.8, - 6.1, 3.0, 4.9, 1.8, - 6.4, 2.8, 5.6, 2.1, - 7.2, 3.0, 5.8, 1.6, - 7.4, 2.8, 6.1, 1.9, - 7.9, 3.8, 6.4, 2.0, - 6.4, 2.8, 5.6, 2.2, - 6.3, 2.8, 5.1, 1.5, - 6.1, 2.6, 5.6, 1.4, - 7.7, 3.0, 6.1, 2.3, - 6.3, 3.4, 5.6, 2.4, - 6.4, 3.1, 5.5, 1.8, - 6.0, 3.0, 4.8, 1.8, - 6.9, 3.1, 5.4, 2.1, - 6.7, 3.1, 5.6, 2.4, - 6.9, 3.1, 5.1, 2.3, - 5.8, 2.7, 5.1, 1.9, - 6.8, 3.2, 5.9, 2.3, - 6.7, 3.3, 5.7, 2.5, - 6.7, 3.0, 5.2, 2.3, - 6.3, 2.5, 5.0, 1.9, - 6.5, 3.0, 5.2, 2.0, - 6.2, 3.4, 5.4, 2.3, - 5.9, 3.0, 5.1, 1.8]; - + let data: Matrix = matrix![5.1, 3.5, 1.4, 0.2; + 4.9, 3.0, 1.4, 0.2; + 4.7, 3.2, 1.3, 0.2; + 4.6, 3.1, 1.5, 0.2; + 5.0, 3.6, 1.4, 0.2; + 5.4, 3.9, 1.7, 0.4; + 4.6, 3.4, 1.4, 0.3; + 5.0, 3.4, 1.5, 0.2; + 4.4, 2.9, 1.4, 0.2; + 4.9, 3.1, 1.5, 0.1; + 5.4, 3.7, 1.5, 0.2; + 4.8, 3.4, 1.6, 0.2; + 4.8, 3.0, 1.4, 0.1; + 4.3, 3.0, 1.1, 0.1; + 5.8, 4.0, 1.2, 0.2; + 5.7, 4.4, 1.5, 0.4; + 5.4, 3.9, 1.3, 0.4; + 5.1, 3.5, 1.4, 0.3; + 5.7, 3.8, 1.7, 0.3; + 5.1, 3.8, 1.5, 0.3; + 5.4, 3.4, 1.7, 0.2; + 5.1, 3.7, 1.5, 0.4; + 4.6, 3.6, 1.0, 0.2; + 5.1, 3.3, 1.7, 0.5; + 4.8, 3.4, 1.9, 0.2; + 5.0, 3.0, 1.6, 0.2; + 5.0, 3.4, 1.6, 0.4; + 5.2, 3.5, 1.5, 0.2; + 5.2, 3.4, 1.4, 0.2; + 4.7, 3.2, 1.6, 0.2; + 4.8, 3.1, 1.6, 0.2; + 5.4, 3.4, 1.5, 0.4; + 5.2, 4.1, 1.5, 0.1; + 5.5, 4.2, 1.4, 0.2; + 4.9, 3.1, 1.5, 0.1; + 5.0, 3.2, 1.2, 0.2; + 5.5, 3.5, 1.3, 0.2; + 4.9, 3.1, 1.5, 0.1; + 4.4, 3.0, 1.3, 0.2; + 5.1, 3.4, 1.5, 0.2; + 5.0, 3.5, 1.3, 0.3; + 4.5, 2.3, 1.3, 0.3; + 4.4, 3.2, 1.3, 0.2; + 5.0, 3.5, 1.6, 0.6; + 5.1, 3.8, 1.9, 0.4; + 4.8, 3.0, 1.4, 0.3; + 5.1, 3.8, 1.6, 0.2; + 4.6, 3.2, 1.4, 0.2; + 5.3, 3.7, 1.5, 0.2; + 5.0, 3.3, 1.4, 0.2; + 7.0, 3.2, 4.7, 1.4; + 6.4, 3.2, 4.5, 1.5; + 6.9, 3.1, 4.9, 1.5; + 5.5, 2.3, 4.0, 1.3; + 6.5, 2.8, 4.6, 1.5; + 5.7, 2.8, 4.5, 1.3; + 6.3, 3.3, 4.7, 1.6; + 4.9, 2.4, 3.3, 1.0; + 6.6, 2.9, 4.6, 1.3; + 5.2, 2.7, 3.9, 1.4; + 5.0, 2.0, 3.5, 1.0; + 5.9, 3.0, 4.2, 1.5; + 6.0, 2.2, 4.0, 1.0; + 6.1, 2.9, 4.7, 1.4; + 5.6, 2.9, 3.6, 1.3; + 6.7, 3.1, 4.4, 1.4; + 5.6, 3.0, 4.5, 1.5; + 5.8, 2.7, 4.1, 1.0; + 6.2, 2.2, 4.5, 1.5; + 5.6, 2.5, 3.9, 1.1; + 5.9, 3.2, 4.8, 1.8; + 6.1, 2.8, 4.0, 1.3; + 6.3, 2.5, 4.9, 1.5; + 6.1, 2.8, 4.7, 1.2; + 6.4, 2.9, 4.3, 1.3; + 6.6, 3.0, 4.4, 1.4; + 6.8, 2.8, 4.8, 1.4; + 6.7, 3.0, 5.0, 1.7; + 6.0, 2.9, 4.5, 1.5; + 5.7, 2.6, 3.5, 1.0; + 5.5, 2.4, 3.8, 1.1; + 5.5, 2.4, 3.7, 1.0; + 5.8, 2.7, 3.9, 1.2; + 6.0, 2.7, 5.1, 1.6; + 5.4, 3.0, 4.5, 1.5; + 6.0, 3.4, 4.5, 1.6; + 6.7, 3.1, 4.7, 1.5; + 6.3, 2.3, 4.4, 1.3; + 5.6, 3.0, 4.1, 1.3; + 5.5, 2.5, 4.0, 1.3; + 5.5, 2.6, 4.4, 1.2; + 6.1, 3.0, 4.6, 1.4; + 5.8, 2.6, 4.0, 1.2; + 5.0, 2.3, 3.3, 1.0; + 5.6, 2.7, 4.2, 1.3; + 5.7, 3.0, 4.2, 1.2; + 5.7, 2.9, 4.2, 1.3; + 6.2, 2.9, 4.3, 1.3; + 5.1, 2.5, 3.0, 1.1; + 5.7, 2.8, 4.1, 1.3; + 6.3, 3.3, 6.0, 2.5; + 5.8, 2.7, 5.1, 1.9; + 7.1, 3.0, 5.9, 2.1; + 6.3, 2.9, 5.6, 1.8; + 6.5, 3.0, 5.8, 2.2; + 7.6, 3.0, 6.6, 2.1; + 4.9, 2.5, 4.5, 1.7; + 7.3, 2.9, 6.3, 1.8; + 6.7, 2.5, 5.8, 1.8; + 7.2, 3.6, 6.1, 2.5; + 6.5, 3.2, 5.1, 2.0; + 6.4, 2.7, 5.3, 1.9; + 6.8, 3.0, 5.5, 2.1; + 5.7, 2.5, 5.0, 2.0; + 5.8, 2.8, 5.1, 2.4; + 6.4, 3.2, 5.3, 2.3; + 6.5, 3.0, 5.5, 1.8; + 7.7, 3.8, 6.7, 2.2; + 7.7, 2.6, 6.9, 2.3; + 6.0, 2.2, 5.0, 1.5; + 6.9, 3.2, 5.7, 2.3; + 5.6, 2.8, 4.9, 2.0; + 7.7, 2.8, 6.7, 2.0; + 6.3, 2.7, 4.9, 1.8; + 6.7, 3.3, 5.7, 2.1; + 7.2, 3.2, 6.0, 1.8; + 6.2, 2.8, 4.8, 1.8; + 6.1, 3.0, 4.9, 1.8; + 6.4, 2.8, 5.6, 2.1; + 7.2, 3.0, 5.8, 1.6; + 7.4, 2.8, 6.1, 1.9; + 7.9, 3.8, 6.4, 2.0; + 6.4, 2.8, 5.6, 2.2; + 6.3, 2.8, 5.1, 1.5; + 6.1, 2.6, 5.6, 1.4; + 7.7, 3.0, 6.1, 2.3; + 6.3, 3.4, 5.6, 2.4; + 6.4, 3.1, 5.5, 1.8; + 6.0, 3.0, 4.8, 1.8; + 6.9, 3.1, 5.4, 2.1; + 6.7, 3.1, 5.6, 2.4; + 6.9, 3.1, 5.1, 2.3; + 5.8, 2.7, 5.1, 1.9; + 6.8, 3.2, 5.9, 2.3; + 6.7, 3.3, 5.7, 2.5; + 6.7, 3.0, 5.2, 2.3; + 6.3, 2.5, 5.0, 1.9; + 6.5, 3.0, 5.2, 2.0; + 6.2, 3.4, 5.4, 2.3; + 5.9, 3.0, 5.1, 1.8]; let target: Vec = vec![0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -190,6 +189,6 @@ pub fn load_iris() -> Dataset, Vector> { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]; - Dataset{ data: Matrix::new(150, 4, data), + Dataset{ data: data, target: Vector::new(target) } } \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index b66a2730..a822f58a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -222,5 +222,6 @@ pub mod analysis { pub mod score; } +#[cfg(feature = "datasets")] /// Module for datasets. pub mod datasets; diff --git a/tests/datasets.rs b/tests/datasets.rs index 7a9713b1..5d42c054 100644 --- a/tests/datasets.rs +++ b/tests/datasets.rs @@ -1,7 +1,7 @@ extern crate rusty_machine as rm; use rm::datasets; -use rm::prelude::*; +use rm::linalg::BaseMatrix; #[test] fn test_iris() { diff --git a/tests/lib.rs b/tests/lib.rs index f1261809..70a37831 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -10,4 +10,7 @@ pub mod learning { pub mod optim { mod grad_desc; } -} \ No newline at end of file +} + +#[cfg(feature = "datasets")] +pub mod datasets; \ No newline at end of file