Skip to content

Commit 59fc6c6

Browse files
authored
Prepare release 0.8.1 (#428)
* Bump version to 0.8.1 * Update changelog * Add 0.8.1 news * Update README
1 parent 54ea637 commit 59fc6c6

24 files changed

Lines changed: 134 additions & 81 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1+
Version 0.8.1 - 2025-12-22
2+
==========================
3+
New Algorithms
4+
--------------
5+
* Least angle regression in a new `linfa-lars` crate by [@aswin-1111]
6+
* Random Forest in `linfa-ensemble` by [@ladezai]
7+
* AdaBoost in `linfa-ensemble` by [@rathideep22]
8+
9+
Changes
10+
-------
11+
* add bootstrap-with-indices utilities for `Dataset`
12+
* fix ndarray version mismatch
13+
* fix missing exponential in `linfa-ica`
14+
115
Version 0.8.0 - 2025-09-30
216
==========================
317
New Algorithms
418
--------------
5-
* Bernouilli naive bayes in [linfa-bayes] by [@wildart]
6-
* Bootstrap aggregation (aka Bagging) in new ensemble methods crate [linfa-ensemble] by [@jk1015]
19+
* Bernouilli naive bayes in `linfa-bayes` by [@wildart]
20+
* Bootstrap aggregation (aka Bagging) in new ensemble methods crate `linfa-ensemble` by [@jk1015]
721

822
Changes
923
-------

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "linfa"
3-
version = "0.8.0"
3+
version = "0.8.1"
44
authors = [
55
"Luca Palmieri <rust@lpalmieri.com>",
66
"Lorenz Schmidt <bytesnake@mailbox.org>",

README.md

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,26 @@ Where does `linfa` stand right now? [Are we learning yet?](http://www.arewelearn
2828
`linfa` currently provides sub-packages with the following algorithms:
2929

3030

31-
| Name | Purpose | Status | Category | Notes |
32-
| :--- | :--- | :---| :--- | :---|
33-
| [bayes](algorithms/linfa-bayes/) | Naive Bayes | Tested | Supervised learning | Contains Bernouilli, Gaussian and Multinomial Naive Bayes |
34-
| [clustering](algorithms/linfa-clustering/) | Data clustering | Tested / Benchmarked | Unsupervised learning | Clustering of unlabeled data; contains K-Means, Gaussian-Mixture-Model, DBSCAN and OPTICS |
35-
| [ensemble](algorithms/linfa-ensemble/) | Ensemble methods | Tested | Supervised learning | Contains bagging |
36-
| [elasticnet](algorithms/linfa-elasticnet/) | Elastic Net | Tested | Supervised learning | Linear regression with elastic net constraints |
37-
| [ftrl](algorithms/linfa-ftrl/) | Follow The Regularized Leader - proximal | Tested / Benchmarked | Partial fit | Contains L1 and L2 regularization. Possible incremental update |
38-
| [hierarchical](algorithms/linfa-hierarchical/) | Agglomerative hierarchical clustering | Tested | Unsupervised learning | Cluster and build hierarchy of clusters |
39-
| [ica](algorithms/linfa-ica/) | Independent component analysis | Tested | Unsupervised learning | Contains FastICA implementation |
40-
| [kernel](algorithms/linfa-kernel/) | Kernel methods for data transformation | Tested | Pre-processing | Maps feature vector into higher-dimensional space |
41-
| [linear](algorithms/linfa-linear/) | Linear regression | Tested | Partial fit | Contains Ordinary Least Squares (OLS), Generalized Linear Models (GLM) |
42-
| [logistic](algorithms/linfa-logistic/) | Logistic regression | Tested | Partial fit | Builds two-class logistic regression models |
43-
| [nn](algorithms/linfa-nn/) | Nearest Neighbours & Distances | Tested / Benchmarked | Pre-processing | Spatial index structures and distance functions |
44-
| [pls](algorithms/linfa-pls/) | Partial Least Squares | Tested | Supervised learning | Contains PLS estimators for dimensionality reduction and regression |
45-
| [preprocessing](algorithms/linfa-preprocessing/) | Normalization & Vectorization| Tested / Benchmarked | Pre-processing | Contains data normalization/whitening and count vectorization/tf-idf |
46-
| [reduction](algorithms/linfa-reduction/) | Dimensionality reduction | Tested | Pre-processing | Diffusion mapping, Principal Component Analysis (PCA), Random projections |
47-
| [svm](algorithms/linfa-svm/) | Support Vector Machines | Tested | Supervised learning | Classification or regression analysis of labeled datasets |
48-
| [trees](algorithms/linfa-trees/) | Decision trees | Tested / Benchmarked | Supervised learning | Linear decision trees |
49-
| [tsne](algorithms/linfa-tsne/) | Dimensionality reduction | Tested | Unsupervised learning | Contains exact solution and Barnes-Hut approximation t-SNE |
31+
| Name | Purpose | Status | Category | Notes |
32+
| :----------------------------------------------- | :--------------------------------------- | :-------------------- | :-------------------- | :---------------------------------------------------------------------------------------- |
33+
| [bayes](algorithms/linfa-bayes/) | Naive Bayes | Tested | Supervised learning | Contains Bernouilli, Gaussian and Multinomial Naive Bayes |
34+
| [clustering](algorithms/linfa-clustering/) | Data clustering | Tested / Benchmarked | Unsupervised learning | Clustering of unlabeled data; contains K-Means, Gaussian-Mixture-Model, DBSCAN and OPTICS |
35+
| [ensemble](algorithms/linfa-ensemble/) | Ensemble methods | Tested | Supervised learning | Contains bagging, random forest and AdaBoost |
36+
| [elasticnet](algorithms/linfa-elasticnet/) | Elastic Net | Tested | Supervised learning | Linear regression with elastic net constraints |
37+
| [ftrl](algorithms/linfa-ftrl/) | Follow The Regularized Leader - proximal | Tested / Benchmarked | Partial fit | Contains L1 and L2 regularization. Possible incremental update |
38+
| [hierarchical](algorithms/linfa-hierarchical/) | Agglomerative hierarchical clustering | Tested | Unsupervised learning | Cluster and build hierarchy of clusters |
39+
| [ica](algorithms/linfa-ica/) | Independent component analysis | Tested | Unsupervised learning | Contains FastICA implementation |
40+
| [kernel](algorithms/linfa-kernel/) | Kernel methods for data transformation | Tested | Pre-processing | Maps feature vector into higher-dimensional space |
41+
| [lars](algorithms/linfa-lars/) | Linear regression | Tested | Supervised learning | Contains Least Angle Regression (LARS) |
42+
| [linear](algorithms/linfa-linear/) | Linear regression | Tested | Supervised learning | Contains Ordinary Least Squares (OLS), Generalized Linear Models (GLM) |
43+
| [logistic](algorithms/linfa-logistic/) | Logistic regression | Tested | Partial fit | Builds two-class logistic regression models |
44+
| [nn](algorithms/linfa-nn/) | Nearest Neighbours & Distances | Tested / Benchmarked | Pre-processing | Spatial index structures and distance functions |
45+
| [pls](algorithms/linfa-pls/) | Partial Least Squares | Tested | Supervised learning | Contains PLS estimators for dimensionality reduction and regression |
46+
| [preprocessing](algorithms/linfa-preprocessing/) | Normalization & Vectorization | Tested / Benchmarked | Pre-processing | Contains data normalization/whitening and count vectorization/tf-idf |
47+
| [reduction](algorithms/linfa-reduction/) | Dimensionality reduction | Tested | Pre-processing | Diffusion mapping, Principal Component Analysis (PCA), Random projections |
48+
| [svm](algorithms/linfa-svm/) | Support Vector Machines | Tested | Supervised learning | Classification or regression analysis of labeled datasets |
49+
| [trees](algorithms/linfa-trees/) | Decision trees | Tested / Benchmarked | Supervised learning | Linear decision trees |
50+
| [tsne](algorithms/linfa-tsne/) | Dimensionality reduction | Tested | Unsupervised learning | Contains exact solution and Barnes-Hut approximation t-SNE |
5051

5152
We believe that only a significant community effort can nurture, build, and sustain a machine learning ecosystem in Rust - there is no other way forward.
5253

@@ -56,11 +57,11 @@ If this strikes a chord with you, please take a look at the [roadmap](https://gi
5657

5758
Some algorithm crates need to use an external library for linear algebra routines. By default, we use a pure-Rust implementation. However, you can also choose an external BLAS/LAPACK backend library instead, by enabling the `blas` feature and a feature corresponding to your BLAS backend. Currently you can choose between the following BLAS/LAPACK backends: `openblas`, `netblas` or `intel-mkl`.
5859

59-
|Backend | Linux | Windows | macOS |
60-
|:--------|:-----:|:-------:|:-----:|
61-
|OpenBLAS |✔️ |- |- |
62-
|Netlib |✔️ |- |- |
63-
|Intel MKL|✔️ |✔️ |✔️ |
60+
| Backend | Linux | Windows | macOS |
61+
| :-------- | :---: | :-----: | :---: |
62+
| OpenBLAS | ✔️ | - | - |
63+
| Netlib | ✔️ | - | - |
64+
| Intel MKL | ✔️ | ✔️ | ✔️ |
6465

6566
Each BLAS backend has two features available. The feature allows you to choose between linking the BLAS library in your system or statically building the library. For example, the features for the `intel-mkl` backend are `intel-mkl-static` and `intel-mkl-system`.
6667

algorithms/linfa-bayes/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ndarray = { version = "0.16", features = ["approx"] }
2525
ndarray-stats = "0.6"
2626
thiserror = "2.0"
2727

28-
linfa = { version = "0.8.0", path = "../.." }
28+
linfa = { version = "0.8.1", path = "../.." }
2929

3030
[dev-dependencies]
3131
approx = "0.5"

algorithms/linfa-clustering/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ num-traits = "0.2"
4444
rand_xoshiro = "0.6"
4545
space = "0.19"
4646
thiserror = "2.0"
47-
linfa = { version = "0.8.0", path = "../.." }
47+
linfa = { version = "0.8.1", path = "../.." }
4848
linfa-nn = { version = "0.8.0", path = "../linfa-nn" }
4949
noisy_float = "0.2.0"
5050

@@ -57,7 +57,7 @@ criterion = "0.5"
5757
serde_json = "1"
5858
approx = "0.5"
5959
lax = "=0.17.0"
60-
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }
60+
linfa = { version = "0.8.1", path = "../..", features = ["benchmarks"] }
6161

6262
[[bench]]
6363
name = "k_means"

algorithms/linfa-elasticnet/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ num-traits = "0.2"
3737
approx = "0.5"
3838
thiserror = "2.0"
3939

40-
linfa = { version = "0.8.0", path = "../.." }
40+
linfa = { version = "0.8.1", path = "../.." }
4141

4242
[dev-dependencies]
4343
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [

algorithms/linfa-ensemble/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ ndarray = { version = "0.16", features = ["rayon", "approx"] }
3131
ndarray-rand = "0.15"
3232
rand = "0.8.5"
3333

34-
linfa = { version = "0.8.0", path = "../.." }
34+
linfa = { version = "0.8.1", path = "../.." }
3535
linfa-trees = { version = "0.8.0", path = "../linfa-trees" }
3636

3737
[dev-dependencies]

algorithms/linfa-ftrl/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ thiserror = "2.0"
3232
rand = "0.8.5"
3333
rand_xoshiro = "0.6.0"
3434

35-
linfa = { version = "0.8.0", path = "../.." }
35+
linfa = { version = "0.8.1", path = "../.." }
3636

3737
[dev-dependencies]
3838
criterion = "0.5"
3939
approx = "0.5"
4040
linfa-datasets = { version = "0.8.0", path = "../../datasets", features = [
4141
"winequality",
4242
] }
43-
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }
43+
linfa = { version = "0.8.1", path = "../..", features = ["benchmarks"] }
4444

4545
[[bench]]
4646
name = "ftrl"

algorithms/linfa-hierarchical/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ndarray = { version = "0.16" }
2424
kodama = "0.2"
2525
thiserror = "2"
2626

27-
linfa = { version = "0.8.0", path = "../.." }
27+
linfa = { version = "0.8.1", path = "../.." }
2828
linfa-kernel = { version = "0.8.0", path = "../linfa-kernel" }
2929

3030
[dev-dependencies]

algorithms/linfa-ica/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ num-traits = "0.2"
3434
rand_xoshiro = "0.6"
3535
thiserror = "2.0"
3636

37-
linfa = { version = "0.8.0", path = "../.." }
37+
linfa = { version = "0.8.1", path = "../.." }
3838

3939
[dev-dependencies]
4040
ndarray-npy = { version = "0.9", default-features = false }
4141
paste = "1.0"
4242
criterion = "0.5"
43-
linfa = { version = "0.8.0", path = "../..", features = ["benchmarks"] }
43+
linfa = { version = "0.8.1", path = "../..", features = ["benchmarks"] }
4444

4545
[[bench]]
4646
name = "fast_ica"

0 commit comments

Comments
 (0)