K-Means Segments That Only Reflect Account Size
A B2B software company wants to segment 60,000 accounts for sales plays. The team selects 14 numeric usage features, including total_sessions, seats, admin_logins, api_calls, storage_gb, and support_tickets. They run k-means in a Visual Analysis with k=6, no scaling, and get a silhouette of 0.18. The six clusters line up almost perfectly with total_sessions quartiles: Cluster 1 has median 12 sessions, and Cluster 6 has median 4,800. Within each cluster, the other 13 features vary widely. Sales says the segments are just 'small, medium, large' and not actionable. A data scientist suggests standardizing features, log-transforming heavy tails, and trying k=4 to 10. Another suggests using PCA first. You need to advise on preprocessing, cluster count, and validation before presenting segments. The goal is to find behavioral segments, not volume tiers.
1. Why are the k=6 clusters not actionable, and what preprocessing is required?
Read the worked answer
K-means minimizes Euclidean distance, so unscaled features with large ranges dominate. total_sessions has a median range from 12 to 4,800, while admin_logins or storage_gb may vary on a much smaller scale; the algorithm is effectively clustering on total_sessions alone. The silhouette of 0.18 is weak, consistent with volume tiers. Standardize all 14 features (z-scores) before clustering, and log-transform heavy-tailed count features such as total_sessions, api_calls, and storage_gb first. After scaling, re-run k-means and inspect cluster profiles. If volume is still the dominant story, either remove it from the behavioral clustering or stratify by size band and cluster within bands. Do not use PCA before checking interpretability; PCA can help with collinearity but makes cluster profiles harder for sales to act on.
2. How would you choose k and validate that the segments are stable?
Read the worked answer
Evaluate k=4 to 10 with silhouette, Davies-Bouldin, and within-cluster sum of squares, but do not select k on silhouette alone. Check that each cluster has enough accounts (for example, at least 5% of 60,000) and that profiles differ on features sales can act on. Run stability checks: multiple random seeds, bootstrap samples, and a holdout of accounts; keep k only if cluster assignments agree across runs. Compare k=4 and k=6 substantively. If k=6 splits one volume tier into two nearly identical groups, prefer the smaller k. Present cluster medians and distributions, not just centroids.
3. How would you present the final segments to sales without overclaiming?
Read the worked answer
Name segments by behavior, not by size tier, and show the top distinguishing features with medians and ranges. Include segment size, revenue potential, and a recommended play. Validate that the segments differ on an outcome (expansion, churn, upsell) using a holdout or historical data; a clustering is descriptive, not causal. Avoid saying a feature 'drives' an outcome. Document the preprocessing, k choice, and stability results so the segments can be reproduced. If the final clusters still mostly reflect volume, say so and use size bands as an explicit stratifier rather than pretending they are behavioral segments.