HDBSCAN的min_samples和min_cluster_size参数应该怎样设置?

2026-6-16 11:49| 发布者: Fuller| 查看: 7| 评论: 0

摘要: GooSeeker发布主题聚类功能为用户提供了Top2vec和BERTopic两个模型可以选择。可分别阅读两者的使用方法教程《top2vec话题发现原理和使用方法》和《怎样使用BERTopic做话题检测和主题聚类》在教程的参数设置一段,我 ...

GooSeeker发布主题聚类功能为用户提供了Top2vec和BERTopic两个模型可以选择。可分别阅读两者的使用方法教程《top2vec话题发现原理和使用方法》和《怎样使用BERTopic做话题检测和主题聚类

在教程的参数设置一段,我们建议保持缺省值不变。本文将讲解一下HDBSCAN模型的两个重要的可调整的参数:

1. 参数的作用

HDBSCAN是 Hierarchical Density-Based Spatial Clustering of Applications with Noise 的缩写。在主题聚类算法中是负责聚类这一步的,前一步是UMAP降维。

从上图可以看到,有两个重要参数可以调整,以便达到想要的聚类效果。

  • min_cluster_size:一个簇至少要有多大(簇级别约束)
  • min_samples:一个点要多“密”才算核心(点级别密度约束)

可见,min_samples 是 HDBSCAN 里“核心点判定”的严格度参数,主要作用是控制抗噪声能力和聚类保守程度。

下面我们重点从min_samples为主,min_cluster_size为辅的角度讲解一下他们的作用。

【注意】在实操建议那里,却是建议先设定min_cluster_size,再参照min_cluster_size的值设定min_samples的值。

2. min_samples取值大小都聚类的影响

因为min_samples决定一个簇是否是一个有意义的簇,适当设置可以排除掉噪音,同时保留有意义的文档簇

  • 值越大:判断越严格,即,需要周围有更多属于同一簇的近邻点,才能决定出来“核心点”。

可见,如果设置比较大的值,结果通常是:

  • 噪音点变多
  • 小簇更容易被判成噪音
  • 聚类更稳(跟准确贴切地反映聚簇的语义)、更保守

相反值越小:越宽松,就更容易把点纳入簇。结果通常是:

  • 噪音点变少
  • 簇更多、更细碎
  • 更容易把稀疏区域也聚成簇(可能引入误聚)

3. min_samples和 min_cluster_size 配合

min_cluster_size提出了另一个要求:一个簇至少要有多大才会当成一个簇。

可见:

  • min_cluster_size:约束“簇最小规模”
  • min_samples:约束“点要多密才算核心点”(噪音敏感度)

两者配合设置,可以决定识别有意义聚簇的严格程度。例如

  • min_cluster_size 大 + min_samples 也大:结果会很保守,离群点变多,小簇被吞掉。

执行BERTopic算法的时候,噪音文档的所属类别将赋值-1。

4. 实操建议

  1. 先定 min_cluster_size(按你希望的最小主题规模)
  2. 再设 min_samples 为它的 30%~70%(文本场景通常偏小更稳)
  3. 观察类别赋值为-1的文档占比,再微调
    1. 如果-1 太多:那么降 min_samples
    2. 如果主题太碎:那么升 min_samples 或升 min_cluster_size

5. 常见经验

  • 不确定该怎样设置时:先用缺省值,因为GooSeeker发布的BERTopic功能会根据导入的文档特点做自动适配。
  • 想减少被判为-1的文档数量:适当调小 min_samples
  • 想提高鲁棒性、减少伪簇:适当调大 min_samples


鲜花

握手

雷人

路过

鸡蛋

最新评论

GMT+8, 2026-6-16 13:18