Skip to main content

Fit gaussian mixture models using truncated gaussian kernels. This is a python wrapper around the julia package TruncatedGaussianMixtures.jl

Project description

Truncated Guassian Mixtures

Documentation PyPI version

Fit data to mixtures of truncated multivariate gaussians

   p(x) = \sum_k w_k\  \phi_{[{\bf a}, {\bf b}]}({\bf x} | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)

where ${\bf a}$ and ${\bf b}$ are the bounding corners of the hypercube we would like to truncate the gaussian in. This package supports

  • Full, Diagonal and Block diagonal covariances for each component
  • Inteface to allow one to perform the fit in some latent space given by a user-defined transformation, and carry along any target labels
  • Sampling and pdf evaluation from the resultant fit

Quick Start

You can install this library using

pip install truncatedgaussianmixtures

You can then import truncatedgaussianmixtures. At the first import it may take a while, since this will create a local julia installation. This will only happen once at the first ever import.

The main function to use is fit_gmm. The following is a simple example use case.

   import pandas as pd
   from truncatedgaussianmixtures import fit_gmm

   # Generate some data
   df = pd.DataFrame(np.random.randn(80_000, 2), columns=["x", "y"])
   
   # Truncated it to the unit square
   cond = (df['x'] < 1) & (df['x'] > 0)  
   cond &= (df['y'] < 1) & (df['y'] > 0)
   df = df[cond]

   # Fit it a truncated gaussian mixture model to it
   gmm = fit_gmm(data = df,      # data to fit to
                 N    = 1,       # Number of components of the mixture model
                 a    = [0,0],   # lower corner of the truncation
                 b    = [1,1],   # upper corner of the truncation
                 cov  = "diag"   # covariance structure: any of ("diag", "full")
          )

   # Sample from the gmm
   df_fit = gmm.sample(len(df));

   # Evaluate it at different points
   gmm.pdf(np.array([0,0]))

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

truncatedgaussianmixtures-0.1.7.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

truncatedgaussianmixtures-0.1.7-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file truncatedgaussianmixtures-0.1.7.tar.gz.

File metadata

File hashes

Hashes for truncatedgaussianmixtures-0.1.7.tar.gz
Algorithm Hash digest
SHA256 fb44380e7944e1f37574e36920ddbcbba5629a46b5fd8ce04f43a59755eb71f9
MD5 f0d273c0350e745d05ca28a4e5b2c0ef
BLAKE2b-256 d84e471974c02838c5f6ac51915db15eb17860257e174b6f02e3c15a447e14e4

See more details on using hashes here.

File details

Details for the file truncatedgaussianmixtures-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for truncatedgaussianmixtures-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9a6964e1ec8a61230324f7964768cfd931621119e64e1bb64a2977fbd8359b07
MD5 90311f7f23bd0ba667623579f1289826
BLAKE2b-256 292721d5276cba34400a40dc12b88d925ef03e0c702c6614ad9ab5f88eae0c5a

See more details on using hashes here.

Supported by

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