Merge potential next release v0.4 (#187) Breaking Changes
* First draft of the new n-dimensional arrays + NB use case * Improves default implementation of multiple Array methods * Refactors tree methods * Adds matrix decomposition routines * Adds matrix decomposition methods to ndarray and nalgebra bindings * Refactoring + linear regression now uses array2 * Ridge & Linear regression * LBFGS optimizer & logistic regression * LBFGS optimizer & logistic regression * Changes linear methods, metrics and model selection methods to new n-dimensional arrays * Switches KNN and clustering algorithms to new n-d array layer * Refactors distance metrics * Optimizes knn and clustering methods * Refactors metrics module * Switches decomposition methods to n-dimensional arrays * Linalg refactoring - cleanup rng merge (#172) * Remove legacy DenseMatrix and BaseMatrix implementation. Port the new Number, FloatNumber and Array implementation into module structure. * Exclude AUC metrics. Needs reimplementation * Improve developers walkthrough New traits system in place at `src/numbers` and `src/linalg` Co-authored-by: Lorenzo <tunedconsulting@gmail.com> * Provide SupervisedEstimator with a constructor to avoid explicit dynamical box allocation in 'cross_validate' and 'cross_validate_predict' as required by the use of 'dyn' as per Rust 2021 * Implement getters to use as_ref() in src/neighbors * Implement getters to use as_ref() in src/naive_bayes * Implement getters to use as_ref() in src/linear * Add Clone to src/naive_bayes * Change signature for cross_validate and other model_selection functions to abide to use of dyn in Rust 2021 * Implement ndarray-bindings. Remove FloatNumber from implementations * Drop nalgebra-bindings support (as decided in conf-call to go for ndarray) * Remove benches. Benches will have their own repo at smartcore-benches * Implement SVC * Implement SVC serialization. Move search parameters in dedicated module * Implement SVR. Definitely too slow * Fix compilation issues for wasm (#202) Co-authored-by: Luis Moreno <morenol@users.noreply.github.com> * Fix tests (#203) * Port linalg/traits/stats.rs * Improve methods naming * Improve Display for DenseMatrix Co-authored-by: Montana Low <montanalow@users.noreply.github.com> Co-authored-by: VolodymyrOrlov <volodymyr.orlov@gmail.com>
This commit is contained in:
+20
-21
@@ -2,9 +2,9 @@
|
||||
name = "smartcore"
|
||||
description = "The most advanced machine learning library in rust."
|
||||
homepage = "https://smartcorelib.org"
|
||||
version = "0.2.1"
|
||||
version = "0.4.0"
|
||||
authors = ["SmartCore Developers"]
|
||||
edition = "2018"
|
||||
edition = "2021"
|
||||
license = "Apache-2.0"
|
||||
documentation = "https://docs.rs/smartcore"
|
||||
repository = "https://github.com/smartcorelib/smartcore"
|
||||
@@ -13,31 +13,27 @@ keywords = ["machine-learning", "statistical", "ai", "optimization", "linear-alg
|
||||
categories = ["science"]
|
||||
|
||||
[features]
|
||||
default = ["datasets"]
|
||||
default = ["datasets", "serde"]
|
||||
ndarray-bindings = ["ndarray"]
|
||||
nalgebra-bindings = ["nalgebra"]
|
||||
datasets = ["rand_distr", "std"]
|
||||
fp_bench = ["itertools"]
|
||||
std = ["rand/std", "rand/std_rng"]
|
||||
# wasm32 only
|
||||
js = ["getrandom/js"]
|
||||
|
||||
[dependencies]
|
||||
approx = "0.5.1"
|
||||
cfg-if = "1.0.0"
|
||||
ndarray = { version = "0.15", optional = true }
|
||||
nalgebra = { version = "0.31", optional = true }
|
||||
num-traits = "0.2"
|
||||
num-traits = "0.2.12"
|
||||
num = "0.4"
|
||||
rand = { version = "0.8", default-features = false, features = ["small_rng"] }
|
||||
rand_distr = { version = "0.4", optional = true }
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
itertools = { version = "0.10.3", optional = true }
|
||||
cfg-if = "1.0.0"
|
||||
|
||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||
getrandom = { version = "0.2", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
smartcore = { path = ".", features = ["fp_bench"] }
|
||||
criterion = { version = "0.4", default-features = false }
|
||||
serde_json = "1.0"
|
||||
bincode = "1.3.1"
|
||||
@@ -45,16 +41,19 @@ bincode = "1.3.1"
|
||||
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
|
||||
wasm-bindgen-test = "0.3"
|
||||
|
||||
[[bench]]
|
||||
name = "distance"
|
||||
harness = false
|
||||
[profile.bench]
|
||||
debug = true
|
||||
|
||||
[[bench]]
|
||||
name = "naive_bayes"
|
||||
harness = false
|
||||
required-features = ["ndarray-bindings", "nalgebra-bindings"]
|
||||
resolver = "2"
|
||||
|
||||
[[bench]]
|
||||
name = "fastpair"
|
||||
harness = false
|
||||
required-features = ["fp_bench"]
|
||||
[profile.test]
|
||||
debug = 1
|
||||
opt-level = 3
|
||||
split-debuginfo = "unpacked"
|
||||
|
||||
[profile.release]
|
||||
strip = true
|
||||
debug = 1
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
overflow-checks = true
|
||||
Reference in New Issue
Block a user