2

我有一个可以这样总结的聚类问题:

  • 我在 3D 空间中有 N 个粒子
  • 每个粒子可以与不同数量的其他粒子相互作用
  • 每一次互动都有力量
  • 我不知道先验聚类的数量
  • 我没有学习样本(应该无人监督)

输出:我想得到:

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

问题:

  • 什么集群最适合我的问题?
  • 我应该如何格式化我的数据?
  • 我应该使用 3D 定位信息来补充交互信息吗?
  • 我怎样才能得到每个粒子的结果?

我对 weka 很陌生,但从我在互联网上可以找到的内容来看:

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

谢谢你的帮助。让诺

4

2 回答 2

4

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

您可能想看看ELKI。它拥有比 Weka 更先进的聚类算法,而且非常灵活。例如,您可以轻松定义自己的距离函数(教程)并将其用于任何基于距离的聚类算法。

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

你已经开始提出其中一些问题。例如,您是否只想使用交互强度,或者是否还包括位置信息。但是由于我不知道想要达到什么,我不能告诉你如何

一定要看看 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

于 2012-05-06T14:50:10.670 回答
0

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

于 2012-05-09T20:06:21.950 回答