Commit Graph

307 Commits

Author SHA1 Message Date
morenol c21e75276a feat: allocate first and then proceed to create matrix from Vec of Ro… (#159)
* feat: allocate first and then proceed to create matrix from Vec of RowVectors
2022-09-20 11:29:54 +01:00
morenol 2510ca4e9d fix: fix compilation warnings when running only with default features (#160)
* fix: fix compilation warnings when running only with default features
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-09-19 10:44:01 -04:00
Tim Toebrock b6f585e60f Implement a generic read_csv method (#147)
* feat: Add interface to build `Matrix` from rows.
* feat: Add option to derive `RealNumber` from string.
To construct a `Matrix` from csv, and therefore from string, I need to be able to deserialize a generic `RealNumber` from string.
* feat: Implement `Matrix::read_csv`.
2022-09-19 10:38:01 +01:00
Montana Low 4685fc73e0 grid search (#154)
* grid search draft
* hyperparam search for linear estimators
2022-09-19 10:31:56 +01:00
Montana Low 2e5f88fad8 Handle multiclass precision/recall (#152)
* handle multiclass precision/recall
2022-09-13 16:23:45 +01:00
Christos Katsakioris 4d5f64c758 Add serde for StandardScaler (#148)
* Derive `serde::Serialize` and `serde::Deserialize` for
  `StandardScaler`.
* Add relevant unit test.

Signed-off-by: Christos Katsakioris <ckatsak@gmail.com>

Signed-off-by: Christos Katsakioris <ckatsak@gmail.com>
2022-09-06 18:37:54 +01:00
Tim Toebrock d305406dfd Implementation of Standard scaler (#143)
* docs: Fix typo in doc for categorical transformer.
* feat: Add option to take a column from Matrix.
I created the method `Matrix::take_column` that uses the `Matrix::take`-interface to extract a single column from a matrix. I need that feature in the implementation of  `StandardScaler`.
* feat: Add `StandardScaler`.
Authored-by: titoeb <timtoebrock@googlemail.com>
2022-08-26 15:20:20 +01:00
Lorenzo 3d2f4f71fa Add example for FastPair (#144)
* Add example

* Move to top

* Add imports to example

* Fix imports
2022-08-24 13:40:22 +01:00
Lorenzo a1c56a859e Implement fastpair (#142)
* initial fastpair implementation
* FastPair initial implementation
* implement fastpair
* Add random test
* Add bench for fastpair
* Refactor with constructor for FastPair
* Add serialization for PairwiseDistance
* Add fp_bench feature for fastpair bench
2022-08-23 16:56:21 +01:00
Chris McComb d905ebea15 Added additional doctest and fixed indices (#141) 2022-08-12 17:38:13 -04:00
morenol b482acdc8d Fix clippy warnings (#139)
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-07-13 21:06:05 -04:00
ferrouille b4a807eb9f Add SVC::decision_function (#135) 2022-06-21 12:48:16 -04:00
dependabot-preview[bot] 322610c7fb build(deps): update nalgebra requirement from 0.23.0 to 0.26.2 (#98)
* build(deps): update nalgebra requirement from 0.23.0 to 0.26.2

Updates the requirements on [nalgebra](https://github.com/dimforge/nalgebra) to permit the latest version.
- [Release notes](https://github.com/dimforge/nalgebra/releases)
- [Changelog](https://github.com/dimforge/nalgebra/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/dimforge/nalgebra/compare/v0.23.0...v0.26.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* fix: updates for nalgebre

* test: explicitly call pow_mut from BaseVector since now it conflicts with nalgebra implementation

* Don't be strict with dependencies

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-05-11 13:04:27 -04:00
Volodymyr Orlov 8297cbe67e Fixes broken build 2022-05-09 15:50:25 -07:00
VolodymyrOrlov 38c9b5ad2f Merge pull request #126 from ericschief/cover-tree-fix
Fix issue with cover tree k-nearest neighbors
2022-05-09 15:34:10 -07:00
morenol 820201e920 Solve conflic with num-traits (#130)
* Solve conflic with num-traits

* Fix clippy warnings

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2022-05-05 10:39:18 -04:00
Kiran Eiden 389b0e8e67 Only sort in CoverTree::find function if there are more than k points
Sorting only needs to be done if the list of KNN candidates is greater
than length k.
2022-01-04 14:50:47 -08:00
Kiran Eiden f93286ffbd Fix bug in cover tree KNN algorithm
Prior to this change, the find function implementation for the
CoverTree class could have potentially returned the wrong result
in cases where there were multiple points in the dataset
equidistant from p. For example, the current test passed for k=3
but failed to produce the correct result for k=4 (it claimed that
3, 4, 5, and 7 were the 4 closest points to 5 in the dataset
rather than 3, 4, 5, and 6). Sorting the neighbors vector before
collecting the first k values from it resolved this issue.
2022-01-02 20:05:39 -08:00
Malte Londschien 12c102d02b Allow setting seed for RandomForestClassifier and Regressor (#120)
* Seed for the classifier.

* Seed for the regressor.

* Forgot one.

* typo.
2021-11-10 20:51:24 -04:00
Malte Londschien 3bf8813946 Merge branch 'development' into issue-115 2021-10-28 09:54:22 +02:00
VolodymyrOrlov 7830946ecb Merge pull request #117 from morenol/lmm/fix_clippy
Fix clippy warnings
2021-10-27 11:01:16 -07:00
Luis Moreno 4397c91570 Fix clippy warnings 2021-10-20 14:15:41 -05:00
Malte Londschien 14245e15ad type error. 2021-10-20 17:13:00 +02:00
Malte Londschien d0a4ccbe20 Set keep_samples attribute. 2021-10-20 17:09:13 +02:00
Malte Londschien 85b9fde9a7 Another format. 2021-10-20 17:04:24 +02:00
Malte Londschien d239314967 Same for regressor. 2021-10-14 09:59:26 +02:00
Malte Londschien 4bae62ab2f Test. 2021-10-14 09:47:00 +02:00
Malte Londschien e8cba343ca Initial implementation of predict_oob. 2021-10-14 09:34:45 +02:00
Luis Moreno 0b3bf946df chore: fix clippy warnings 2021-06-05 01:41:40 -04:00
Luis Moreno 763a8370eb docs: fix documentation of naive bayes structs 2021-06-05 00:25:34 -04:00
Luis Moreno c295a0d1bb fix: fix code to be compatible with rand 0.8, following the recommendations of https://rust-random.github.io/book/update-0.8.html and https://docs.rs/getrandom/0.2.2/getrandom/#webassembly-support 2021-04-28 16:28:43 -04:00
Luis Moreno 162bed2aa2 feat: added support to wasm (#94)
* test: run tests also in wasm targets

* fix: install rand with wasm-bindgen por wasm targets

* fix: use actual usize size to access buffer.

* fix: do not run functions that create files in wasm.

* test: do not run in wasm test that panics.

Co-authored-by: Luis Moreno <morenol@users.noreply.github.com>
2021-04-28 15:58:39 -04:00
Luis Moreno d9814c0918 style(lint): fix clippy warnings 2021-04-27 09:32:01 -04:00
Luis Moreno 1395cc6518 fix: Use usize time for usize::from_le_bytes buffer 2021-03-05 10:25:34 -04:00
zhangyiqun01 6d58dbe2a2 rename svm svr to svc in tests and docs 2021-02-26 10:52:04 +08:00
Luis Moreno 1b42f8a396 feat: Add getters for naive bayes structs (#74)
* feat: Add getters for GaussianNB

* Add classes getter to BernoulliNB

Add classes getter to CategoricalNB

Add classes getter to MultinomialNB

* Add feature_log_prob getter to MultinomialNB

* Add class_count to NB structs

* Add n_features getter for NB

* Add feature_count to MultinomialNB and BernoulliNB

* Add n_categories to CategoricalNB

* Implement feature_log_prob and category_count getter for CategoricalNB

* Implement feature_log_prob for BernoulliNB
2021-02-25 15:44:34 -04:00
Chris McComb fed11f005c Fixed formatting to pass cargo format check. 2021-02-17 21:29:51 -05:00
Chris McComb 483a21bec0 Oops, test was failing due to typo. Fixed now. 2021-02-17 21:22:41 -05:00
Chris McComb 4fb2625a33 Implemented make_moons generator per https://github.com/scikit-learn/scikit-learn/blob/95119c13a/sklearn/datasets/_samples_generator.py#L683 2021-02-17 21:22:06 -05:00
Luis Moreno a30802ec43 fix: Change to compile for wasm32-unknown-unknown target (#80) 2021-02-16 22:20:02 -04:00
Luis Moreno 4af69878e0 fix: Fix new clippy warnings (#79)
* Fix new clippy warnings

* Allow clippy::suspicious-operation-groupings
2021-02-16 18:19:14 -04:00
VolodymyrOrlov 745d0b570e Merge pull request #76 from gaxler/OneHotEncoder
One hot encoder
2021-02-11 17:42:57 -08:00
gaxler 6b5bed6092 remove old 2021-02-09 22:01:59 -08:00
gaxler af6ec2d402 rename categorical 2021-02-09 22:01:34 -08:00
gaxler 828df4e338 Use CategoryMapper to transform an iterator. No more passing iterator to SeriesEncoders 2021-02-03 13:42:27 -08:00
gaxler 374dfeceb9 No more SeriesEncoders. 2021-02-03 13:41:25 -08:00
gaxler 3cc20fd400 Move all functionality to CategoryMapper (one-hot and ordinal). 2021-02-03 13:39:26 -08:00
gaxler 700d320724 simplify SeriesEncoder trait 2021-02-03 10:45:25 -08:00
gaxler ef06f45638 Switch to use SeriesEncoder trait 2021-02-02 18:21:06 -08:00
gaxler 237b1160b1 doc update 2021-02-02 18:20:27 -08:00