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?

 A: 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.
A: 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.
A: *

*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:


*

*tune your algorithm;

*use another algorithm;

*do data preprocessing.

A: We can use the NbClust package to find the most optimal value of k.
It provides 30 indices for determining the number of clusters and proposes the best result.
NbClust(data=df, distance ="euclidean", min.nc=2, max.nc=15, method ="kmeans", index="all")
