【问题标题】:Deciding input values to DBSCAN algorithm确定 DBSCAN 算法的输入值
【发布时间】:2012-04-26 16:27:52
【问题描述】:

我已经用 python 编写了代码来实现 DBSCAN 聚类算法。 我的数据集由 14k 个用户组成,每个用户由 10 个特征表示。 我无法决定究竟要保留什么作为 Min_samples 和 epsilon 的值作为输入 我该如何决定呢? 相似度度量是欧几里得距离。(因此它变得更加难以决定。)任何指针?

【问题讨论】:

  • 评估数据集的欧几里得距离。它有效吗?什么是合理的相似度阈值?然后将此阈值用作 DBSCAN 的 epsilon。
  • 我应该如何评估我的数据集上的欧几里得距离?
  • @Anony-Mousse:我在想这个:将欧几里得距离标准化为 0-1 是否有意义。现在距离可能会上升到 10k+,这使得很难确定阈值。但我不知道如何规范它。有什么想法吗?
  • 您可能想阅读维度诅咒,并使用一些完全不同的距离函数。欧几里得距离在物理世界中是有意义的,但在任意空间中却不是。

标签: python cluster-analysis dbscan


【解决方案1】:

DBSCAN 通常很难估计其参数。

您考虑过 OPTICS 算法吗?在这种情况下,您只需要与最小集群大小相对应的 Min_samples。

否则,对于 DBSCAN,我过去通过反复试验完成了它:尝试一些值,看看会发生什么。要遵循的一般规则是,如果您的数据集有噪声,您应该有一个更大的值,并且它还与维数(在本例中为 10)相关。

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 2021-04-19
    • 2014-12-27
    • 2016-08-11
    • 2014-11-22
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    相关资源
    最近更新 更多