问题描述
我对 HDBSCAN 中以下参数之间的差异感到困惑
- min_cluster_size
- min_samples
- cluster_selection_epsilon
如果我错了,请纠正我。
对于min_samples
,如果设置为7,则形成的簇需要有7个或更多点。
对于 cluster_selection_epsilon
,如果设置为 0.5 米,则任何相距 0.5 米以上的集群都不会合并为一个。这意味着每个集群将只包含相距 0.5 米或更小的点。
这与 min_cluster_size
有何不同?
解决方法
从技术上讲,他们做了两件不同的事情。
min_samples
= 核心点的最小邻居数。该值越高,将作为噪声/异常值丢弃的点就越多。这是来自 HDBScan 的 DBScan 部分。
min_cluster_size
= 最终集群的最小大小。该值越高,您的集群就越大。这是来自 HDBScan 的 H 部分。
增加 min_samples
会增加集群的大小,但它是通过使用 DBSCAN 丢弃作为异常值的数据来实现的。
相比之下,增加 min_cluster_size
的同时保持 min_samples
小,会保留这些异常值,而是将任何较小的集群与其最相似的邻居合并,直到所有集群都高于 min_cluster_size
。
所以:
- 如果您需要许多高度特定的集群,请使用一个小的
min_samples
和一个小的min_cluster_size
。 - 如果您想要更通用的聚类但仍想保留大部分细节,请使用小
min_samples
和大min_cluster_size
- 如果您想要非常一般的聚类并丢弃聚类中的大量噪声,请使用大
min_samples
和大min_cluster_size
。
(不可能使用比 min_cluster_size 大的 min_samples,afaik)