如何使用预先计算的距离矩阵和 min_sample 进行 DBSCAN 聚类方法?

数据挖掘 机器学习 聚类 scikit-学习 数据库扫描
2021-09-22 17:26:29

我想对我的数据点执行 DBSCAN,但我无法访问数据,我只有数据点的成对距离。此外,我不知道集群的数量,但我确实希望每个集群包含至少 40 个数据点。DBSCAN 是否适用于这些条件?例如,我可以有这样的东西吗?还是需要更多信息?我想强调一下,我已经计算了成对距离,这不是欧几里得或其他方法的结果。

from sklearn.cluster import DBSCAN

db = DBSCAN(min_samples=40, metric="precomputed")

y_db = db.fit_predict(my_pairwise_distance_matrix)

我不确定 . 的eps参数是什么DBSCAN()我该如何设置?

1个回答

DBSCAN 不保证最小集群大小。有一些已知情况,参见 Wikipedia,其中一个集群的点数可能少于“minPts”。此外,它还有噪声的概念:没有足够邻居的点。

对于 epsilon,另请参阅 Wikipedia 文章。由于您没有指定集群的数量,因此此参数主要控制您获得的集群数量。将其设置为0,一切都会是噪音。将其设置为最大距离,一切都将在一个集群中。

真的读了这篇文章。这是关于密度,而不是关于集群大小。