【发布时间】:2021-09-13 22:50:03
【问题描述】:
我有一个包含 6 个元素的数据集。我使用高尔距离计算了距离矩阵,得到了以下矩阵:
仅通过查看此矩阵,我可以看出元素 #0 与元素 #4 和 #5 最相似,因此我假设 HDBSCAN 的输出是将它们聚集在一起,并假设其余的是异常值;然而,事实并非如此。
clusterer = hdbscan.HDBSCAN(min_cluster_size=2, min_samples=3, metric='precomputed',cluster_selection_epsilon=0.1, cluster_selection_method = 'eom').fit(distance_matrix)
集群形成:
集群 0: {元素 #0,元素 #2}
集群 1: {元素 #4,元素 #5}
异常值: {元素 #1,元素 #3}
这是我不理解的行为。另外,cluster_selection_epsilon 和 cluster_selection_method 两个参数似乎对我的结果都没有影响,我不明白为什么。
我尝试再次将参数更改为min_cluster_size=2, min_samples=1
集群形成:
簇 0: {元素#0,元素#2,元素#4,元素#5}
集群 1: {元素 #1,元素 #3}
参数的任何其他变化都会导致所有点都被归类为异常值。
有人可以帮助解释这种行为,并解释为什么cluster_selection_epsilon 和cluster_selection_method 不会影响形成的集群。我认为通过将cluster_selection_epsilon 设置为 0.1,我将确保群集内的点之间的距离为 0.1 或更小(例如,元素 #0 和元素 #2 不会聚集在一起)
【问题讨论】:
标签: python scikit-learn cluster-analysis hierarchical-clustering hdbscan