0

我正在尝试使用诸如 HDBSCAN 之类的聚类算法来使用所有离散(int)的特征来查找一系列点的异常值和聚类。这些特征不是分类的,它们是用来表示序数的特征(例如考虑天数)。我想使用 HDBSCAN 因为我事先不知道集群的数量,所以这是最简单最直接的方法,并且在处理其他问题(使用 cont 变量)之前对我来说效果很好。

但是,当我尝试使用它时,我得到了可怕的结果,而且我不确定我是否理解发生了什么。例如,考虑以下带有一些样本的数组。

data = 
[0 -1 0 -1]
[0 -1 0 -1]
[0 -1 0 -1]
[5 -1 5 -1]
[0 -1 0 -1]
[0 -1 0 -1]

除了一个点外,所有点都是相同的,所以我希望有 1 个聚类和 1 个异常值/噪声,但我只得到样本中所有点的异常值/噪声标签。

clusterer = hdbscan.HDBSCAN( min_cluster_size = 2, min_samples = 1 ).fit(data)
clusterer.labels_ 
> [-1 -1 -1 -1 -1 -1]

那么这个算法适合离散特征还是我更好地尝试其他聚类方法?我如何使用 HDBSCAN 来解决这类问题?我读过马氏距离可能有用,但我不清楚这个指标有什么帮助。

4

0 回答 0