gpt4 book ai didi

java - weka K中 "seed"的意义表示聚类

转载 作者:行者123 更新时间:2023-11-30 06:24:35 25 4
gpt4 key购买 nike

weka SimpleKMeans实现允许用户使用选项 -s 指定“种子值”。我不明白这是什么意思。在 this link , weka 架构师 Mark Hall 说它应该生成随机数。

Weka 实现应该遵循 KMenas++ 上的论文(如文档中所述),如果我理解的话,群集质心点是使用 aforementioned paper 中第 3 页第 2.2 节的方程式 1b 确定的。 ,并且没有其他随机性来源。

谁能指出我哪里错了?

最佳答案

这是 k-means 算法的常见最佳实践(注意:k-means 有不止一种算法;它们是启发式算法,因为据报道寻找最优解是 NP-hard ) 使用不同的随机初始中心进行多次迭代

所以随机性通常与选择初始中心有关。 K-means++ 是选择初始种子的另一种方法,幸运的是仍然是随机的(有一些不是随机的,所以你不能再尝试通过多次运行来改善你的结果),但尝试选择一个更好的开始情况。

除了初始均值之外,您为什么要寻找另一个随机性来源?

我不推荐将 Weka 用于集群。分类没问题,但对聚类和其他无监督方法的支持非常有限。相反,看看 ELKI。他们的 k-means package例如非常详尽。他们有大约 6 种不同的方法来选择初始方法。大多数是随机的。最简单和最常见的初始化可能只是从数据库中的 k 个随机对象开始。 IIRC,MacQueen 使用了前 k 个对象,因此该变体不是随机的(除非你先洗牌你的数据集,这对于很多算法来说实际上是个好主意 - 永远不要使用排序数据!)因此,这些初始化器中的大多数都带有一个参数 -kmeans.seed,您猜怎么着,它允许您控制随机生成器播种,以获得可重现的结果。

关于java - weka K中 "seed"的意义表示聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699851/

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