DBSCAN输入说明

时间:2014-09-27 08:40:21

标签: cluster-analysis data-mining dbscan

DBSCAN 算法究竟是什么作为输入?

为什么我在weka和编码算法中有不同的输出?

在编码算法中,它只需要2个输入,而在weka中它可能需要3个。

有人可以帮我理解算法吗?

2 个答案:

答案 0 :(得分:1)

该算法在Wikipedia中得到了很好的描述。配置输入为:

  • eps:epsilon邻域的最大距离。
  • minPts:形成区域所需的点数。

简要说明:如果数据点周围的epsilon邻域至少包含minPts,则会创建一个新群集。进一步的意见:

  • 数据集(显然)
  • (可能)距离函数,如果算法允许在这方面进行参数化

答案 1 :(得分:0)

使用“2输入”,你的意思是两个变量(维度)吗?

如果您的代码仅适用于2维,请阅读距离函数。大多数距离函数可以很容易地计算超过两个维度...例如,欧几里德距离定义为

sqrt(pow(x_i-y_i, 2).sum())

当你将i从1循环到n时效果很好> 2,也是。

DBSCAN有2个明显参数和一个隐藏参数:minPts,epsilon是明显的参数,隐藏参数是距离函数。其中迄今为止对结果影响最大,需要数据理解才能选择。不幸的是,没有经验法则可以选择这个参数。这实际上取决于您的数据。

如果你在Weka实现中得到不同的结果,我并不感到惊讶。它包含隐式数据规范化,这往往会产生意想不到的结果...... DBSCAN的最佳实现可以在ELKI中找到。如果启用数据索引,则速度非常快。