【发布时间】:2012-06-08 17:36:40
【问题描述】:
我正在实施一个需要对地理点进行聚类的项目。 OPTICS 算法似乎是一个非常好的解决方案。它只需要两个参数作为输入(MinPts 和 Epsilon),它们分别是将它们视为一个簇所需的最小点数,以及用于比较两个点是否在同一个簇中的距离值。
我的问题是,由于点的种类繁多,我无法设置固定的 epsilon。 请看下面的图片。
相同的点结构但不同的比例会导致非常不同的结果。假设设置 MinPts=2 和 epsilon = 1Km。 在左边,该算法将创建 2 个集群(红色和蓝色),但在右边它将创建一个包含所有点(红色)的单个集群,但我想在右边也获得 2 个集群。
所以我的问题是:有没有什么方法可以动态计算 epsilon 值来得到这个结果?
编辑 2012 年 6 月 5 日下午 3:15: 我以为我使用的是 javaml 库中的 OPTICS 算法实现,但它似乎实际上是一个 DBSCAN 算法实现。 所以现在的问题是:有人知道基于 Java 的 OPTICS 算法实现吗?
非常感谢你,原谅我的英语不好。
马可
【问题讨论】:
-
簇(几乎)是线性可分的吗?
-
线性可分簇是什么意思?
-
线性可分意味着您可以绘制一条“直线”分隔点。 “直线”可能不是笛卡尔/欧几里得直线,因为您可以变换轴,例如主成分。您的示例看起来是线性可分的。
-
对不起,我好像听不懂……
标签: java algorithm cluster-analysis data-mining optics-algorithm