So far I’ve looked into 3 clustering algorithms (DBSCAN, K-means, and Hierarchical clustering). I wanted to know the advantages and disadvantages of using each of them to pick the right one for my project.
K-means: I found this algorithm to be the simplest, it’s easy to understand and implement and is intuitive. I have also noticed that it’s got fast convergence so it’s efficient for large datasets. And it works really well for spherical clusters, when clusters have a roughly equal number of points.
Disadvantages:
- It is sensitive to initial centroid choice
- There is an assumption that clusters are spherical. So it may struggle with clusters that are not shaped regularly in the feature space
- It requires the number of clusters to be specified. Choosing the wrong number can lead to suboptimal results.
Example: Customer segmentation in e-commerce based on purchasing behavior.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise): This algorithm doesn’t require specifying the number of clusters. DBSCAN can discover clusters of different shapes and sizes easily. It is also robust to outliers as it can identify noise points. It doesn’t assume the clusters to be spherical so it works well with complex shapes.
Disadvantages
- It is sensitive to density variations. If the densities of clusters have varying clusters the performance will degrade.
- It suffers with high-dimensional data.
- The choice of parameters (epsilon and minPoints) can influence results.
Example: Identifying clusters in a geographical dataset where the density of points may vary.
Hierarchical Clustering: It produces a hierarchy of clusters which would provide insights at different granularities.
We don’t need to specify the number of clusters here either. It gives you a dendrogram that can be studied for various insights. It can handle irregularly shaped clusters well
Disadvantages:
- It is very intensive, computationally speaking(for large datasets).
- It’s sensitive to noise.
- Interpretability as dendrograms may be difficult to interpret.
Example: Biological taxonomy, where species are grouped based on similarities.
So the choice between these clustering algorithms depends on the characteristics of your data and the goals of your analysis. I am eager to use each of these at least once in my project and compare the results for a better understanding.