- add
array_from_gz_csv
andarray_from_csv
inlinfa-datasets
- make Serde support in
linfa-linear
,linfa-logistic
, andlinfa-ftrl
optional - bump
argmin
to 0.8.1 - add Serde support to
linfa-preprocessing
andlinfa-bayes
- make licenses follow SPDX 2.1 license expression standard
- 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.
- Isotonic regression added to
linfa-linear
by [@wildart] - Mean absolute percentage error (MAPE) added to
linfa
by [@bernado-sb]
- add constructor for
LpDist
- add
Send + Sync
to trait objects returned bylinfa-nn
- remove
anyhow <= 1.0.48
version restriction - bump
ndarray
to 0.15 - fix
serde
support forLogisticRegression
- Multinomial Naive Bayes added to
linfa-bayes
by [@sgrigory] - Follow The Regularized Leader added as
linfa-ftrl
by [@MilaKyr]
- BLAS backend no longer required to build Linfa
- remove
SeedableRng
trait bound fromKMeans
andGaussianMixture
- replace uses of Isaac RNG with Xoshiro RNG
- parametrize
AsTargets
by the dimensionality of the targets and introduceAsSingleTargets
andAsMultiTargets
Dataset
andDatasetView
can now be parametrized by target dimensionality, with 2D being the default- single-target algorithms no longer accept 2D target arrays as input
cross_validate
changed tocross_validate_single
,cross_validate_multi
changed tocross_validate
Pr
has been constrained to0. <= prob <= 1.
with new constructors
Note that the commits for this release are in the 0-5-1
branch.
- remove
Float
trait bound from manyDataset
impls, making non-float datasets usable - fix build errors in 0.5.0 caused by breaking minor releases from dependencies
- fix bug in k-means where the termination condition of the algorithm was calculated incorrectly
- fix build failure when building
linfa
alone, caused by incorrect feature selection forndarray
- Nearest neighbour algorithms and traits have been added as
linfa-nn
by [@YuhanLiin] - OPTICS has been added to
linfa-clustering
by @xd009642 - Multinomial logistic regression has been added to
linfa-logistic
by [@YuhanLiin]
- use least squares solver from
ndarray-linalg
inlinfa-linear
(3dc9cb0) - optimized DBSCAN by replacing linear range query implementation with KD-tree (44f91d0)
- allow distance metrics other than Euclidean to be used for KMeans (4e58d8d)
- enable models to write prediction results into existing memory without allocating (37bc25b)
- bumped
ndarray
version to 0.15 and reduced duplicated dependencies (603f821) - introduce
ParamGuard
trait to algorithm parameter sets to enable both explicit and implicit parameter checking (01f912a) - replace uses of HNSW with
linfa-nn
(208a762)
- Partial Least Squares Regression has been added as
linfa-pls
by [@relf] - Barnes-Hut t-SNE wrapper has been added as
linfa-tsne
by [@frjnn] - Count-vectorizer and IT-IDF normalization has been added as
linfa-preprocessing
by [@Sauro98] - Platt scaling has been added to
linfa-svm
by [@bytesnake] - Incremental KMeans and KMeans++ and KMeans|| initialization methods added to
linfa-clustering
by [@YuhanLiin]
- bumped
ndarray
version to 0.14 (8276bdc) - change trait signature of
linfa::Fit
to returnResult
(a5a479f) - add
cross_validate
to perform K-folding (a5a479f)
In this release of Linfa the documentation is extended, new examples are added and the functionality of datasets improved. No new algorithms were added.
The meta-issue #82 gives a good overview of the necessary documentation improvements and testing/documentation/examples were considerably extended in this release.
Further new functionality was added to datasets and multi-target datasets are introduced. Bootstrapping is now possible for features and samples and you can cross-validate your model with k-folding. We polished various bits in the kernel machines and simplified the interface there.
The trait structure of regression metrics are simplified and the silhouette score introduced for easier testing of K-Means and other algorithms.
- improve documentation in all algorithms, various commits
- add a website to the infrastructure (c8acc785b)
- add k-folding with and without copying (b0af80546f8)
- add feature naming and pearson's cross correlation (71989627f)
- improve ergonomics when handling kernels (1a7982b973)
- improve TikZ generator in
linfa-trees
(9d71f603bbe) - introduce multi-target datasets (b231118629)
- simplify regression metrics and add cluster metrics (d0363a1fa8ef)
- Approximated DBSCAN has been added to
linfa-clustering
by [@Sauro98] - Gaussian Naive Bayes has been added to
linfa-bayes
by [@VasanthakumarV] - Elastic Net linear regression has been added to
linfa-elasticnet
by [@paulkoerbitz] and [@bytesnake]
- Added benchmark to gaussian mixture models (a3eede55)
- Fixed bugs in linear decision trees, added generator for TiKZ trees (bfa5aebe7)
- Implemented serde for all crates behind feature flag (4f0b63bb)
- Implemented new backend features (7296c9ec4)
- Introduced
linfa-datasets
for easier testing (3cec12b4f) - Rename
Dataset
toDatasetBase
and introduceDataset
andDatasetView
(21dd579cf) - Improve kernel tests and documentation (8e81a6d)
- Ordinary Linear Regression has been added to
linfa-linear
by [@Nimpruda] and [@paulkoerbitz] - Generalized Linear Models has been added to
linfa-linear
by [VasanthakumarV] - Linear decision trees were added to
linfa-trees
by [@mossbanay] - Fast independent component analysis (ICA) has been added to
linfa-ica
by [@VasanthakumarV] - Principal Component Analysis and Diffusion Maps have been added to
linfa-reduction
by [@bytesnake] - Support Vector Machines has been added to
linfa-svm
by [@bytesnake] - Logistic regression has been added to
linfa-logistic
by [@paulkoerbitz] - Hierarchical agglomerative clustering has been added to
linfa-hierarchical
by [@bytesnake] - Gaussian Mixture Models has been added to
linfa-clustering
by [@relf]
- Common metrics for classification and regression have been added
- A new dataset interface simplifies the work with targets and labels
- New traits for
Transformer
,Fit
andIncrementalFit
standardizes the interface - Switched to Github Actions for better integration
- First release of
linfa-clustering:v0.1.0
with theKMeans
algorithm (by @LukeMathWalker) - First (real) release of
linfa
, re-exportinglinfa-clustering
(by @LukeMathWalker)