首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更快地运行hdbscan集群?

如何更快地运行hdbscan集群?
EN

Data Science用户
提问于 2021-09-02 17:58:19
回答 1查看 188关注 0票数 1

我使用hdbscan对来自BERT的嵌入输出进行集群,它接收的数据文件的聊天消息超过150 k。嵌入过程花了4分钟多一点时间,但在本文撰写之时,hdbscan集群过程花费了超过1小时,看不到尽头。

在我看来,奇怪的是,当我查看系统资源消耗(我在Windows 10上)时,我正在运行的脚本只占用7%的CPU (i9-10850 K)和1.2GB内存(在128 i9内存中)。所以我有几个问题

  1. 为什么这不消耗更多的系统资源?
  2. 我有什么办法来并行这个吗?

最后,这是代码FYI。

代码语言:javascript
复制
data = parseMessages('raw-data-150k-new-delim.txt', 'ð')
model = SentenceTransformer('paraphrase-MiniLM-L6-v2')

embeddings = model.encode(data, show_progress_bar=True, convert_to_tensor=True)

clusters = hdbscan.HDBSCAN(
    min_cluster_size=15,
    min_samples=15,
    metric='euclidean',
    cluster_selection_method='eom').fit(embeddings)

谢谢!!

EN

回答 1

Data Science用户

发布于 2021-12-12 18:53:30

与语句-BERT的输出相比,hdbscan更倾向于低维数据。最终,hdbscan库希望使用KDTrees of BallTrees进行高效的最近邻查询,而这些查询在50个维度或更少的维度上工作得最好。对于更高维度的数据,库默认使用更慢、更昂贵的代码路径。为了更快地运行,最好的方法是减少数据的维数。在我(高偏倚)的观点中,UMAP将是实现这一目标的好方法,但您也可以尝试PCA或其他降维技术。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/101730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档