Unsupervised learning algorithms you will need one day.
Project description
is a Python library containing reference implementations of a bunch of very useful unsupervised learning algorithms that you probably won't find elsewhere.
What
is:
- A collection of unsupervised machine learning algorithms
- A scikit-learn compatible library
- An educational resource containing worked examples and reference implementation
What
isn't:
- The most feature-complete or efficient implementation of these algorithms
- A replacement for scikit-learn
- An all-in-one machine learning framework
- A library for complete Bayesian inference. Use a PPL like NumPyro, PyMC or Stan.
Basic usage
Install noloox from PyPI:
pip install noloox
Then you can load models from the library and use them the same way you would use scikit-learn.
from noloox.mixture import StudentsTMixture
model = StudentsTMixture(n_components=10)
cluster_labels = model.fit_predict(X)
Models
| Model | What do I use it for? | JAX or NumPy? | What algorithm? |
|---|---|---|---|
| Peax | Cluster 2D data where the number of clusters is unknown. | NumPy | Expectation-Maximization |
| SNMF | Factor data, where you expect the factors to be non-negative, but the data is unbounded | JAX | Iterative updates |
| WNMF | NMF, but you don't want to weight all observations equally. | NumPy | Iterative updates |
| StudentsTMixture and CauchyMixture | Cluster continuous data in a way that is robust to outliers. | JAX | Expectation-Maximization |
| DirichletMultinomialMixture | Cluster count data/Short-text topic modelling | JAX | Collapsed Gibbs Sampling |
Our philosophy and goals
- Keep implementations simple and minimal, Minimal dependencies
- Everything should either be implemented in NumPy or JAX. Preferably as many in JAX as possible.
- Library structure should match sklearn standards, and all algorithms should be drop-in replacements for scikit-learn equivalents.
- Under these restrictions, algorithms should be as fast as humanly possible
The
wishlist:
There are a number of algorithms that would be nice to implement in the library. Contributions are very welcome.
- ProdLDA, and amortized ProdLDA (CTMs) (without Flax)
- Parametric-TSNE, possibly also Multi-scale Parametric-TSNE
- DiRE
- Infinite NMF
- Latent Dirichlet Allocation with Gibbs Sampling
- Gaussian LDA
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file noloox-0.1.0.tar.gz.
File metadata
- Download URL: noloox-0.1.0.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.12.11 Linux/6.14.0-36-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
819cb8735692fb341f95cd40d15479ed313aceb0b21c90f24efd2f782d79b21d
|
|
| MD5 |
d5bd05e764a731eafd722d45dcad44c9
|
|
| BLAKE2b-256 |
9a94248ca863f0e10215ed776b94605a89e97493458919fac3c996106ac955ae
|
File details
Details for the file noloox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: noloox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.12.11 Linux/6.14.0-36-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c16cc80282ecdd95aff0f61074c5f520348249310525b57ed3ad9bb1e55a6e9
|
|
| MD5 |
a43f6b942fb3fbe7d0501e7e679e82a7
|
|
| BLAKE2b-256 |
ee15a15f63565f7b992c5968e4596d8d9b2f159cb0a97ce176636482812bc4e0
|