Gaussian Mixture Model (GMM) calculator
Perform soft clustering using Gaussian Mixture Models online. Estimate cluster probabilities, covariances, and plot cluster ellipses.
What it does
You want clusters that can be elliptical and differently sized rather than the round, equal blobs k-means assumes. GMM fits each cluster as a Gaussian and assigns each point to its most-likely cluster.
When to use it
Each point gets a cluster label (its most-likely component); clusters are modelled as ellipses, so their spread and orientation can differ. The underlying membership probabilities drive the assignment but are not displayed in this release.
Worked example
You are separating two overlapping populations — say patients with and without a condition, on a blood marker where the ranges overlap. Rather than assigning each person firmly to one group, a mixture model gives a probability of belonging to each, which is the honest answer when the distributions genuinely overlap.
Cautions
- GMM assumes each cluster is genuinely Gaussian-shaped — clusters with very non-elliptical shapes (crescents, rings, varying density) will be poorly fit no matter how good the k choice is; membership probabilities describe the fitted model, not a certainty about ground truth, and as with any clustering, the groups still need validating against variables not used to build them.
- Like k-means, GMM needs the number of components (k) chosen in advance, so the fit is checked across candidate k values (e.g. by BIC/AIC or silhouette on the hard assignment) and for convergence, since the underlying EM optimisation can settle on a poor local solution depending on its starting point.
Alternatives
- k-means — k-means assumes roughly round, equally-sized clusters and assigns each point to exactly one; GMM allows elliptical clusters of different sizes/orientations and reports a probability of membership in each one.
- DBSCAN — DBSCAN is built for density-based, arbitrarily shaped clusters and can label points as noise; if you'd rather have every point receive a soft assignment to one of a chosen number of groups, GMM is the better fit.
How to read the output
- Component membership probabilities
- Each point gets a probability per component; the displayed label is simply the largest of them. A point assigned at 0.51 and one at 0.99 look identical once labelled. When many points sit near the boundary, the hard labels are far more confident than the model is.
- The number of components
- Set by you, as in k-means. More components always fit the data better. 'Fits better' is not 'is more real'. Enough components will reproduce any dataset exactly, one per point.
- Silhouette
- Per point, how much closer it sits to its own cluster than to the nearest other one, averaged over the data. Roughly: above 0.5 is a clean separation, 0.25–0.5 is weak structure, below 0.25 is not a partition worth describing. It measures whether the CUT is clean, not whether the groups mean anything. A high silhouette on variables that are three versions of the same measurement describes your column list, not your subjects.
- Whether the data were scaled
- Every method here works on distances, and a distance adds up your columns' units. Standardizing puts each variable on the same footing before that sum is taken. Unscaled, the variable with the largest numeric range silently becomes the clustering. Income in pounds against age in years is a clustering of income. Turn scaling off only when the raw units are genuinely comparable and you mean to keep their relative weight.
- What the components are
- Each is a Gaussian — a bell in several dimensions. Clustering always returns clusters, whether or not any exist — k-means will happily cut uniform noise into four tidy pieces. A partition is a hypothesis, not a finding: check the groups differ on a variable you did NOT cluster on before describing them as real. A mixture of Gaussians can also fit ONE skewed group with two components, which then look like two populations and are not.
How this calculator is validated · Which statistical test should I use?