Commit Graph

308 Commits

Author SHA1 Message Date
Lorenzo Mec-iS
bb356e6a28 fix test 2025-01-20 17:29:29 +00:00
Lorenzo Mec-iS
52b797d520 format 2025-01-20 17:18:09 +00:00
Lorenzo Mec-iS
63fa00334b Fix clippy error 2025-01-20 17:17:41 +00:00
Lorenzo Mec-iS
40ee35b04f Implement predict_proba for RandomForestClassifier 2025-01-20 17:15:52 +00:00
Lorenzo Mec-iS
5711788fd8 add proper error handling 2025-01-20 16:08:29 +00:00
Lorenzo Mec-iS
fc7f2e61d9 format 2025-01-20 15:27:39 +00:00
Lorenzo Mec-iS
609f8024bc more clippy fixes 2025-01-20 15:23:36 +00:00
Lorenzo Mec-iS
58ee0cb8d1 Some automated fixes suggested by cargo clippy --fix 2025-01-20 15:04:21 +00:00
Lorenzo Mec-iS
68fd27f8f4 Implement predict_proba for DecisionTreeClassifier 2025-01-20 14:59:50 +00:00
morenol
ba75f9ffad chore: fix clippy (#283)
* chore: fix clippy


Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2024-11-25 11:34:29 -04:00
Lorenzo
239c00428f Patch to version 0.4.0 (#257)
* uncomment test

* Add random test for logistic regression

* linting

* Bump version

* Add test for logistic regression

* linting

* initial commit

* final

* final-clean

* Bump to 0.4.0

* Fix linter

* cleanup

* Update CHANDELOG with breaking changes

* Update CHANDELOG date

* Add functional methods to DenseMatrix implementation

* linting

* add type declaration in test

* Fix Wasm tests failing

* linting

* fix tests

* linting

* Add type annotations on BBDTree constructor

* fix clippy

* fix clippy

* fix tests

* bump version

* run fmt. fix changelog

---------

Co-authored-by: Edmund Cape <edmund@Edmunds-MacBook-Pro.local>
2024-03-04 08:51:27 -05:00
morenol
80a93c1a0e chore: fix clippy (#276)
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2024-02-25 00:17:30 -05:00
Tushushu
4eadd16ce4 Implement the feature importance for Decision Tree Classifier (#275)
* store impurity in the node

* add number of features

* add a TODO

* draft feature importance

* feat

* n_samples of node

* compute_feature_importances

* unit tests

* always calculate impurity

* fix bug

* fix linter
2024-02-24 23:37:30 -05:00
Frédéric Meyer
886b5631b7 In Naive Bayes, avoid using Option::unwrap and so avoid panicking from NaN values (#274) 2024-01-10 14:59:10 -04:00
morenol
6f22bbd150 chore: update clippy lints (#272)
* chore: fix clippy lints
---------

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2023-11-20 21:54:09 -04:00
Ruben De Smet
545ed6ce2b Remove some allocations (#262)
* Remove some allocations

* Remove some more allocations
2023-04-26 21:46:26 +08:00
morenol
8939ed93b9 chore: fix clippy warnings from Rust release 1.69 (#263)
* chore: fix clippy warnings from Rust release 1.69

* chore: run `cargo fmt`

* refactor: remove unused type parameter

---------

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2023-04-26 01:35:58 +09:00
Hsiang-Cheng Yang
d52830a818 Update arrays.rs (#253)
fix a typo
2023-03-23 19:15:54 -04:00
Lorenzo
f498f9629e Implement realnum::rand (#251)
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
Co-authored-by: Lorenzo <tunedconsulting@gmail.com>

* Implement rand. Use the new derive [#default]
* Use custom range
* Use range seed
* Bump version
* Add array length checks for
2023-03-20 14:45:44 +00:00
morenol
c7353d0b57 Run cargo clippy --fix (#250)
* Run `cargo clippy --fix`
* Run `cargo clippy --all-features --fix`
* Fix other clippy warnings
* cargo fmt

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2023-01-27 10:41:18 +00:00
morenol
8efb959b3c Handle kernel serialization (#232)
* Handle kernel serialization
* Do not use typetag in WASM
* enable tests for serialization
* Update serde feature deps

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
Co-authored-by: Lorenzo <tunedconsulting@gmail.com>
2022-11-08 16:18:05 +00:00
morenol
9eaae9ef35 Fixes for release (#237)
* Fixes for release
* add new test
* Remove change applied in development branch
* Only add dependency for wasm32
* Update ci.yml

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
Co-authored-by: Lorenzo <tunedconsulting@gmail.com>
2022-11-08 16:07:14 +00:00
Lorenzo
161d249917 Release 0.3 (#235) 2022-11-08 15:22:34 +00:00
morenol
425c3c1d0b Use Box in SVM and remove lifetimes (#228)
* Do not change external API
Authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-11-04 22:08:30 +00:00
morenol
35fe68e024 Fix CI (#227)
* Update ci.yml
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-11-03 13:48:16 -05:00
Lorenzo
d592b628be Implement CSV reader with new traits (#209) 2022-11-03 15:49:00 +00:00
Lorenzo (Mec-iS)
b66afa9222 Improve options conditionals 2022-11-03 14:58:05 +00:00
Lorenzo (Mec-iS)
ba70bb941f Implement Display for NaiveBayes 2022-11-03 14:18:56 +00:00
Lorenzo (Mec-iS)
d298709040 cargo clippy 2022-11-03 13:44:27 +00:00
Lorenzo (Mec-iS)
e50b4e8637 Fix signature of metrics tests 2022-11-03 13:40:54 +00:00
Lorenzo (Mec-iS)
26b72b67f4 Add kernels' parameters to public interface 2022-11-03 12:30:43 +00:00
Lorenzo
1964424589 Fix svr tests (#222) 2022-11-03 11:48:40 +00:00
Lorenzo (Mec-iS)
deac31a2ab Refactor modules structure in src/svm 2022-11-02 15:28:50 +00:00
Lorenzo (Mec-iS)
4cff7da50d Merge branch 'development' of github.com:smartcorelib/smartcore into development 2022-11-02 15:24:06 +00:00
Lorenzo (Mec-iS)
df0ae907f7 clean up svm 2022-11-02 15:23:56 +00:00
Lorenzo
cfbd45bfc0 Support Wasi as target (#216)
* Improve features
* Add wasm32-wasi as a target
* Update .github/workflows/ci.yml
Co-authored-by: morenol <22335041+morenol@users.noreply.github.com>
2022-11-02 15:22:38 +00:00
Lorenzo
b60329ca5d Disambiguate distances. Implement Fastpair. (#220) 2022-11-02 14:53:28 +00:00
morenol
4b096ad558 build: fix compilation without default features (#218)
* build: fix compilation with optional features
* Remove unused config from Cargo.toml
* Fix cache keys
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-11-02 10:09:03 +00:00
Lorenzo
4cf7e4d7b7 Improve features (#215) 2022-11-01 13:56:20 +00:00
Lorenzo
c3093f11f1 Fix metrics::auc (#212)
* Fix metrics::auc
2022-11-01 12:50:46 +00:00
Lorenzo
083803c900 Port ensemble. Add Display to naive_bayes (#208) 2022-10-31 17:35:33 +00:00
Lorenzo
52eb6ce023 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>
2022-10-31 10:44:57 +00:00
RJ Nowling
bb71656137 Dataset doc cleanup (#205)
* Update iris.rs

* Update mod.rs

* Update digits.rs
2022-10-30 09:32:41 +00:00
morenol
12df301f32 fix: fix issue with iterator for svc search (#182) 2022-10-02 06:15:28 -05:00
morenol
f8210d0af9 refactor: Try to follow similar pattern to other APIs (#180)
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-10-01 16:44:08 -05:00
morenol
3c62686d6e feat: expose hyper tuning module in model_selection (#179)
* feat: expose hyper tuning module in model_selection

* Move to a folder

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-10-01 12:47:56 -05:00
Montana Low
764309e313 make default params available to serde (#167)
* add seed param to search params

* make default params available to serde

* lints

* create defaults for enums

* lint
2022-09-21 22:48:31 -04:00
Montana Low
403d3f2348 add seed param to search params (#168) 2022-09-22 00:15:26 +01:00
morenol
3a44161406 Lmm/add seeds in more algorithms (#164)
* Provide better output in flaky tests

* feat: add seed parameter to multiple algorithms

* Update changelog

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-09-21 20:35:22 +01:00
Montana Low
48514d1b15 Complete grid search params (#166)
* grid search draft

* hyperparam search for linear estimators

* grid search for ensembles

* support grid search for more algos

* grid search for unsupervised algos

* minor cleanup
2022-09-21 20:34:21 +01:00