您的位置:首页 > 其它

蓄水池抽样问题

2012-09-24 15:56 260 查看
蓄水池抽样问题描述的是,在一个无穷尽的样本中,要求随即抽取一些样本,这些样本被抽取到的概率必须保持一致。

一个蓄水池就可以理解为无穷大的样本空间。

解决方案就是蓄水库抽样(reservoid sampling)。主要思想就是保持一个集合,作为蓄水池,依次遍历所有数据的时候以一定概率替换这个蓄水池中的数字。

其伪代码如下:

Init : a reservoir with the size: k

for    i= k+1 to N
M=random(1, i);
if( M < k)
SWAP the Mth value and ith value
end for

解释一下:程序的开始就是把前k个元素都放到数组中,然后对之后的第i个元素,以k/i的概率替换掉这个水库中的某一个元素。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: