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
Metadata
Release files for noloox 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| noloox-0.1.0.tar.gz | 17.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| noloox-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.0 kB
Release files / noloox-0.1.0.tar.gz
| Download URL | noloox-0.1.0.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
819cb8735692fb341f95cd40d15479ed313aceb0b21c90f24efd2f782d79b21d
|
|
BLAKE2b-256 checksum How to use checksums |
9a94248ca863f0e10215ed776b94605a89e97493458919fac3c996106ac955ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.12.11 Linux/6.14.0-36-generic
|
Release files / noloox-0.1.0-py3-none-any.whl
| Download URL | noloox-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c16cc80282ecdd95aff0f61074c5f520348249310525b57ed3ad9bb1e55a6e9
|
|
BLAKE2b-256 checksum How to use checksums |
ee15a15f63565f7b992c5968e4596d8d9b2f159cb0a97ce176636482812bc4e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.12.11 Linux/6.14.0-36-generic
|
Security for noloox 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.