Bayesian Sparse Gaussian Mixture Model implementation in Python
Project description
Bayesian Sparse GMM
Bayesian Sparse Gaussian Mixture Model (GMM) implementation in Python.
Installation
To install the latest release:
pip install bayesian-sparse-gmm
Or for development (editable mode):
git clone https://github.com/Coalyx/bayesian-sparse-gmm.git
cd bayesian-sparse-gmm
pip install -e .
Quick Start
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.preprocessing import StandardScaler
from bayesian_sparse_gmm import BayesianSparseGMM
# Append noise dimensions to true clusters to verify that the model successfully performs feature selection.
rng = np.random.default_rng(42)
X_clean, _ = make_blobs(n_samples=200, centers=3, n_features=2, cluster_std=0.5, random_state=42)
X_noise = rng.normal(loc=0.0, scale=1.0, size=(200, 8))
X = np.hstack([X_clean, X_noise])
# Standardize features to satisfy the zero-mean assumptions in the prior structure.
X = StandardScaler().fit_transform(X)
model = BayesianSparseGMM(
K_max=5,
n_iter=300,
burn_in=100,
lambda_0=10.0,
lambda_1=0.05,
random_state=42,
verbose=0
)
model.fit(X)
print(f"Number of active clusters: {model.n_clusters_}")
print(f"Selected informative features: {model.selected_features_}")
print(f"Feature inclusion probabilities: {model.feature_probabilities_.round(3)}")
labels = model.predict(X)
Development and Testing
Install development dependencies:
pip install -e ".[dev]"
Run tests using pytest:
pytest
Reference
@article{JMLR:v26:23-0142,
author = {Dapeng Yao and Fangzheng Xie and Yanxun Xu},
title = {Bayesian Sparse Gaussian Mixture Model for Clustering in High Dimensions},
journal = {Journal of Machine Learning Research},
year = {2025},
volume = {26},
number = {21},
pages = {1--50},
url = {http://jmlr.org/papers/v26/23-0142.html}
}
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
bayesian_sparse_gmm-0.1.2.tar.gz
(21.3 kB
view details)
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 bayesian_sparse_gmm-0.1.2.tar.gz.
File metadata
- Download URL: bayesian_sparse_gmm-0.1.2.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32d0e9ce09eedd70c7cc6138367fdd6e9f0fc25c89840c614afbe17a4d9016bd
|
|
| MD5 |
7de37d6431b4b8a13b5bb928149f5f5a
|
|
| BLAKE2b-256 |
1de46f8191fff25fc6dd71a690aa03b8aed1774fa8b18698c85389a09c83fcfd
|
File details
Details for the file bayesian_sparse_gmm-0.1.2-py3-none-any.whl.
File metadata
- Download URL: bayesian_sparse_gmm-0.1.2-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9695aa46d6bdf26369da57985986729fbcda520ebba8f398794004882ac9b7b8
|
|
| MD5 |
84022bfa924d7f114632ea6f259cc4c3
|
|
| BLAKE2b-256 |
11cd9a6dd42452cb84ff5aaaa1106b10aa26c6780de3af3b8ce6ee45f74f4057
|