我正在使用 hdbscan 在 Python Jupyter 笔记本的数据集中查找集群。
import pandas as pandas
import numpy as np
data = pandas.read_csv('data.csv')
该数据看起来像这样:
import hdbscan
clusterSize = 6
clusterer = hdbscan.HDBSCAN(min_cluster_size=clusterSize).fit(data)
耶!一切似乎都奏效了!
所以我想看到一些结果,所以我将这些结果添加到我的数据框中:
data.insert(18,"labels",clusterer.labels_)
data.insert(19,"probabilities",clusterer.probabilities_)
但是等等,我有带有标签的行,这些行带有概率为 0 的集群的标签。这有什么意义?集群中的任何对象不应该具有 > 0 的概率值吗?哦,所有的概率都只有 0 或 1。
所以我在 Jupyter notebook 中重新运行,具体来说,我只是重新运行
clusterer = hdbscan.HDBSCAN(min_cluster_size=clusterSize).fit(data)
clusterer.labels_
我检查了and的值clusterer.probabilities_
,它们是不同的。这件事不应该是一致的吗?为什么这些价值观会改变?是否有一些我没有被告知的隐藏状态?但是现在我clusterer.probabilities_
的值介于 0 和 1 之间……所以这很好,对吧?
所以我显然对这个 hdbscan 工具不是很熟悉,但是有人可以解释为什么它在多次运行时会给出不同的答案,以及标记/聚集对象上的概率 0 是否有意义?