Fit gaussian mixture models using truncated gaussian kernels. This is a python wrapper around the julia package TruncatedGaussianMixtures.jl
Project description
Truncated Guassian Mixtures
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
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
File details
Details for the file truncatedgaussianmixtures-0.1.7.tar.gz
.
File metadata
- Download URL: truncatedgaussianmixtures-0.1.7.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb44380e7944e1f37574e36920ddbcbba5629a46b5fd8ce04f43a59755eb71f9 |
|
MD5 | f0d273c0350e745d05ca28a4e5b2c0ef |
|
BLAKE2b-256 | d84e471974c02838c5f6ac51915db15eb17860257e174b6f02e3c15a447e14e4 |
File details
Details for the file truncatedgaussianmixtures-0.1.7-py3-none-any.whl
.
File metadata
- Download URL: truncatedgaussianmixtures-0.1.7-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a6964e1ec8a61230324f7964768cfd931621119e64e1bb64a2977fbd8359b07 |
|
MD5 | 90311f7f23bd0ba667623579f1289826 |
|
BLAKE2b-256 | 292721d5276cba34400a40dc12b88d925ef03e0c702c6614ad9ab5f88eae0c5a |