gpt4 book ai didi

java - 用 weka 聚集相互作用的粒子

转载 作者:行者123 更新时间:2023-11-30 07:26:15 25 4
gpt4 key购买 nike

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

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

输出:我想得到:

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

问题:

  • 哪种聚类器最适合我的问题?
  • 我应该如何格式化我的数据?
  • 我应该使用 3D 定位信息来补充交互信息吗?
  • 如何获得每个粒子的结果?

我对 weka 很陌生,但是从我在 Internet 上可以找到的信息来看:

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

感谢您的帮助。让诺

最佳答案

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

关于java - 用 weka 聚集相互作用的粒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com