文章目录问题描述什么是聚类什么是 DBSCAN为什么 0.25 会有问题为什么 Text Embedding 特别容易这样图像 embedding文本 embedding改成 0.40 为什么有效实际开发中怎么选问题描述红框这一行其实是在说DBSCAN 聚类算法的参数调得不合适导致聚类失败或者聚类效果很差。先拆开看问题根因修复聚类找不到簇DBSCAN_EPS0.25对 text embedding 太严改成0.40什么是聚类假设你抓取了很多帖子帖子1ChatGPT 发布新模型 帖子2OpenAI 发布 GPT-6 帖子3今天午饭很好吃 帖子4AI 模型能力提升 帖子5这家餐厅不错Embedding 后会变成向量帖子1 - [0.12, 0.45, ...] 帖子2 - [0.13, 0.43, ...] 帖子3 - [0.87, 0.22, ...] ...聚类算法会自动把AI相关 ├── 帖子1 ├── 帖子2 └── 帖子4 美食相关 ├── 帖子3 └── 帖子5归为不同簇Cluster。什么是 DBSCANDBSCAN 是一种经典聚类算法。核心思想两个点距离足够近就认为它们属于同一个群体。其中最重要参数就是eps即Epsilon表示最大允许距离为什么 0.25 会有问题假设 embedding 的相似度情况帖子A 与 帖子B 距离 0.28但你设置eps0.25那么0.28 0.25DBSCAN认为不够近于是A B C D全部被当成孤立点。结果找不到任何簇或者90% 数据都是噪声为什么 Text Embedding 特别容易这样很多人第一次做向量聚类都会踩这个坑。例如图像 embedding同一只猫距离 0.05 0.08 0.12很容易聚起来。文本 embedding即使表达同一个意思ChatGPT发布新模型 OpenAI推出GPT-6距离可能都有0.30 0.35 0.40甚至更高。因为文本语义空间本来就更稀疏。所以eps0.25往往太小。改成 0.40 为什么有效原来eps0.25允许范围●----0.25----●改成eps0.40允许范围●---------0.40---------●更多点会被视为邻居A ←→ B ←→ C于是形成Cluster 1而不是Noise Noise Noise实际开发中怎么选通常不会拍脑袋。会先统计 embedding 的距离分布0.120.180.210.270.310.350.390.420.51...然后观察0.35~0.45附近是否出现明显拐点。很多文本聚类项目里eps0.3~0.5比较常见。具体还取决于使用什么 embedding 模型是否做了归一化使用欧氏距离还是余弦距离数据集规模所以这条记录的意思大概率是项目使用 DBSCAN 对文本向量进行聚类时原来的DBSCAN_EPS0.25设置过小导致大量文本被当成噪声点聚类结果为空或找不到簇。后来把阈值提高到0.40后文本之间能够建立邻居关系聚类恢复正常。
聚类找不到簇原因分析(聚类失败)(DBSCAN聚类算法、eps参数、Epsilon参数、最大允许距离)
发布时间:2026/6/7 17:47:57
文章目录问题描述什么是聚类什么是 DBSCAN为什么 0.25 会有问题为什么 Text Embedding 特别容易这样图像 embedding文本 embedding改成 0.40 为什么有效实际开发中怎么选问题描述红框这一行其实是在说DBSCAN 聚类算法的参数调得不合适导致聚类失败或者聚类效果很差。先拆开看问题根因修复聚类找不到簇DBSCAN_EPS0.25对 text embedding 太严改成0.40什么是聚类假设你抓取了很多帖子帖子1ChatGPT 发布新模型 帖子2OpenAI 发布 GPT-6 帖子3今天午饭很好吃 帖子4AI 模型能力提升 帖子5这家餐厅不错Embedding 后会变成向量帖子1 - [0.12, 0.45, ...] 帖子2 - [0.13, 0.43, ...] 帖子3 - [0.87, 0.22, ...] ...聚类算法会自动把AI相关 ├── 帖子1 ├── 帖子2 └── 帖子4 美食相关 ├── 帖子3 └── 帖子5归为不同簇Cluster。什么是 DBSCANDBSCAN 是一种经典聚类算法。核心思想两个点距离足够近就认为它们属于同一个群体。其中最重要参数就是eps即Epsilon表示最大允许距离为什么 0.25 会有问题假设 embedding 的相似度情况帖子A 与 帖子B 距离 0.28但你设置eps0.25那么0.28 0.25DBSCAN认为不够近于是A B C D全部被当成孤立点。结果找不到任何簇或者90% 数据都是噪声为什么 Text Embedding 特别容易这样很多人第一次做向量聚类都会踩这个坑。例如图像 embedding同一只猫距离 0.05 0.08 0.12很容易聚起来。文本 embedding即使表达同一个意思ChatGPT发布新模型 OpenAI推出GPT-6距离可能都有0.30 0.35 0.40甚至更高。因为文本语义空间本来就更稀疏。所以eps0.25往往太小。改成 0.40 为什么有效原来eps0.25允许范围●----0.25----●改成eps0.40允许范围●---------0.40---------●更多点会被视为邻居A ←→ B ←→ C于是形成Cluster 1而不是Noise Noise Noise实际开发中怎么选通常不会拍脑袋。会先统计 embedding 的距离分布0.120.180.210.270.310.350.390.420.51...然后观察0.35~0.45附近是否出现明显拐点。很多文本聚类项目里eps0.3~0.5比较常见。具体还取决于使用什么 embedding 模型是否做了归一化使用欧氏距离还是余弦距离数据集规模所以这条记录的意思大概率是项目使用 DBSCAN 对文本向量进行聚类时原来的DBSCAN_EPS0.25设置过小导致大量文本被当成噪声点聚类结果为空或找不到簇。后来把阈值提高到0.40后文本之间能够建立邻居关系聚类恢复正常。