我对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)