diff --git a/CHANGELOG.md b/CHANGELOG.md index c240bd29e..13a957773 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +Version 0.7.0 - 2023-10-15 +======================== +Changes +----------- + * add `array_from_gz_csv` and `array_from_csv` in `linfa-datasets` + * make Serde support in `linfa-linear`, `linfa-logistic`, and `linfa-ftrl` optional + * bump `argmin` to 0.8.1 + * add Serde support to `linfa-preprocessing` and `linfa-bayes` + * make licenses follow SPDX 2.1 license expression standard + +Removals +----------- + * Removed Approximate DBSCAN from `linfa-clustering` due to performance issues. It's now an alias to regular DBSCAN. + * Removed `partitions` dependency, which breaks in current versions of Rust. + Version 0.6.1 - 2022-12-03 ======================== New Algorithms diff --git a/Cargo.toml b/Cargo.toml index 55786d1f8..7d5bcebde 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa" -version = "0.6.1" +version = "0.7.0" authors = [ "Luca Palmieri ", "Lorenz Schmidt ", diff --git a/algorithms/linfa-bayes/Cargo.toml b/algorithms/linfa-bayes/Cargo.toml index 1f61165b7..cd4fa60ca 100644 --- a/algorithms/linfa-bayes/Cargo.toml +++ b/algorithms/linfa-bayes/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-bayes" -version = "0.6.1" +version = "0.7.0" authors = ["VasanthakumarV "] description = "Collection of Naive Bayes Algorithms" edition = "2018" @@ -25,8 +25,8 @@ ndarray = { version = "0.15" , features = ["approx"]} ndarray-stats = "0.5" thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] approx = "0.4" -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["winequality"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["winequality"] } diff --git a/algorithms/linfa-clustering/Cargo.toml b/algorithms/linfa-clustering/Cargo.toml index 616569567..bd55815c6 100644 --- a/algorithms/linfa-clustering/Cargo.toml +++ b/algorithms/linfa-clustering/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-clustering" -version = "0.6.1" +version = "0.7.0" edition = "2018" authors = [ "Luca Palmieri ", @@ -38,18 +38,18 @@ rand_xoshiro = "0.6" space = "0.12" thiserror = "1.0" #partitions = "0.2.4" This one will break in a future version of Rust and has no replacement -linfa = { version = "0.6.1", path = "../.." } -linfa-nn = { version = "0.6.1", path = "../linfa-nn" } +linfa = { version = "0.7.0", path = "../.." } +linfa-nn = { version = "0.7.0", path = "../linfa-nn" } noisy_float = "0.2.0" [dev-dependencies] ndarray-npy = { version = "0.8", default-features = false } -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["generate"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["generate"] } criterion = "0.4.0" serde_json = "1" approx = "0.4" lax = "0.15.0" -linfa = { version = "0.6.0", path = "../..", features = ["benchmarks"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } [[bench]] name = "k_means" diff --git a/algorithms/linfa-elasticnet/Cargo.toml b/algorithms/linfa-elasticnet/Cargo.toml index feb4e95b5..948fa1d75 100644 --- a/algorithms/linfa-elasticnet/Cargo.toml +++ b/algorithms/linfa-elasticnet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-elasticnet" -version = "0.6.1" +version = "0.7.0" authors = [ "Paul Körbitz / Google ", "Lorenz Schmidt " @@ -37,9 +37,9 @@ num-traits = "0.2" approx = "0.4" thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["diabetes", "linnerud"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["diabetes", "linnerud"] } ndarray-rand = "0.14" rand_xoshiro = "0.6" diff --git a/algorithms/linfa-ftrl/Cargo.toml b/algorithms/linfa-ftrl/Cargo.toml index 7382136a8..3bc979e8d 100644 --- a/algorithms/linfa-ftrl/Cargo.toml +++ b/algorithms/linfa-ftrl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-ftrl" -version = "0.6.1" +version = "0.7.0" authors = ["Liudmyla Kyrashchuk "] description = "A Machine Learning framework for Rust" @@ -31,13 +31,13 @@ thiserror = "1.0" rand = "0.8.5" rand_xoshiro = "0.6.0" -linfa = { version = "0.6.1", path = "../.."} +linfa = { version = "0.7.0", path = "../.."} [dev-dependencies] criterion = "0.4.0" approx = "0.4" -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["winequality"] } -linfa = { version = "0.6.1", path = "../..", features = ["benchmarks"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["winequality"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } [[bench]] name = "ftrl" diff --git a/algorithms/linfa-hierarchical/Cargo.toml b/algorithms/linfa-hierarchical/Cargo.toml index c92bdfd14..fdca29c73 100644 --- a/algorithms/linfa-hierarchical/Cargo.toml +++ b/algorithms/linfa-hierarchical/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-hierarchical" -version = "0.6.1" +version = "0.7.0" authors = ["Lorenz Schmidt "] edition = "2018" @@ -18,10 +18,10 @@ ndarray = { version = "0.15" } kodama = "0.2" thiserror = "1.0.25" -linfa = { version = "0.6.1", path = "../.." } -linfa-kernel = { version = "0.6.1", path = "../linfa-kernel" } +linfa = { version = "0.7.0", path = "../.." } +linfa-kernel = { version = "0.7.0", path = "../linfa-kernel" } [dev-dependencies] rand = "0.8" ndarray-rand = "0.14" -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["iris"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["iris"] } diff --git a/algorithms/linfa-ica/Cargo.toml b/algorithms/linfa-ica/Cargo.toml index 2d11a5e37..64d0ccc81 100644 --- a/algorithms/linfa-ica/Cargo.toml +++ b/algorithms/linfa-ica/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-ica" -version = "0.6.1" +version = "0.7.0" authors = ["VasanthakumarV "] description = "A collection of Independent Component Analysis (ICA) algorithms" edition = "2018" @@ -34,13 +34,13 @@ num-traits = "0.2" rand_xoshiro = "0.6" thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] ndarray-npy = { version = "0.8", default-features = false } paste = "1.0" criterion = "0.4.0" -linfa = { version = "0.6.0", path = "../..", features = ["benchmarks"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } [[bench]] name = "fast_ica" diff --git a/algorithms/linfa-kernel/Cargo.toml b/algorithms/linfa-kernel/Cargo.toml index 214f8f9c4..4646cea27 100644 --- a/algorithms/linfa-kernel/Cargo.toml +++ b/algorithms/linfa-kernel/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-kernel" -version = "0.6.1" +version = "0.7.0" authors = ["Lorenz Schmidt "] description = "Kernel methods for non-linear algorithms" edition = "2018" @@ -28,5 +28,5 @@ ndarray = "0.15" num-traits = "0.2" sprs = { version="0.11", default-features = false } -linfa = { version = "0.6.1", path = "../.." } -linfa-nn = { version = "0.6.1", path = "../linfa-nn" } +linfa = { version = "0.7.0", path = "../.." } +linfa-nn = { version = "0.7.0", path = "../linfa-nn" } diff --git a/algorithms/linfa-linear/Cargo.toml b/algorithms/linfa-linear/Cargo.toml index cba623bf5..11fd98a8f 100644 --- a/algorithms/linfa-linear/Cargo.toml +++ b/algorithms/linfa-linear/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-linear" -version = "0.6.1" +version = "0.7.0" authors = [ "Paul Körbitz / Google ", "VasanthakumarV " @@ -36,14 +36,14 @@ argmin = { version = "0.8.1", default-features = false } argmin-math = { version = "0.3", features = ["ndarray_v0_15-nolinalg"] } thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["diabetes"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["diabetes"] } approx = "0.4" criterion = "0.4.0" statrs = "0.16.0" -linfa = { version = "0.6.0", path = "../..", features = ["benchmarks"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } [[bench]] name = "ols_bench" diff --git a/algorithms/linfa-logistic/Cargo.toml b/algorithms/linfa-logistic/Cargo.toml index d78bcf284..54838ebb8 100644 --- a/algorithms/linfa-logistic/Cargo.toml +++ b/algorithms/linfa-logistic/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-logistic" -version = "0.6.1" +version = "0.7.0" authors = ["Paul Körbitz / Google "] description = "A Machine Learning framework for Rust" @@ -30,9 +30,9 @@ argmin-math = { version = "0.3", features = ["ndarray_v0_15-nolinalg"] } thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] approx = "0.4" -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["winequality"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["winequality"] } rmp-serde = "1" diff --git a/algorithms/linfa-nn/Cargo.toml b/algorithms/linfa-nn/Cargo.toml index fc4ad3d86..f1400c042 100644 --- a/algorithms/linfa-nn/Cargo.toml +++ b/algorithms/linfa-nn/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-nn" -version = "0.6.1" +version = "0.7.0" authors = ["YuhanLiin "] edition = "2018" description = "A collection of nearest neighbour algorithms" @@ -33,14 +33,14 @@ thiserror = "1.0" kdtree = "0.6.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] approx = "0.4" criterion = "0.4.0" rand_xoshiro = "0.6" ndarray-rand = "0.14" -linfa = { version = "0.6.0", path = "../..", features = ["benchmarks"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } [[bench]] name = "nn" diff --git a/algorithms/linfa-pls/Cargo.toml b/algorithms/linfa-pls/Cargo.toml index a7688ca63..4cf09001c 100644 --- a/algorithms/linfa-pls/Cargo.toml +++ b/algorithms/linfa-pls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-pls" -version = "0.6.1" +version = "0.7.0" edition = "2018" authors = ["relf "] description = "Partial Least Squares family methods" @@ -33,11 +33,11 @@ ndarray-rand = "0.14" num-traits = "0.2" paste = "1.0" thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] -linfa = { version = "0.6.1", path = "../..", features = ["benchmarks"] } -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["linnerud"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["linnerud"] } approx = "0.4" rand_xoshiro = "0.6" criterion = "0.4.0" diff --git a/algorithms/linfa-preprocessing/Cargo.toml b/algorithms/linfa-preprocessing/Cargo.toml index 36ced2d33..acc31d5af 100644 --- a/algorithms/linfa-preprocessing/Cargo.toml +++ b/algorithms/linfa-preprocessing/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-preprocessing" -version = "0.6.1" +version = "0.7.0" authors = ["Sauro98 "] description = "A Machine Learning framework for Rust" @@ -18,7 +18,7 @@ blas = ["ndarray-linalg", "linfa/ndarray-linalg"] serde = ["serde_crate", "ndarray/serde", "serde_regex"] [dependencies] -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } ndarray = { version = "0.15", features = ["approx"] } ndarray-linalg = { version = "0.15", optional = true } linfa-linalg = { version = "0.1", default-features = false } @@ -41,8 +41,8 @@ default-features = false features = ["std", "derive"] [dev-dependencies] -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["diabetes", "winequality"] } -linfa-bayes = { version = "0.6.1", path = "../linfa-bayes" } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["diabetes", "winequality"] } +linfa-bayes = { version = "0.7.0", path = "../linfa-bayes" } iai = "0.1" curl = "0.4.35" flate2 = "1.0.20" diff --git a/algorithms/linfa-preprocessing/src/linear_scaling.rs b/algorithms/linfa-preprocessing/src/linear_scaling.rs index 7a930cd6d..03f094748 100644 --- a/algorithms/linfa-preprocessing/src/linear_scaling.rs +++ b/algorithms/linfa-preprocessing/src/linear_scaling.rs @@ -19,7 +19,7 @@ use serde_crate::{Deserialize, Serialize}; serde(crate = "serde_crate") )] #[derive(Clone, Debug, PartialEq, Eq)] -/// Possible scaling methods for [LinearScaler](LinearScaler) +/// Possible scaling methods for [LinearScaler] /// /// * Standard (with mean, with std): subtracts the mean to each feature and scales it by the inverse of its standard deviation /// * MinMax (min, max): scales each feature to fit in the range `min..=max`, default values are @@ -271,7 +271,7 @@ impl LinearScaler { &self.scales } - /// Returns the method used for fitting. Useful for printing, since [ScalingMethod](ScalingMethod) implements `Display` + /// Returns the method used for fitting. Useful for printing, since [ScalingMethod] implements `Display` pub fn method(&self) -> &ScalingMethod { &self.method } diff --git a/algorithms/linfa-preprocessing/src/tf_idf_vectorization.rs b/algorithms/linfa-preprocessing/src/tf_idf_vectorization.rs index b13e92659..3e3bf464f 100644 --- a/algorithms/linfa-preprocessing/src/tf_idf_vectorization.rs +++ b/algorithms/linfa-preprocessing/src/tf_idf_vectorization.rs @@ -40,12 +40,12 @@ impl TfIdfMethod { } } -/// Simlar to [`CountVectorizer`](CountVectorizer) but instead of +/// Simlar to [`CountVectorizer`] but instead of /// just counting the term frequency of each vocabulary entry in each given document, /// it computes the term frequecy times the inverse document frequency, thus giving more importance /// to entries that appear many times but only on some documents. The weight function can be adjusted /// by setting the appropriate [method](TfIdfMethod). This struct provides the same string -/// processing customizations described in [`CountVectorizer`](CountVectorizer). +/// processing customizations described in [`CountVectorizer`]. #[cfg_attr( feature = "serde", derive(Serialize, Deserialize), @@ -123,7 +123,7 @@ impl TfIdfVectorizer { } /// Learns a vocabulary from the texts in `x`, according to the specified attributes and maps each - /// vocabulary entry to an integer value, producing a [FittedTfIdfVectorizer](FittedTfIdfVectorizer). + /// vocabulary entry to an integer value, producing a [FittedTfIdfVectorizer]. /// /// Returns an error if: /// * one of the `n_gram` boundaries is set to zero or the minimum value is greater than the maximum value @@ -140,8 +140,8 @@ impl TfIdfVectorizer { }) } - /// Produces a [FittedTfIdfVectorizer](FittedTfIdfVectorizer) with the input vocabulary. - /// All struct attributes are ignored in the fitting but will be used by the [FittedTfIdfVectorizer](FittedTfIdfVectorizer) + /// Produces a [FittedTfIdfVectorizer] with the input vocabulary. + /// All struct attributes are ignored in the fitting but will be used by the [FittedTfIdfVectorizer] /// to transform any text to be examined. As such this will return an error in the same cases as the `fit` method. pub fn fit_vocabulary(&self, words: &[T]) -> Result { let fitted_vectorizer = self.count_vectorizer.fit_vocabulary(words)?; diff --git a/algorithms/linfa-preprocessing/src/whitening.rs b/algorithms/linfa-preprocessing/src/whitening.rs index 721796011..0af437701 100644 --- a/algorithms/linfa-preprocessing/src/whitening.rs +++ b/algorithms/linfa-preprocessing/src/whitening.rs @@ -39,7 +39,7 @@ pub enum WhiteningMethod { } /// Struct that can be fitted to the input data to obtain the related whitening matrix. -/// Fitting returns a [FittedWhitener](FittedWhitener) struct that can be used to +/// Fitting returns a [FittedWhitener] struct that can be used to /// apply the whitening transformation to the input data. #[cfg_attr( feature = "serde", @@ -157,7 +157,7 @@ impl, T: AsTargets> Fit, T, Prepro /// Struct that can be used to whiten data. Data will be scaled according to the whitening matrix learned /// during fitting. -/// Obtained by fitting a [Whitener](Whitener). +/// Obtained by fitting a [Whitener]. /// /// Transforming the data used during fitting will yield a scaled data matrix with /// unit diagonal covariance matrix. diff --git a/algorithms/linfa-reduction/Cargo.toml b/algorithms/linfa-reduction/Cargo.toml index ad5c8e5f6..de78f1f83 100644 --- a/algorithms/linfa-reduction/Cargo.toml +++ b/algorithms/linfa-reduction/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-reduction" -version = "0.6.1" +version = "0.7.0" authors = ["Lorenz Schmidt "] description = "A collection of dimensionality reduction techniques" edition = "2018" @@ -33,10 +33,10 @@ num-traits = "0.2" thiserror = "1.0" rand = { version = "0.8", features = ["small_rng"] } -linfa = { version = "0.6.1", path = "../.." } -linfa-kernel = { version = "0.6.1", path = "../linfa-kernel" } +linfa = { version = "0.7.0", path = "../.." } +linfa-kernel = { version = "0.7.0", path = "../linfa-kernel" } [dev-dependencies] ndarray-npy = { version = "0.8", default-features = false } -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["iris", "generate"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["iris", "generate"] } approx = { version = "0.4" } diff --git a/algorithms/linfa-svm/Cargo.toml b/algorithms/linfa-svm/Cargo.toml index 908aa2a31..e2ca1f4f0 100644 --- a/algorithms/linfa-svm/Cargo.toml +++ b/algorithms/linfa-svm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-svm" -version = "0.6.1" +version = "0.7.0" edition = "2018" authors = ["Lorenz Schmidt "] description = "Support Vector Machines" @@ -29,10 +29,10 @@ ndarray-rand = "0.14" num-traits = "0.2" thiserror = "1.0" -linfa = { version = "0.6.1", path = "../.." } -linfa-kernel = { version = "0.6.1", path = "../linfa-kernel" } +linfa = { version = "0.7.0", path = "../.." } +linfa-kernel = { version = "0.7.0", path = "../linfa-kernel" } [dev-dependencies] -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["winequality", "diabetes"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["winequality", "diabetes"] } rand_xoshiro = "0.6" approx = "0.4" diff --git a/algorithms/linfa-trees/Cargo.toml b/algorithms/linfa-trees/Cargo.toml index 011b8e485..a627b6fec 100644 --- a/algorithms/linfa-trees/Cargo.toml +++ b/algorithms/linfa-trees/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-trees" -version = "0.6.1" +version = "0.7.0" edition = "2018" authors = ["Moss Ebeling "] description = "A collection of tree-based algorithms" @@ -27,14 +27,14 @@ features = ["std", "derive"] ndarray = { version = "0.15" , features = ["rayon", "approx"]} ndarray-rand = "0.14" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] rand = { version = "0.8", features = ["small_rng"] } criterion = "0.4.0" approx = "0.4" -linfa-datasets = { version = "0.6.1", path = "../../datasets/", features = ["iris"] } -linfa = { version = "0.6.1", path = "../..", features = ["benchmarks"] } +linfa-datasets = { version = "0.7.0", path = "../../datasets/", features = ["iris"] } +linfa = { version = "0.7.0", path = "../..", features = ["benchmarks"] } [[bench]] name = "decision_tree" diff --git a/algorithms/linfa-tsne/Cargo.toml b/algorithms/linfa-tsne/Cargo.toml index 2e30dcbe0..a86dae4af 100644 --- a/algorithms/linfa-tsne/Cargo.toml +++ b/algorithms/linfa-tsne/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-tsne" -version = "0.6.1" +version = "0.7.0" authors = ["Lorenz Schmidt "] edition = "2018" @@ -20,14 +20,14 @@ ndarray-rand = "0.14" bhtsne = "0.4.0" pdqselect = "=0.1.0" -linfa = { version = "0.6.1", path = "../.." } +linfa = { version = "0.7.0", path = "../.." } [dev-dependencies] rand = "0.8" approx = "0.4" -linfa-datasets = { version = "0.6.1", path = "../../datasets", features = ["iris"] } -linfa-reduction = { version = "0.6.1", path = "../linfa-reduction" } +linfa-datasets = { version = "0.7.0", path = "../../datasets", features = ["iris"] } +linfa-reduction = { version = "0.7.0", path = "../linfa-reduction" } [target.'cfg(not(target_family = "windows"))'.dev-dependencies] mnist = { version = "0.5", features = ["download"] } diff --git a/datasets/Cargo.toml b/datasets/Cargo.toml index aa78e9edc..f1364a573 100644 --- a/datasets/Cargo.toml +++ b/datasets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "linfa-datasets" -version = "0.6.1" +version = "0.7.0" authors = ["Lorenz Schmidt "] description = "Collection of small datasets for Linfa" edition = "2018" @@ -8,7 +8,7 @@ license = "MIT OR Apache-2.0" repository = "https://github.com/rust-ml/linfa" [dependencies] -linfa = { version = "0.6.1", path = ".." } +linfa = { version = "0.7.0", path = ".." } ndarray = { version = "0.15" } ndarray-csv = "=0.5.1" csv = "1.1" diff --git a/docs/website/content/news/release_061.md b/docs/website/content/news/release_061.md index 2ebb8c7f1..988dc89e4 100644 --- a/docs/website/content/news/release_061.md +++ b/docs/website/content/news/release_061.md @@ -1,6 +1,6 @@ +++ -title = "Release 0.6.0" -date = "2022-06-15" +title = "Release 0.6.1" +date = "2022-12-03" +++ Linfa's 0.6.1 release mainly consists of fixes to existing algorithms and the overall crate. The Isotonic Regression algorithm has also been added to `linfa-linear`. diff --git a/docs/website/content/news/release_070.md b/docs/website/content/news/release_070.md new file mode 100644 index 000000000..584f2f565 --- /dev/null +++ b/docs/website/content/news/release_070.md @@ -0,0 +1,18 @@ ++++ +title = "Release 0.7.0" +date = "2023-10-15" ++++ + +Linfa's 0.7.0 release mainly consists of improvements to Serde support. It also removes Approximate DBSCAN from `linfa-clustering` due to subpar performance and outdated dependencies. + +## Improvements and fixes + + * Add `array_from_gz_csv` and `array_from_csv` in `linfa-datasets`. + * Make Serde support in `linfa-linear`, `linfa-logistic`, and `linfa-ftrl` optional. + * Add Serde support to `linfa-preprocessing` and `linfa-bayes`. + * Bump `argmin` to 0.8.1. + * Make licenses follow SPDX 2.1 license expression standard. + +## Removals + +Approximate DBSCAN is an alternative implementation of the DBSCAN algorithm that trades precision for speed. However, the implementation in `linfa-clustering` is actually slower than the regular DBSCAN implementation. It also depends on the `partitions` crate, which is incompatible with current versions of Rust. Thus, we have decided to remove Approximate DBSCAN from Linfa. The Approximate DBSCAN types and APIs are now aliases to regular DBSCAN.