DBSCAN算法到底以什么作为输入?
为什么我在weka
和编码算法中有不同的输出?
在一个编码算法中,它只需要2个输入,而在weka
中它可能需要3个输入。
有人能帮我理解一下算法吗?
发布于 2014-09-27 08:50:12
该算法在维基百科中得到了很好的描述。配置输入是:
eps
:epsilon社区的最大距离。minPts
:形成区域所需的点数。简单地说:如果数据点周围的epsilon邻域至少包含minPts
,则创建一个新的集群。进一步投入:
发布于 2014-09-27 20:16:59
对于"2输入“,你指的是偶然的两个变量(维度)吗?
如果您的代码仅适用于二维,请阅读距离函数。大多数距离函数可以很容易地计算出二维以上的距离函数。例如,欧几里得距离定义为
sqrt(pow(x_i-y_i, 2).sum())
当你把i从1循环到n> 2的时候,效果也很好。
DBSCAN有两个明显的隐参数和一个隐参数: minPts和epsilon是明显的参数,隐藏参数是距离函数。这对结果的影响最大,需要数据的理解才能选择。不幸的是,没有选择这个参数的经验法则。这取决于你的数据。
如果您在Weka实现中得到了不同的结果,我并不感到惊讶。它包含隐式数据规范化,这往往会产生意想不到的结果.DBSCAN的最佳实现可以在埃尔基中找到。如果您启用数据索引,它会非常快。
https://stackoverflow.com/questions/26072900
复制相似问题