Completeness
Completeness answers a very specific question in clustering: when you already know the true class labels, did the algorithm keep members of the same true class together, or did it scatter them across multiple clusters? It is a way to judge how well a clustering respects the natural grouping that exists in the reference labels.
What it measures
A clustering has high completeness when all data points that belong to the same ground-truth class end up in the same cluster. If one real customer segment gets split into three different clusters, completeness drops. If each true topic in a document collection is captured inside a single cluster, completeness is high. Technically, completeness is based on conditional entropy: it checks how uncertain the true class remains once you know the assigned cluster. In scikit-learn, this appears as completeness_score.
Why it matters
Completeness matters because many clustering failures come from fragmentation rather than total confusion. A model can create very pure clusters but still split one meaningful group into many pieces. That is useful to detect in tasks like:
- Customer segmentation: one customer type broken into several clusters makes targeting inconsistent.
- Topic discovery: documents from one topic scattered across clusters make interpretation harder.
- Anomaly analysis: splitting one known fraud pattern into many clusters can hide a coherent behavior.
Completeness vs. related metrics
Completeness is the counterpart to homogeneity. Homogeneity asks: does each cluster contain only one class? Completeness asks: does each class appear in only one cluster? You usually want both. A clustering that puts every point into one giant cluster gets perfect completeness but terrible homogeneity. That is why people frequently combine them using the V-measure, which balances the two into a single score.
Completeness is an external clustering metric that measures whether all data points belonging to the same true class are assigned to a single cluster. It is high when a class is not split across multiple clusters, regardless of whether clusters mix different classes. Completeness matters because it quantifies one key aspect of cluster-label agreement and, together with homogeneity, helps judge whether a clustering preserves real group structure.
Imagine sorting a box of mixed photos into piles by who is in them. Completeness asks: did all photos of the same person end up in the same pile, or were they split across several piles?
In AI clustering, this idea is used when you already know the true groups and want to check how well the AI matched them. A clustering has high completeness if each real-world group stays together inside one cluster, even if that cluster also contains some extra items. It matters because a useful grouping should avoid scattering similar things across many buckets, like splitting all dog photos into five different folders for no good reason.