聚类与weka相互作用的粒子

时间:2012-05-06 08:45:25

标签: java cluster-analysis weka data-mining particles

我遇到了一个可以用这种方式概括的聚类问题:

  • 我在3D空间中有N个粒子
  • 每个粒子可以与不同数量的其他粒子相互作用
  • 每次互动都有力量
  • 我不知道先验集群的数量
  • 我没有倾斜样本(应该是无人监管的)

输出:我想得到:

  • 群集数量
  • 每个粒子成为群集一部分的概率(能够移除未明确分配的粒子)
  • 我想直接从我的java代码调用clusterer。

问题:

  • 什么是clusterer最适合我的问题?
  • 我应该如何格式化我的数据?
  • 我应该使用3D定位信息作为交互信息的补充吗?
  • 我如何得到每个粒子的结果?

我对weka很新,但是我可以在互联网上找到它:

  • SOM可以解决我的问题
  • 这是一个多实例问题,但我可以找到任何显示如何创建关系数据的示例。并且SOM是否支持关系属性?

感谢您的帮助。 JEANNOT

2 个答案:

答案 0 :(得分:4)

Weka在集群方面非常“有限”。它只有很少的聚类算法,而且非常有限。我不确定你是否可以在任何Weka聚类算法中加入交互强度。

您可能需要查看ELKI。它具有比Weka更先进的聚类算法,并且非常灵活。例如,您可以轻松定义自己的距离函数(Tutorial)并在任何基于距离的聚类算法中使用它。

我们无法在此处选择合适的聚类算法。您需要尝试一些并尝试不同的参数。您应首先尝试回答的关键问题是:什么是适合您的群集

您已开始提出其中一些问题。例如,您是仅想使用交互强度,还是仅包含位置信息。但由于我不知道你想要实现什么,我不能告诉你如何

绝对看看DBSCAN和OPTICS算法(特别是对于OPTICS,不要使用Weka中的算法。它很慢,不完整且无需维护!)。也许开始阅读他们的维基百科文章,如果这对你的任务有任何意义。这就是为什么我认为它们对你有所帮助:

  • 他们不需要知道集群的数量(与k-means和EM集群不同)
  • 他们需要一个“最小点数”参数,这实际上是一个“最小簇大小”;它控制着结果的精细程度。增加它以获得更少和更大的集群。
  • 他们可以使用任意距离或相似度函数(例如,交互强度)。对于DBSCAN,您需要设置一个考虑重要的阈值,对于OPTICS,这不是必需的。

接下来,我可能会将交互强度数据与OPTICS一起使用,并尝试对集群进行Xi提取,如果它们对您的用例有意义的话。 (Weka没有Xi提取)。或者首先查看OPTICS图,看看你的相似性和MinPts参数是否真的产生了OPTICS所需的“山谷”。 DBSCAN更快,但您需要修复距离阈值。如果您的数据集非常大,您可能希望从样本上的OPTICS开始,然后决定几个epsilon值并使用这些值在完整数据集上运行DBSCAN。

不过,请继续阅读此处,看看这对您的任务是否有意义:

https://en.wikipedia.org/wiki/DBSCAN#Basic_idea

答案 1 :(得分:0)

如果您的数据是根据WEKA的ARFF文件格式准备的,那么您可以使用WEKA资源管理器的CLUSTER选项卡。这会对您的数据进行聚类(无监督),并为每个群集提供每个功能值的阈值。非无监督学习非常方便。