Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
Version 0.8.0 - 2025-09-30
==========================
New Algorithms
--------------
* Bernouilli naive bayes in [linfa-bayes] by [@wildart]
* Bootstrap aggregation (aka Bagging) in new ensemble methods crate [linfa-ensemble] by [@jk1015]

Changes
-------
* add `max_features` and `tokenizer_function` to `CountVectorizer` in `linfa-preprocessing`
* add `predict_proba()` to `Gaussian mixture model` in `linfa-clustering`
* add `predict_proba()` and `predict_log_proba()` to algorithms in `linfa-bayes`
* add target names to `dataset`
* fix SVR parameterization in `linfa-svm`
* fix serde support for algorithms in `linfa-pls`
* fix confusion matrix: use predicted and ground thruth labels, make it reproducible
* fix dataset names after shuffling
* bump `ndarray` to 0.16, `argmin` to 0.11.0, `kdtree` to 0.7.0, statrs to `0.18`, sprs to `0.11`
* bump MSRV to 1.87.0

Version 0.7.1 - 2025-01-14
==========================
New Algorithms
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa"
version = "0.7.1"
version = "0.8.0"
authors = [
"Luca Palmieri <rust@lpalmieri.com>",
"Lorenz Schmidt <bytesnake@mailbox.org>",
Expand Down
6 changes: 3 additions & 3 deletions algorithms/linfa-bayes/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-bayes"
version = "0.7.1"
version = "0.8.0"
authors = ["VasanthakumarV <vasanth260m12@gmail.com>"]
description = "Collection of Naive Bayes Algorithms"
edition = "2018"
Expand All @@ -25,10 +25,10 @@ ndarray = { version = "0.16", features = ["approx"] }
ndarray-stats = "0.6"
thiserror = "2.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
approx = "0.5"
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"winequality",
] }
10 changes: 5 additions & 5 deletions algorithms/linfa-clustering/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-clustering"
version = "0.7.1"
version = "0.8.0"
edition = "2018"
authors = [
"Luca Palmieri <rust@lpalmieri.com>",
Expand Down Expand Up @@ -45,20 +45,20 @@ rand_xoshiro = "0.6"
space = "0.12"
thiserror = "2.0"
#partitions = "0.2.4" This one will break in a future version of Rust and has no replacement
linfa = { version = "0.7.1", path = "../.." }
linfa-nn = { version = "0.7.2", path = "../linfa-nn" }
linfa = { version = "0.8.0", path = "../.." }
linfa-nn = { version = "0.8.0", path = "../linfa-nn" }
noisy_float = "0.2.0"

[dev-dependencies]
ndarray-npy = { version = "0.9", default-features = false }
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"generate",
] }
criterion = "0.5"
serde_json = "1"
approx = "0.5"
lax = "0.17.0"
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }

[[bench]]
name = "k_means"
Expand Down
6 changes: 3 additions & 3 deletions algorithms/linfa-elasticnet/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-elasticnet"
version = "0.7.1"
version = "0.8.0"
authors = [
"Paul Körbitz / Google <koerbitz@google.com>",
"Lorenz Schmidt <bytesnake@mailbox.org>",
Expand Down Expand Up @@ -37,10 +37,10 @@ num-traits = "0.2"
approx = "0.5"
thiserror = "2.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"diabetes",
"linnerud",
] }
Expand Down
8 changes: 4 additions & 4 deletions algorithms/linfa-ensemble/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-ensemble"
version = "0.7.0"
version = "0.8.0"
edition = "2018"
authors = [
"James Knight <jamesknight@hadean.com>",
Expand Down Expand Up @@ -31,10 +31,10 @@ ndarray = { version = "0.16", features = ["rayon", "approx"] }
ndarray-rand = "0.15"
rand = "0.8.5"

linfa = { version = "0.7.1", path = "../.." }
linfa-trees = { version = "0.7.1", path = "../linfa-trees" }
linfa = { version = "0.8.0", path = "../.." }
linfa-trees = { version = "0.8.0", path = "../linfa-trees" }

[dev-dependencies]
linfa-datasets = { version = "0.7.1", path = "../../datasets/", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets/", features = [
"iris",
] }
8 changes: 4 additions & 4 deletions algorithms/linfa-ftrl/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-ftrl"
version = "0.7.1"
version = "0.8.0"
authors = ["Liudmyla Kyrashchuk <himila@tutanota.com>"]

description = "A Machine Learning framework for Rust"
Expand Down Expand Up @@ -32,15 +32,15 @@ thiserror = "2.0"
rand = "0.8.5"
rand_xoshiro = "0.6.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
criterion = "0.5"
approx = "0.5"
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"winequality",
] }
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }

[[bench]]
name = "ftrl"
Expand Down
8 changes: 4 additions & 4 deletions algorithms/linfa-hierarchical/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-hierarchical"
version = "0.7.1"
version = "0.8.0"
authors = ["Lorenz Schmidt <lorenz.schmidt@mailbox.org>"]
edition = "2018"

Expand All @@ -24,12 +24,12 @@ ndarray = { version = "0.16" }
kodama = "0.2"
thiserror = "1.0.25"

linfa = { version = "0.7.1", path = "../.." }
linfa-kernel = { version = "0.7.1", path = "../linfa-kernel" }
linfa = { version = "0.8.0", path = "../.." }
linfa-kernel = { version = "0.8.0", path = "../linfa-kernel" }

[dev-dependencies]
rand = "0.8"
ndarray-rand = "0.15"
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"iris",
] }
6 changes: 3 additions & 3 deletions algorithms/linfa-ica/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-ica"
version = "0.7.1"
version = "0.8.0"
authors = ["VasanthakumarV <vasanth260m12@gmail.com>"]
description = "A collection of Independent Component Analysis (ICA) algorithms"
edition = "2018"
Expand Down Expand Up @@ -34,13 +34,13 @@ num-traits = "0.2"
rand_xoshiro = "0.6"
thiserror = "2.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
ndarray-npy = { version = "0.9", default-features = false }
paste = "1.0"
criterion = "0.5"
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }

[[bench]]
name = "fast_ica"
Expand Down
6 changes: 3 additions & 3 deletions algorithms/linfa-kernel/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-kernel"
version = "0.7.1"
version = "0.8.0"
authors = ["Lorenz Schmidt <bytesnake@mailbox.org>"]
description = "Kernel methods for non-linear algorithms"
edition = "2018"
Expand Down Expand Up @@ -28,5 +28,5 @@ ndarray = "0.16"
num-traits = "0.2"
sprs = { version = "0.11", default-features = false }

linfa = { version = "0.7.1", path = "../.." }
linfa-nn = { version = "0.7.2", path = "../linfa-nn" }
linfa = { version = "0.8.0", path = "../.." }
linfa-nn = { version = "0.8.0", path = "../linfa-nn" }
8 changes: 4 additions & 4 deletions algorithms/linfa-linear/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-linear"
version = "0.7.1"
version = "0.8.0"
authors = [
"Paul Körbitz / Google <koerbitz@google.com>",
"VasanthakumarV <vasanth260m12@gmail.com>",
Expand Down Expand Up @@ -37,16 +37,16 @@ argmin = { version = "0.11.0", default-features = false }
argmin-math = { version = "0.5", features = ["ndarray_v0_16-nolinalg"] }
thiserror = "2.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"diabetes",
] }
approx = "0.5"
criterion = "0.5"
statrs = "0.18"
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }

[[bench]]
name = "ols_bench"
Expand Down
6 changes: 3 additions & 3 deletions algorithms/linfa-logistic/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-logistic"
version = "0.7.1"
version = "0.8.0"
authors = ["Paul Körbitz / Google <koerbitz@google.com>"]

description = "A Machine Learning framework for Rust"
Expand Down Expand Up @@ -30,11 +30,11 @@ argmin = { version = "0.11.0", default-features = false }
argmin-math = { version = "0.5", features = ["ndarray_v0_16-nolinalg"] }
thiserror = "2.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
approx = "0.5"
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"winequality",
] }
rmp-serde = "1"
6 changes: 3 additions & 3 deletions algorithms/linfa-nn/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-nn"
version = "0.7.2"
version = "0.8.0"
authors = ["YuhanLiin <yuhanliin+github@protonmail.com>"]
edition = "2018"
description = "A collection of nearest neighbour algorithms"
Expand Down Expand Up @@ -33,14 +33,14 @@ thiserror = "2.0"

kdtree = "0.7.0"

linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
approx = "0.5"
criterion = "0.5"
rand_xoshiro = "0.6"
ndarray-rand = "0.15"
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }

[[bench]]
name = "nn"
Expand Down
8 changes: 4 additions & 4 deletions algorithms/linfa-pls/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-pls"
version = "0.7.1"
version = "0.8.0"
edition = "2018"
authors = ["relf <remi.lafage@onera.fr>"]
description = "Partial Least Squares family methods"
Expand Down Expand Up @@ -33,11 +33,11 @@ ndarray-rand = "0.15"
num-traits = "0.2"
paste = "1.0"
thiserror = "2.0"
linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }

[dev-dependencies]
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"linnerud",
] }
approx = "0.5"
Expand Down
10 changes: 5 additions & 5 deletions algorithms/linfa-preprocessing/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-preprocessing"
version = "0.7.1"
version = "0.8.0"
authors = ["Sauro98 <ivadonadi98@gmail.com>"]

description = "A Machine Learning framework for Rust"
Expand All @@ -18,7 +18,7 @@ blas = ["ndarray-linalg", "linfa/ndarray-linalg"]
serde = ["serde_crate", "ndarray/serde", "serde_regex"]

[dependencies]
linfa = { version = "0.7.1", path = "../.." }
linfa = { version = "0.8.0", path = "../.." }
ndarray = { version = "0.16", features = ["approx"] }
ndarray-linalg = { version = "0.17", optional = true }
linfa-linalg = { version = "0.2", default-features = false }
Expand All @@ -42,17 +42,17 @@ default-features = false
features = ["std", "derive"]

[dev-dependencies]
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"diabetes",
"winequality",
"generate",
] }
linfa-bayes = { version = "0.7.1", path = "../linfa-bayes" }
linfa-bayes = { version = "0.8.0", path = "../linfa-bayes" }
iai = "0.1"
curl = "0.4.35"
flate2 = "1.0.20"
tar = "0.4.33"
linfa = { version = "0.7.1", path = "../..", features = ["benchmarks"] }
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }
criterion = "0.5"
statrs = "0.18"

Expand Down
10 changes: 5 additions & 5 deletions algorithms/linfa-reduction/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "linfa-reduction"
version = "0.7.1"
version = "0.8.0"
authors = [
"Lorenz Schmidt <bytesnake@mailbox.org>",
"Gabriel Bathie <gbathie.dev@gmail.com>",
Expand Down Expand Up @@ -42,17 +42,17 @@ num-traits = "0.2"
thiserror = "2.0"
rand = { version = "0.8", features = ["small_rng"] }

linfa = { version = "0.7.1", path = "../.." }
linfa-kernel = { version = "0.7.1", path = "../linfa-kernel" }
linfa = { version = "0.8.0", path = "../.." }
linfa-kernel = { version = "0.8.0", path = "../linfa-kernel" }
sprs = { version = "0.11" }
rand_xoshiro = "0.6.0"

[dev-dependencies]
ndarray-npy = { version = "0.9", default-features = false }
linfa-datasets = { version = "0.7.1", path = "../../datasets", features = [
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
"iris",
"generate",
] }
approx = "0.5"
mnist = { version = "0.6.0", features = ["download"] }
linfa-trees = { version = "0.7.1", path = "../linfa-trees" }
linfa-trees = { version = "0.8.0", path = "../linfa-trees" }
Loading
Loading