DBSCAN(epsilon, minPts = 2) 与单链接聚类有关,HDBSCAN(minPts = 2) 也与单链接聚类有关。
我的问题是:如何使用这些设置获得相同的聚类结果?或者需要在 HDBSCAN 中设置其他参数(hdbscan 库中有很多参数)?
DBSCAN(epsilon, minPts = 2) 与单链接聚类有关,HDBSCAN(minPts = 2) 也与单链接聚类有关。
我的问题是:如何使用这些设置获得相同的聚类结果?或者需要在 HDBSCAN 中设置其他参数(hdbscan 库中有很多参数)?
DBSCAN 和 HDBSCAN 在边界点的处理上有所不同,因此实际上不可能从它们那里得到完全相同的答案。尽管如此,您仍可以采取一些措施来获得类似于 DBSCAN 的 HDBSCAN 结果。
clusterer = hdbscan.HDBSCAN(
min_samples=2, match_reference_implementation=True
).fit(X)
clusters = clusterer.single_linkage_.get_clusters(
cut_distance=0.25, min_cluster_size=2
)
您可以更改cut_distance
所需的值(DBSCAN 中的等效参数是epsilon
。请注意,您可以运行 HDBSCAN 一次,然后选择cut_distance
您想要的任何值(非常便宜的计算)。