问题标签 [hdbscan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

apache-spark - 聚类算法的建议?

预处理后我有一个包含 590000 条记录的数据集,我想从中找到集群,它包含字符串数据(现在假设我在数据集中只有一列具有 590000 个唯一值)。另外我正在使用自定义的距离度量,需要计算大小为 590000*590000 的距离矩阵。使用一些分区逻辑,我创建了距离矩阵,但由于内存限制,无法将这些分区合并为一个大距离矩阵。有没有人有任何想法来解决它?我为此选择了 DBSCAN。有没有办法使用深度学习方法?任何其他想法

0 投票
1 回答
738 浏览

python - HDBSCAN 不会使用所有可用的 CPU。进程只是休眠

在过去的几周里,我一直在尝试HDBSCAN使用python 3.7. 有问题的数据大约是 400 万行 x 40 列,格式约为GB1.5 CSV。它是整数、布尔值和最多 9 位浮点数的混合体。

在此期间,每次我能够将数据收集到集群中都需要 3 天多的时间,这似乎很奇怪,HDBSCAN因为它的速度很受推崇,我在一个 96 cpu 的谷歌云计算实例上运行它。我花了几天时间试图让它利用云实例的处理能力,但无济于事。

使用 中的自动算法检测HDBSCAN,它选择 boruvka_kdtree 作为最佳算法使用。而且我尝试将各种值传递给 core_dist_n_jobs 参数。从 -2,-1, 1, 96, multiprocessing.cpu_count(), 到 300。所有这些似乎都具有相似的效果,即导致 4 个主要 python 进程利用完整的核心,同时产生更多的睡眠进程。

我拒绝相信我做对了,这确实是这个硬件需要多长时间。我确信我必须遗漏类似JupyterHub在同一台机器上使用会导致某种GIL锁定的问题,或者我遗漏了HDBSCAN.

这是我目前的电话HDBSCAN

我已经关注了我能找到的与这个问题相关的所有现有问题和帖子,到目前为止没有任何工作,但我总是尝试甚至激进的想法,因为这甚至不是我想要集群的完整数据这个速度需要 4 年才能对完整数据进行聚类!

0 投票
0 回答
1002 浏览

cluster-computing - OPTICS 和 HDBSCAN 聚类技术的区别

作为我任务的一部分,我必须同时研究 HDBSCAN 和 OPTICS 聚类技术。我在许多网站上进行了研究,以确定这些算法之间的区别。我得到的只是 OPTICS 算法与 HDBSCAN 略有不同。我想了解更多关于这个算法的信息。有人可以帮助我了解这些算法与我们何时必须使用它们的特定用例之间的区别吗?另外,发布参考链接以供进一步阅读。谢谢

0 投票
2 回答
888 浏览

python - 如何可视化每个 HDBSCAN 集群上的顶级术语

我目前正在尝试使用 HDBSCAN 对一堆电影数据进行聚类,以便将相似的内容组合在一起并能够提出描述这些聚类的“主题”。我对 HDBSCAN 很感兴趣,因为我知道它被认为是软聚类,而不是 K-Means,它更适合我的目标。

执行 HDBSCAN 后,我能够找到每个群集中放置的电影。我现在想要的是代表每个集群的术语/单词。

我用 KMeans 做了类似的事情(下面的代码):

虽然这适用于 KMeans,但我无法为 HDBSCAN 找到类似的方法,因为我知道它没有集群中心。我一直在查看文档,但我对此很陌生,我无法解决我的问题。

任何想法将不胜感激!感谢您的时间。

0 投票
3 回答
1964 浏览

python - 如何评估 HDBSCAN 文本簇?

我目前正在尝试使用 HDBSCAN 对电影数据进行聚类。目标是将相似的电影聚集在一起(基于关键字、流派、演员姓名等电影信息),然后将 LDA 应用于每个集群并获得具有代表性的主题。但是,我很难评估结果(除了可视化分析,随着数据的增长,这并不是很好)。使用 LDA,虽然很难评估它,但我一直在使用连贯性度量。但是,有人知道如何评估 HDBSCAN 制作的集群吗?我找不到太多关于它的信息,所以如果有人有任何想法,我将非常感激!

0 投票
1 回答
167 浏览

python - 用 hdbscan 聚类后如何重建图像?

我正在尝试使用 hdbscan 进行聚类后重建脑肿瘤图像。

但是,hdbscan 没有与 kmeans 不同的聚类中心,所以我对如何获取聚类图像有点困惑。我尝试通过将 (65536,3) 数组与 hdbscan 标签即 r 匹配来获取 ref 簇中心,并在获取 crs 中每个簇的平均簇点后存储它们。

我不确定这是否是继续重建图像的最佳方法,即基于聚类获得一些平均中心并使用平均中心加标签重建图像。

0 投票
2 回答
1801 浏览

noise - 处理 hdbscan 中的噪声

我一直在用(x,y)点“point_coord”的小实例从scikit learn包中测试hdbscan,结果集群对我来说真的没有意义。鉴于样本量小,我允许单个集群。

我预计会有两个集群:第 4 点和第 5 点聚集在一起,而其余点则聚集在一起。

但是,生成的 clusterer.labels 是:

[-1, 0, 0, 0, -1, 0, 0]

0 投票
0 回答
741 浏览

python - 余弦相似矩阵的奇异 HDBScan 聚类结果

我试图在机器日志文件中聚集类似的消息(例如我不能忽略数字)。使用所有具有相同“相似度”的消息子集调试我的代码我遇到了一个非常奇怪的发现:低于一定数量的这些消息 HDBScan 会产生预期的结果(所有消息都属于一个或不属于一个集群)但是超过一定数量的消息 HDBScan 突然开始寻找不同的集群,这对我来说直觉上没有意义。

更奇怪的是:我开始看到多个集群的限制是HDBScan中“通用”算法的 18 条消息,但使用“最佳”时为 61 条消息。好吧,也许 'best' 选择 ' generic ' 超过 60 条消息,不知道如何验证...

我已经尝试了各种设置min_cluster_sizemin_samples各种距离指标,但问题仍然存在。请在下面找到一些独立的代码,看看您是否可以重现该问题。只需更改n_msg为任何number >= 18(或>=61使用“最佳”时),您应该会获得多个集群 ID。该代码还打印余弦相似度矩阵,因此您可以看到此示例的对称程度。

同样,对于上面的这些虚拟消息,我希望得到相同的结果(所有消息属于一个集群 ID 或异常集群 -1),与消息数量无关,但我开始在一定数量的消息之上获得不同的集群(取决于HDBScan 中的算法选择)。

知道发生了什么吗?

更新:仅使用 (!) 对此进行了更多研究,allow_single_cluster=True并遍历了所有algorithm值以及不同的消息类型(一到四个固定术语加上数字),这是结果'generic',虽然是最快的,但似乎是最有可能随机产生奇怪的结果: 在此处输入图像描述

0 投票
4 回答
29887 浏览

python - 错误:您必须至少给出一个安装要求——运行时:pip install --upgrade --no-binary hdbscan

我正在尝试在运行 Windows 10 并已安装 Python 3.6 的 PC 上安装 hdbscan。

我的第一次尝试失败了:

您了解为什么系统无法为 hdbscan 构建轮子吗?

有什么我可以做的吗?此时有哪些替代方案?

我尝试在没有二进制文件的情况下安装 hdbscan 但再次失败:


0 投票
1 回答
101 浏览

python - 使用 HDBSCAN 检索集群的成员

所以我有一些字符串数据,我对其进行了一些操作,然后使用 HDBSCAN 创建了一个集群:

现在,当我调用集群以使用approximate_predict 进行预测时,我得到以下结果:

Sweet,看起来它在预测新案例,所以它认为新的字符串值对应于标签 [113]。现在,我如何找到该标签/存储桶/集群中的其他成员?

干杯!