Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noloox-0.1.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

noloox-0.1.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

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

Hashes for noloox-0.1.0.tar.gz
Algorithm Hash digest
SHA256 819cb8735692fb341f95cd40d15479ed313aceb0b21c90f24efd2f782d79b21d
MD5 d5bd05e764a731eafd722d45dcad44c9
BLAKE2b-256 9a94248ca863f0e10215ed776b94605a89e97493458919fac3c996106ac955ae

See more details on using hashes here.

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

Hashes for noloox-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c16cc80282ecdd95aff0f61074c5f520348249310525b57ed3ad9bb1e55a6e9
MD5 a43f6b942fb3fbe7d0501e7e679e82a7
BLAKE2b-256 ee15a15f63565f7b992c5968e4596d8d9b2f159cb0a97ce176636482812bc4e0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page