1
$\begingroup$

I want to cluster a dataset without prior knowledge on the correct amount of clusters. For different algorithms (i.e. k-means, gmm...) I can iterate through different values and try to find the best solution for any given algorithm (i.e. ellbow-curve, silhouette-coefficient etc.).

But I get very different results - as expected with different algorithms. K-Means is good for spherical clusters, density-based approaches for totally different cluster shapes.

Now the actual question: How do I select the "best" unsupervised machine learning algorithm to cluster my specific dataset? Is there a scientific way to go? Any comparative metric (like rand index) that can be used? Some papers on that topic? Maybe even a flowchart?

$\endgroup$
0
$\begingroup$

This is a non-trivial question. There is no general law to find the "best" algorithm or the "correct" amount of clusters (assuming you don't know the correct number of clusters).

As you already mentioned, certain algorithms make assumptions on the shape of your clusters or your data in general. One thing I suggest is to look at your data, check the assumptions and rule out algorithms where assumptions are violated. dimensionality reduction methods like PCA, t-SNE, UMAP, etc. are very helpful here if you work with high dimensional data.

Further have a look at the complexity of your clustering algorithm. If your are familiar with the Bias-variance tradeoff and Occam's razor you already know that simpler algorithms are less prone to overfitting and more likely to give you the correct results. BIC and AIC are quite popular measures in this regard.

Generally for unsupervised clustering it is a good idea to look at a number of different algorithms, compare them with different metrics and look where you can find the highes "agreement" among them.

| improve this answer | |
$\endgroup$
0
$\begingroup$

Thanks for your answer. Actually I found out with some extensive research. The key is to define your (individual) meaning of "what you consider to be a cluster" and then derive metrics you want to benchmark those clusters with (could be silhouette coefficient, within cluster sum of squares etc.). Same goes with the assumptions you mentioned. This depends on your individual goal with the clustering and what you want to achieve with the result. At the end you can discard some algorithms and have a clear set of metrics you want to work towards.

By standardising the results of many models with different hyperparameters and numbers of clusters you can compare the results and decide which one fits best.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.