【发布时间】:2011-04-20 12:48:48
【问题描述】:
我正在开发一个聚类分析程序,该程序将一组点 S 作为输入,并用它所属的聚类索引标记每个点。我已经实现了 DBScan 和 OPTICS 算法,它们都按预期工作。 但是,根据 MinPts 和 Epsilon 的初始值,这些算法的结果可能会有很大差异。我已经在网上搜索并阅读了很多关于数据挖掘和聚类分析的论文,但我似乎无法找到一种分析数据的方法,而不需要 MinPts 和 Epsilon 来确定一个点是否在这样的集群中。 我猜基于密度的聚类分析不是我的选择。
有没有人知道或知道我可以使用不需要那种配置的算法? 或者只是将我指向正确的方向。欢迎任何帮助。
谢谢!
这是我正在尝试完成的一个学校项目,其中我有一组 2D 坐标表示平面上的点,我必须确定每个点属于哪个集群。现在我已经使用 OPTICS 完成了这项工作,它工作正常,但我需要调整 Eps 值,以便我的输出与我给出的示例输出相匹配。但是由于我没有描述主题中的集群是什么,或者它的特征是什么,所以我无法仅基于点之间的距离或给定区域中点的密度。另外,我事先不知道集群的数量,因此我使用了 OPTICS 算法。因此,在我看来,要么我做错了,要么该主题中缺少关键信息。 而且,我不是在寻找任何人来做我的作业或给我任何源代码,只是一些想法或指导,因为我几乎迷失了如何获得数据集示例中给出的确切结果(我也不允许得到任何错误的值,如果我这样做他们认为项目是失败的,所以不能使用具有误差范围的算法。
再次感谢,很抱歉发了这么长的帖子。
【问题讨论】:
-
我不能使用 k-means 或任何类似的算法,因为我事先不知道我拥有的集群数量。
-
算法有一种变体,称为
XMeans,它不需要预先确定簇的数量(它基于最小描述长度 (MDL) 的概念,采用 BIC 等度量)跨度> -
其实DBSCAN拼写为DBSCAN。它是一个缩写,例如 N 代表“噪音”。 OPTICS 应该不完全依赖于 Epsilon 值,如果您没有加速索引,则可以不使用它。
标签: c++ c algorithm cluster-analysis data-mining