# Evaluation of clustering: single cluster solution vs. multiple clusters

There are a few indices out there that help compare competing clustering solutions (e.g., Calinski-Harabasz index and many others).

Is there a popular index/procedure that helps compare a single cluster solution (i.e., all elements belong to one single cluster) vs. a solution with multiple clusters (such as produced by a k-means procedure with 2 clusters)?

• Is there perhaps a threshold value that can help decide whether clustering makes sense at all? For example, a rule that says that if the best clustering solution (say, the one with the highest Calinski-Harabasz index) explains at least 50% of total variance, then we should go with that clustering solution. If less than 50%, then prefer a one-cluster (i.e., no clustering) solution? – k-zar Oct 24 '16 at 5:48
• Clustering criterions are many, but few of them can consider the 1-cluster solution to compare with others, because typically this would call for resampling. See Gap statistic as one example. You may also decide it on the (matrix) scatterplot, for quantitative variables: it is not difficult to decide if there clusters or no clusters at all (i.e. 1 cluster) visually. – ttnphns Oct 24 '16 at 7:42

Some of the indices implemented in NbClust package, such as ccc, scott, marriot can be computed for only one cluster by setting min.nc to 1. The value of the index for a partition with only one cluster will be compared to the index values for partitions with 2,3,.., max.nc clusters and the best number of clusters will be displayed.

When the index can not be computed for a partition with only one cluster (i.e. not defined), such as ch, kl, hartigan, NA will be displayed. (see example below).

NbClust(x, diss=diss_matrix, distance = NULL, min.nc=1, max.nc=4,
+         method = "ward.D2", index = "scott")
$All.index 1 2 3 4 34.4075 137.8320 201.4264 304.1030$Best.nc
Number_clusters     Value_Index
2.0000        103.4245

$Best.partition [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 [38] 2 2 2 NbClust(x, diss=diss_matrix, distance = NULL, min.nc=1, max.nc=6, + method = "ward.D2", index = "ch")$All.index
1        2        3        4        5        6
NA  447.811 1070.124 4965.892 4952.076 4949.618

$Best.nc Number_clusters Value_Index 4.000 4965.892$Best.partition
[1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4
[38] 4 4 4

• Can you spell out what some of the indexes you refer to are for the benefit of people not familiar with the abbreviations? – mdewey Oct 26 '16 at 10:45
• Thank you! I see the Scott criterion seems to be always 0 for a one-cluster solution if the dataset is scaled. I wanted to use Marriott, but the choice rule is "Max. value of second differences between levels of the index". Does it mean that a one-cluster solution will never be deemed optimal by this method? – k-zar Oct 28 '16 at 2:49