# What do you do when there's no elbow point for kmeans clustering

I've learned that when choosing a number of clusters, you should look for an elbow point for different values of K. I've plotted the values of withinss for values of k from 1 to 10, but I'm not seeing a clear elbow. What do you do in a case like this?

• There exist many clustering criterions, "SS elbow" rule being just one and not the best. Try other. It is as well likely that you don't have clusters in your data. Mar 12, 2014 at 6:30
• @ttnphns What is this mystical other you speak of? How can I not have clusters in my data? How do I know?
– Glen
Mar 13, 2014 at 16:39

## Wrong method?

Maybe you are using the wrong algorithm for your problem.

## Wrong preprocessing?

K-means is highly sensitive to preprocessing. If one attribute is on a much larger scale than the others, it will dominate the output. Your output will then be effectively 1-dimensional

## Visualize results

Whatever you do, you need to validate your results by something other than starting at a number such as SSQ. Instead, consider visualization.

Visualization may also tell you that maybe there is only a single cluster in your data.

• What are some good visualization options for multi-dimensional data? Mar 14, 2014 at 14:44
• Depends on your data. Some data can be projected well, because it has much lower intrinsic dimensionality. Time series can easily be plotted, and if your data is a serialized image, visualize it as images? By any means, visualization depends on your data, there won't ever be a one-size-fits-all solution. Mar 15, 2014 at 2:49

One way is to manually inspect the members in your clusters for a specific k to see if the groupings make sense (are they distinguishable?). This can be done via contingency tables and conditional means. Do this for a variety of k's and you can determine what value is appropriate.

A less subjective way is to use the Silhouette Value:

https://stackoverflow.com/questions/18285434/how-do-i-choose-k-when-using-k-means-clustering-with-silhouette-function

This can be computed with your favorite software package. From the link:

This method just compares the intra-group similarity to closest group similarity. If any data member average distance to other members of the same cluster is higher than average distance to some other cluster members, then this value is negative and clustering is not successful. On the other hand, silhuette values close to 1 indicates a successful clustering operation. 0.5 is not an exact measure for clustering.

• Glen, I personally think your answer is incomplete. The 1st paragraph looks unclear. What is that "manual inspecting", can you describe the procedure please? Then, Silhouette is "less subjective" than what? And why? Mar 12, 2014 at 9:38
– Glen
Mar 12, 2014 at 16:21
• contingency tables and conditional means This is further mystical. What should I do with them do arrive "subjectively" at a good k? Mar 13, 2014 at 5:55
• @ttnphns If the poster has a question about it I will follow up. As I said you should check to see if the groupings are distinguishable. It seems clear to me.
– Glen
Mar 13, 2014 at 16:39
• So if I get low silhouette values (~.35) it might indicate that this data doesn't really have good clusters? Mar 18, 2014 at 14:54
• No elbow in for K-means does not mean that there are no clusters in the data;
• No elbow means that the algorithm used cannot separate clusters; (think about K-means for concentric circles, vs DBSCAN)

Generally, you may consider: