0

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

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

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

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

4

2 回答 2

1

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

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

简而言之:如果数据点周围的 epsilon 邻域至少包含minPts. 进一步输入:

  • 数据集(显然)
  • (也许)一个距离函数,如果算法允许在这方面进行参数化
于 2014-09-27T08:50:12.970 回答
0

对于“2 个输入”,您是指偶然的两个变量(维度)吗?

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

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

当您将 i 从 1 循环到 n > 2 时,它也很有效。

DBSCAN有2个明显参数和1个隐藏参数:minPts和epsilon是明显参数,隐藏参数是距离函数。哪个对结果的影响最大,需要数据理解才能选择。不幸的是,没有经验法则来选择这个参数。这真的取决于你的数据。

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

于 2014-09-27T20:16:59.153 回答