1
$\begingroup$

I would like to use the calinski-Harabasz Index to evaluate different runs of the DBSCAN algorithm (different min_points).

According to sklearn's documentation, the index is "generally higher for convex clusters than other concepts of clusters, such as density based clusters like those obtained through DBSCAN.".

Since I am comparing different runs of DBSCAN i.e not comparing DBSCAN to, say, K-Means, would it make sense to use the index?

Please note that I have tried to use metrics specifically designed for Desnsity-Based clusters like the Density-Based Clustering Validation DBCV, but its computational complexity was bigger than what I can afford (I am clustering around 200,000 real-valued vectors of dimension 300). The main reason for choosing the calinski-Harabasz Index is that it is fast to compute.

$\endgroup$
2
$\begingroup$

If the index has a clear preference for convex clusters (and if the implementation actually understands noise, where I wouldn't be too sure), you can try this, but I would not recommend to do so.

The reason is simple you'll be evaluating the result by how good it matches the C-H assumptions, i.e., also by how convex the clusters are. If your data doesn't have convex clusters, this index may prefer a suboptimal solution.

If you have a lot of data, you can try to approximate DBCV maybe with a sample?

Also, it shouldn't be necessary to "optimize" minPts. It is supposedly quite stable, and you should be able to choose it heuristically based on the data dimensionality and data set size. At 200k points, I'd just try 50.

$\endgroup$
1
$\begingroup$

It's technically valid, but I don't fully recommend it.

Looking at the definition for the Calinski-Harabasz score, it's apparent that it works best on "globular" clustering algorithms, because it rewards clusterings in which the cluster centroids are far apart and the cluster members are close to their respective centroids. To some extent, this defeats the whole purpose of using DBSCAN. It completely ignores points that have not been assigned to a cluster, and geometrically it will tend to reward clusters that are globular.

Generally, cluster validation is hard, and it doesn't necessarily buy you anything. See here for some more thoughts on the matter. I also recommend HDBSCAN over DBSCAN. In my experience, it's less fussy to tune, and useable results can be obtained easily, even if non-optimal. It also has very nice implementations in both R and Python. Since it can be used for transductive clustering (i.e. predicting the cluster membership of new data points), you can train it on a subset of your data for better speed.

That said, all of these recommendations make the most sense in an exploratory data analysis context. If you are doing something else with the data, there might be more specific considerations that apply to your case.

$\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.