DBSCAN 算法究竟是什么作为输入?
为什么我在weka
和编码算法中有不同的输出?
在编码算法中,它只需要2个输入,而在weka
中它可能需要3个。
有人可以帮我理解算法吗?
答案 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中找到。如果启用数据索引,则速度非常快。