DBSCAN算法究竟将什么作为输入?
为什么我weka
在编码算法中有不同的输出?
在编码算法中,它只需要 2 个输入,而在weka
它可能需要 3 个。
有人可以帮我理解算法吗?
DBSCAN算法究竟将什么作为输入?
为什么我weka
在编码算法中有不同的输出?
在编码算法中,它只需要 2 个输入,而在weka
它可能需要 3 个。
有人可以帮我理解算法吗?
该算法在Wikipedia中有很好的描述。配置输入为:
eps
: epsilon 邻域的最大距离。minPts
:形成一个区域所需的点数。简而言之:如果数据点周围的 epsilon 邻域至少包含minPts
. 进一步输入:
对于“2 个输入”,您是指偶然的两个变量(维度)吗?
如果您的代码仅适用于二维,请阅读距离函数。大多数距离函数可以很容易地计算两个以上的维度......例如,欧几里得距离定义为
sqrt(pow(x_i-y_i, 2).sum())
当您将 i 从 1 循环到 n > 2 时,它也很有效。
DBSCAN有2个明显参数和1个隐藏参数:minPts和epsilon是明显参数,隐藏参数是距离函数。哪个对结果的影响最大,需要数据理解才能选择。不幸的是,没有经验法则来选择这个参数。这真的取决于你的数据。
如果您在 Weka 实现中得到不同的结果,我并不感到惊讶。它包含隐式数据规范化,这往往会产生意想不到的结果...... DBSCAN 的最佳实现可以在ELKI中找到恕我直言。如果启用数据索引,它真的很快。