There is no held-out score to appeal to
Supervised validation works because a label you did not train on arbitrates the
argument. Clustering has no arbiter, so every measure you compute is either a
statement about geometry or a statement about reproducibility. Being explicit
about which of the two you are quoting is most of a strong answer, because the
two fail in different ways and a candidate who conflates them will defend a
clustering that is an artefact of the algorithm.
Internal measures describe the shape you got
The silhouette coefficient compares, for each point, the mean distance to
its own cluster against the mean distance to the nearest other cluster, scaled
to sit between minus one and one. Averaged over the dataset it gives one number,
and per-point it gives something far more useful: a silhouette plot shows which
clusters are tight and which are a loose bag of points that only exist because
the algorithm was told to produce them.
Davies-Bouldin and Calinski-Harabasz are the same kind of quantity by different
arithmetic, both trading within-cluster spread against between-cluster
separation. All three share an assumption worth naming out loud, which is that a
good cluster is a compact, roughly convex ball. Feed them two concentric rings
or a pair of elongated crescents, and they will prefer a k-means solution that
slices both rings in half over the density-based solution that recovers the true
structure. An internal measure therefore cannot tell you the clustering is
wrong; it can only tell you the clustering is not blob-shaped.
They are also scale-dependent in a way that quietly decides the outcome.
Silhouette is computed on distances, so the features you standardised and the
features you left in their raw units are not competing on equal terms, and
switching from Euclidean to cosine distance can reorder your candidate values
of k entirely.
Stability is the closer thing to validation
The question that actually matters is whether the segments would still be there
in a different sample of the same population. Fit the clustering on many
bootstrap resamples or on random halves of the data, then measure how much
successive solutions agree on the pairs of points they put together, using the
adjusted Rand index or normalised mutual information. Cluster labels are
arbitrary permutations, so you compare co-membership rather than label identity.
A clustering that reproduces across resamples is telling you something about the
population. One that reshuffles half its members every time you perturb the
input is telling you about the initialisation seed. This check also gives you the
most defensible way to compare candidate values of k, because a k whose solution
is reproducible is preferable to a k whose silhouette is marginally higher but
whose membership is unstable.
from sklearn.metrics import adjusted_rand_score
agreement = adjusted_rand_score(labels_resample_a, labels_resample_b)
The elbow does not choose k, and neither does silhouette
The comfortable answer is to plot inertia against k, find the bend, and declare
that the data chose the number of segments. Inertia falls monotonically as k
rises, so the curve always bends somewhere, and where it appears to bend depends
on the aspect ratio you plotted it at. On real customer data the curve is
usually smooth and the elbow is wherever you would like it to be. Silhouette is
better behaved but frequently peaks at two, which is almost never the answer a
segmentation programme can use.
The honest position is that k is a business parameter constrained by the
statistics rather than determined by them. If each segment gets its own creative
treatment and the team can produce four, then k is about four, and your job is
to find the most stable and best-separated four-cluster solution rather than to
pretend the data asked for it. Say that plainly in the interview: it reads as
judgement, not evasion.
Then check the segments say something new
The final test is external and it is the one that decides whether the work
shipped. Take a variable that was not used for clustering but that the business
cares about, and see whether the clusters differ on it. If segments have
materially different churn rates, basket sizes or support contact rates, you have
found structure that maps onto a decision. If they differ only on the inputs you
clustered on, you have a description of your own feature space, and a rule based
on tenure and spend would have been cheaper, more stable and easier to explain.
Silhouette tells you whether the clusters are round, stability tells you
whether they are real, and only the decision they feed tells you whether they
are useful. Report all three and never claim the elbow picked k for you.
© 2026 Preptima. Originally published at preptima.com (opens in a new tab).