其他分享
首页 > 其他分享> > 从无限流和加权无限流中等概率取数据

从无限流和加权无限流中等概率取数据

作者:互联网

从无限流中等概率取100个数据。

一、方法一:分配随机数

开辟一个存储100个数据的内存空间,当无限流中的一个数据a到来就为它分配一个随机数,若内存空间未满就存入,若空间已满但是数据a的随机数大于空间中随机数最小的数据,就把随机数最低的一个删除。依次类推,这样就保证到最后一个数据n为止,所有的数据被选中的概率都是100/n。

二、方法二:蓄水池法

开辟一个存储100个数据的内存空间,当无限流中第n个数据a到来时,若内存空间未满就存入,若空间已满就给a一个0-1随机数k,若k < 100/n 就随机从100个数据中删除一个并将a存入。这个可以使用数学归纳法来证明,假设在n - 1个数据到来时,池中的数据保留的概率为100/(n-1),那么当第n个数据到来时,池中数据保留的概率为100/(n-1) * (1-1/n) = 100/n,当n = 102时成立,证毕。

三、方法三:加权取样

在这里插入图片描述
ui是0-1的随机数,wi是权重。

四、方法四:分布式处理

记录每台机器处理的数据量,那么该台机器的每个数据的权重ki乘以数据量就是它的新权重,之后对每台机器进行加权取样。

标签:加权,概率,中等,内存空间,无限,随机数,100,数据
来源: https://blog.csdn.net/weixin_45841729/article/details/121458674