【问题标题】:HDBSCAN difference between parametersHDBSCAN参数之间的差异
【发布时间】:2021-08-26 02:20:07
【问题描述】:
我对 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 设置为min_cluster_size,但选择较小的min_samples 可以对集群产生“戏剧性影响”,如the documentation 所示。
标签:
machine-learning
scikit-learn
cluster-analysis
hierarchical-clustering
hdbscan
【解决方案1】:
他们在技术上做了两件不同的事情。
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)