Bird
Raised Fist0
ML Pythonml~8 mins

Cluster evaluation metrics in ML Python - Model Metrics & Evaluation

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Metrics & Evaluation - Cluster evaluation metrics
Which metric matters for cluster evaluation and WHY

When we group data points into clusters, we want to know how good these groups are. Unlike labeled tasks, clusters have no fixed answers. So, we use special metrics to check if points in the same cluster are similar and points in different clusters are different.

Common metrics include:

  • Silhouette Score: Measures how close each point is to its own cluster compared to other clusters. Higher means better grouping.
  • Davies-Bouldin Index: Looks at cluster similarity and separation. Lower values mean better clusters.
  • Calinski-Harabasz Index: Compares variance within clusters to variance between clusters. Higher is better.

These metrics help us decide if our clusters make sense without needing true labels.

Confusion matrix or equivalent visualization

For clustering, we don't have a confusion matrix like classification. Instead, we can visualize clusters with a dendrogram or scatter plot colored by cluster.

Cluster 1: ● ● ●
Cluster 2: ○ ○ ○
Cluster 3: ▲ ▲ ▲

Silhouette values per point:
Point 1: 0.7
Point 2: 0.6
Point 3: 0.8
...

Higher silhouette means better fit in cluster.
    
Precision vs Recall tradeoff (or equivalent) with concrete examples

Clustering doesn't have precision or recall directly. But we balance two ideas:

  • Compactness: Points in the same cluster should be close (like friends sitting together).
  • Separation: Different clusters should be far apart (like groups at different tables).

Improving compactness might reduce separation and vice versa. For example, if we make clusters very tight, some points might be left out or form many small clusters. If we make clusters very broad, different groups might mix.

What "good" vs "bad" metric values look like for clustering
  • Silhouette Score: Good: close to 1 (clear clusters). Bad: near 0 or negative (overlapping clusters).
  • Davies-Bouldin Index: Good: close to 0 (clusters well separated). Bad: large values (clusters overlap).
  • Calinski-Harabasz Index: Good: high values (distinct clusters). Bad: low values (clusters not distinct).

Example: Silhouette = 0.75 means clusters are well formed. Silhouette = 0.1 means clusters are mixed.

Common pitfalls in cluster evaluation metrics
  • Ignoring scale: Features with different scales can distort distances and metrics.
  • Choosing wrong number of clusters: Metrics can mislead if cluster count is too high or low.
  • Overfitting clusters: Too many clusters can give high scores but no real meaning.
  • Data shape: Metrics assume spherical clusters; irregular shapes can confuse them.
  • Comparing different algorithms: Metrics may favor some methods unfairly.
Self-check question

Your clustering model has a Silhouette Score of 0.2. Is this good? Why or why not?

Answer: A Silhouette Score of 0.2 is low, meaning clusters overlap a lot or are not well separated. This suggests the clustering is poor and may need adjustment like changing cluster count or features.

Key Result
Silhouette Score near 1 means clear clusters; near 0 or negative means poor clustering.

Practice

(1/5)
1. Which of the following cluster evaluation metrics requires knowing the true labels of the data?
easy
A. Davies-Bouldin Index
B. Silhouette Score
C. Adjusted Rand Index (ARI)
D. Calinski-Harabasz Index

Solution

  1. Step 1: Understand metric types

    Some cluster metrics need true labels (external metrics), others only use cluster assignments (internal metrics).
  2. Step 2: Identify ARI as external metric

    Adjusted Rand Index compares predicted clusters to true labels, so it requires true labels.
  3. Final Answer:

    Adjusted Rand Index (ARI) -> Option C
  4. Quick Check:

    External metric = ARI [OK]
Hint: Only ARI needs true labels; others use cluster data alone [OK]
Common Mistakes:
  • Confusing Silhouette Score as needing true labels
  • Thinking Davies-Bouldin Index requires true labels
  • Assuming Calinski-Harabasz Index uses true labels
2. Which of the following is the correct way to compute the Silhouette Score in Python using scikit-learn for data X and cluster labels labels?
easy
A. from sklearn.metrics import silhouette_score score = silhouette_score(X, labels)
B. from sklearn.cluster import silhouette_score score = silhouette_score(labels, X)
C. from sklearn.metrics import silhouette_score score = silhouette_score(labels, X)
D. from sklearn.metrics import silhouette_score score = silhouette_score(X)

Solution

  1. Step 1: Check import source

    Silhouette Score is in sklearn.metrics, not sklearn.cluster.
  2. Step 2: Check function parameters

    Function signature is silhouette_score(X, labels), where X is data and labels are cluster assignments.
  3. Final Answer:

    from sklearn.metrics import silhouette_score\nscore = silhouette_score(X, labels) -> Option A
  4. Quick Check:

    Correct import and parameter order = D [OK]
Hint: Import from metrics and pass data first, labels second [OK]
Common Mistakes:
  • Importing silhouette_score from sklearn.cluster
  • Swapping data and labels in function call
  • Calling silhouette_score with only data
3. Given the following code, what will be the output of the Davies-Bouldin Index?
from sklearn.metrics import davies_bouldin_score
X = [[1, 2], [2, 1], [10, 10], [11, 11]]
labels = [0, 0, 1, 1]
score = davies_bouldin_score(X, labels)
print(round(score, 2))
medium
A. 0.50
B. 1.41
C. 1.00
D. 0.11

Solution

  1. Step 1: Understand Davies-Bouldin Index meaning

    Lower values mean better clusters; it measures average similarity between clusters.
  2. Step 2: Calculate score using sklearn

    Running the code gives approximately 0.1111, rounded to 0.11.
  3. Final Answer:

    0.11 -> Option D
  4. Quick Check:

    Davies-Bouldin score ≈ 0.11 [OK]
Hint: Run sklearn function and round result to 2 decimals [OK]
Common Mistakes:
  • Confusing Davies-Bouldin with Silhouette Score values
  • Rounding incorrectly
  • Misinterpreting higher score as better
4. The following code throws an error. What is the most likely cause?
from sklearn.metrics import silhouette_score
X = [[1, 2], [2, 1], [10, 10], [11, 11]]
labels = [0, 0, 1]
score = silhouette_score(X, labels)
print(score)
medium
A. Mismatch in length between X and labels
B. silhouette_score requires true labels, not cluster labels
C. X should be a numpy array, not a list
D. silhouette_score cannot handle more than 3 clusters

Solution

  1. Step 1: Check input lengths

    Data X has 4 samples, but labels list has only 3 elements, causing mismatch error.
  2. Step 2: Understand silhouette_score input requirements

    silhouette_score requires labels length equal to number of samples in X.
  3. Final Answer:

    Mismatch in length between X and labels -> Option A
  4. Quick Check:

    Length mismatch error = A [OK]
Hint: Ensure labels length matches data samples count [OK]
Common Mistakes:
  • Thinking silhouette_score needs true labels
  • Assuming lists instead of arrays cause error
  • Believing cluster count limits cause error
5. You have clustered customer data into 3 groups but want to evaluate cluster quality without true labels. Which combination of metrics gives the best overall insight?
hard
A. Adjusted Rand Index and Calinski-Harabasz Index
B. Silhouette Score and Davies-Bouldin Index
C. Homogeneity Score and Completeness Score
D. Adjusted Mutual Information and Silhouette Score

Solution

  1. Step 1: Identify metrics that do not require true labels

    Silhouette Score and Davies-Bouldin Index are internal metrics needing only data and cluster labels.
  2. Step 2: Understand other metrics need true labels

    Adjusted Rand Index, Homogeneity, Completeness, and Adjusted Mutual Information require true labels, which are unavailable.
  3. Final Answer:

    Silhouette Score and Davies-Bouldin Index -> Option B
  4. Quick Check:

    Internal metrics only = A [OK]
Hint: Use only internal metrics when true labels are missing [OK]
Common Mistakes:
  • Choosing metrics that require true labels
  • Using only one metric instead of combination
  • Confusing internal and external metrics