Skip to content
Preptima
mediumConceptScenarioMidSeniorStaff

You've clustered the customer base and there are no labels. How do you know the clustering is any good?

Combine internal geometry measures such as silhouette with stability under resampling, then accept that neither picks k for you. A clustering is good when the segments are separable, reproducible on a resampled dataset, and distinct on a variable the business will act on.

4 min readUpdated 2026-07-28
Practice answering out loud

What the interviewer is scoring

  • Does the candidate distinguish an internal measure of geometry from evidence that the clustering is real
  • Whether resampling or perturbation is proposed as a reproducibility check rather than only a single fitted model being scored
  • That silhouette is understood to reward convex, similarly sized blobs and to penalise correct non-convex solutions
  • Whether the candidate asks what decision the segments will drive before arguing about k
  • Does the answer survive the follow-up that two clusterings scored identically but disagree on half the members

Answer

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

# Cluster labels are arbitrary, so compare agreement on co-membership,
# not the label values. Two runs of the same k on overlapping resamples.
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.

Likely follow-ups

  • Silhouette peaks at k equals two but the marketing team needs five segments. What do you tell them?
  • How would you measure whether two clusterings of the same data agree?
  • Your clusters are stable but every one of them is dominated by tenure. What does that suggest?
  • How does the answer change for DBSCAN, where you do not set k at all?

Related questions

Further reading

clusteringunsupervised-learningsilhouettemodel-validationsegmentation