一尘不染

无需替换的采样算法?

algorithm

我试图测试偶然发生特定数据群集的可能性。一种可靠的方法是蒙特卡洛模拟,其中数据和组之间的关联会被大量(例如10,000次)随机地重新分配,并且使用聚类指标将实际数据与模拟进行比较以确定ap值。

我已经完成了大部分工作,并使用指针将分组映射到数据元素,因此我计划随机将指针重新分配给数据。问题:没有替换的快速采样方法是什么,以便每个指针在复制数据集中被随机地重新分配?

例如(这些数据只是一个简化的示例):

数据(n = 12值)-A组:0.1,0.2,0.4 / B组:0.5,0.6,0.8 / C组:0.4,0.5 /
D组:0.2,0.2,0.3,0.5

对于每个复制数据集,我将具有相同的群集大小(A = 3,B = 3,C = 2,D = 4)和数据值,但会将值重新分配给群集。

为此,我可以生成1-12范围内的随机数,分配A组的第一个元素,然后生成1-11范围内的随机数,并分配A组的第二个元素,依此类推。指针的重新分配很快,我将预先分配所有数据结构,但是不进行替换的采样似乎是一个问题,以前可能已经解决了很多次。

首选逻辑或伪代码。


阅读 360

收藏
2020-07-28

共1个答案

一尘不染

看到我对这个问题的回答O(1)中的唯一(非重复)随机数?。相同的逻辑应该可以完成您想要的工作。

2020-07-28