Is there any way to determine the optimal cluster number or should I just try different values and check the error rates to decide on the best value?
|
|
The method I use is to use CCC (Cubic Clustering Criteria). I look for CCC to increase to a maximum as I increment the number of clusters by 1, and then observe when the CCC starts to decrease. At that point I take the number of clusters at the (local) maximum. This would be similar to using a scree plot to picking the number of principal components. SAS Technical Report A-108 Cubic Clustering Criterion (pdf) $n$ = number of observations Assume each variable has mean 0: $SS$(total) matrix = $T$= $X’X$ $R^2 = 1 – \frac{\text{trace(W)}}{\text{trace}(T)}$ Stack columns of $X$ into one long column. The CCC idea is to compare the $R^2$ you get for a given set of clusters with the $R^2$ you would get by clustering a uniformly distributed set of points in $p$ dimensional space. |
||||
|
|
