在R中的聚类分析:如何从pvclust中获得确定性结果?

3

pvclust 在 R 中用于聚类分析非常好。然而,在批量操作中运行它时,同样的数据会得到不同的结果,这很烦人。显然,对于同一组数据有许多“正确”的聚类方法,似乎 pvclust 使用某些随机性来确定特定运行的聚类。但是否有方法可以获得确定性的结果呢?

我希望能够呈现一个最小、可重复的分析包:数据加上一个 R 脚本,以及一个单独的书面文档,其中包含我的聚类解释。这样,其他人就可以添加分析,例如通过改变绘图的美学外观等方式。现在,当他们运行包含 pvclust 的脚本时,他们得到的解释将始终与我的解释不同步。

2个回答

6

不仅在聚类分析时,当涉及到随机性时,您可以修复随机数生成器,以便始终获得相同的结果。

尝试:

set.seed(seed=123)
# your code here
seed 可以是任何整数,或者可以转换为整数的内容。仅此而已。

2

我只使用过K均值算法。在那里,我不得不将“运行”或迭代次数设置为高于默认值,以便在连续的运行中获得相同的聚类结果。


良好的观察 - 经过足够的迭代,pvclust将耗尽搜索空间并始终收敛于“最终”解决方案。但是对于大型数据集,这可能需要很长时间,并且找到正确的迭代次数是一个试错过程。设置随机种子将产生相同的结果,无论所需的迭代次数如何。 - Fabian Fagerholm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接