美文网首页
蓄水池抽样

蓄水池抽样

作者: M_lear | 来源:发表于2019-02-03 10:34 被阅读0次

蓄水池抽样,首先有它的应用和它的神奇之处,其次这个也是机器学习领域面试的热门试题。

问题一(引子):流式数据(Streaming Data),数据长度为n但不知道,如何从中等概率随机选择一个数据?

解法:我们以概率1选择第一个数据,以1/2的概率选择第二个数据,以此类推,以1/m的概率选择第m个对象(如果后面某一数据一旦选中,替换掉以前选中的数据)。当所有数据流过时,每个对象具有相同的被选中的概率1/n。

证明:第m个数据最终被选中的概率P = 选择m的概率*其后的所有对象都不被选中的概率,即
P_m=\frac{1}{m}\times(\frac{m}{m+1}\times\frac{m+1}{m+2}\times\cdots\times\frac{n-1}{n})=\frac{1}{n}

问题二(蓄水池抽样):流式数据(Streaming Data),数据长度为n但不知道,如何从中等概率随机选择k(k < n)个数据?

解法:先选中前k个数据(当作一个蓄水池),然后以k/(k+1)的概率选择第k+1个数据,以k/(k+2)的概率选择第k+2个数据,以此类推以k/m的概率选择第m个数据,一旦后面有某个数据被选中,则随机替换蓄水池中的一个数据。最终每个数据被选中的概率均为k/n。

证明:第m个数据选中的概率 = 选择第m个数据的概率其后所有数据(不被选中的概率+被选中的概率不替换第m个数据的概率)

公式推导

相关文章

  • 蓄水池抽样算法(Reservoir Sampling)

    蓄水池抽样算法(Reservoir Sampling) 许多年以后,当听说蓄水池抽样算法时,邱simple将会想起...

  • 蓄水池抽样

    蓄水池抽样,首先有它的应用和它的神奇之处,其次这个也是机器学习领域面试的热门试题。 问题一(引子):流式数据(St...

  • 2021-02-01 蓄水池抽样算法(Reservoir Sam

    蓄水池抽样算法(Reservoir Sampling)[https://www.jianshu.com/p/7a9...

  • 2019-03-06

    三月第一周,预告:蓄水池抽样和spark并行读取

  • 蓄水池抽样算法

    问题描述 给出一个数据流,这个数据流的长度很大或者未知(内存无法一次性容纳下),并且对该数据流中数据只能访问一次。...

  • 蓄水池抽样算法

    面试题: 如果有一个文件很大,内存很大,不知道有多少行。你的任务是随机输出一行。文件只能遍历一次。解析:算法就是需...

  • 蓄水池抽样-reservoir

    蓄水池抽样是在O(n)复杂度下随机从海量动态的数据流中取m个数据的一种算法,常在机器学习中使用。 以下是对蓄水池抽...

  • 蓄水池抽样算法

    蓄水池算法 给定一个数据流,数据流长度N很大,且N直到处理完所有数据之前都不可知,请问如何在只遍历一遍数据(O(N...

  • 概率 - 蓄水池抽样

    参考 蓄水池抽样——《编程珠玑》读书笔记 问题描述 如何随机从n个对象中选择一个对象,这n个对象是按序排列的,但是...

  • 蓄水池抽样算法(Reservoir Sampling)

    https://www.jianshu.com/p/7a9ea6ece2af[https://www.jiansh...

网友评论

      本文标题:蓄水池抽样

      本文链接:https://www.haomeiwen.com/subject/tcgrsqtx.html