蓄水池算法的思路

蓄水池算法的思路

Content #

假设印度现在人太多,没人知道印度有多少人口,也不知道印度的整体情况是什么,我们要去通过抽样调查统计新冠的比率,我只能遇到一个人去统计一个人,然后要有个算法看是不是抽中这个人来调察。但是怎么能够让每个人被选中的概率相等呢?

这时蓄水池算法应运而生。我们需要把抽中做统计的印度人都放到一个游泳池(蓄水池)里。假设我目标是只抽 n 个人,这就有一个有 n 个人容量的游泳池,抽中的人都站在这个游泳池里面。当游泳池站满了以后,再往里加人的话有一定的概率会把游泳池里面的人给挤出来,也有一定的概率是新加的人根本挤不进去游泳池(想象一下上班时间的北京地铁)。

这样无论一共有多少人进来,他都有一定概率挤进游泳池里或者被挤出去,游泳池里面最后留下来的人,就是我们要的随机的 n 个人,这些就是我们的抽样结果。我们最后统计这些人的新冠阳性情况时,就可以说我们是随机抽样的,而不用管印度一共有多少人口了。

Viewpoints #

From #

09 | 数据抽样:大数据来了还需要抽样么?