# coding:utf8
import random# 从n个数中采样k个数
def reservoir_sampling(n, k):# 所有数据pool = [i for i in range(n)]# 前k个数据res = [i for i in range(k)]for i in range(k, n):v = random.randint(0, i)if v < k:res[v] = ireturn res

先选中第1到k个元素,作为被选中的元素。然后依次对第k+1至第N个元素做如下操作:

x是元素的序号,每个元素都有k/x的概率被选中,然后等概率的(1/k)替换掉被选中的元素。

蓄水池采样 Reservoir Sampling相关推荐

  1. 蓄水池采样(Reservoir Sampling)

    在一个给定长度的数组中随机等概率抽取一个数据很容易,但如果面对的是长度未知的海量数据流呢?蓄水池采样(Reservoir Sampling)算法就是来解决这个问题的, 它在分析一些大数据集的时候非常有 ...

  2. 蓄水池取样(Reservoir sampling)

    蓄水池取样是一系列的随机算法,用于简单随机抽样,在一个有未知项(n项)的集合中不放回抽取k项.集合的大小(n项)对于算法来说是未知的,通常所有项(n项)太大无法放入主内存里.随着时间的推移,算法不断读 ...

  3. 水塘采样(Reservoir sampling)算法

    最近看了Flink中的rangePartition使用了水塘采样算法,因此参考维基百科详细了解了一下.采样的关键在于对每个元素的选取需要是等概率的.水塘采样其目的在于从包含n个项目的集合S中选取k个样 ...

  4. Reservoir Sampling 蓄水池采样算法

    https://blog.csdn.net/huagong_adu/article/details/7619665 https://www.jianshu.com/p/63f6cf19923d htt ...

  5. 浅谈流处理算法 (1) – 蓄水池采样

    转载自  浅谈流处理算法 (1) – 蓄水池采样 前言 现如今,"大数据 "已经不是什么新概念,"一千个人眼中有一千个大数据".社交网络,智能穿戴设备,智能家居 ...

  6. 蓄水池采样算法的python实现_蓄水池采样算法的python实现_蓄水池抽样及实现

    蓄水池抽样(Reservoir Sampling)是一个很有趣的问题,它能够在o(n)时间内对n个数据进行等概率随机抽取,例如:从1000个数据中等概率随机抽取出100个.另外,如果数据集合的量特别大 ...

  7. 蓄水池采样算法的python实现_蓄水池抽样及实现

    蓄水池抽样(Reservoir Sampling)是一个很有趣的问题,它能够在o(n)时间内对n个数据进行等概率随机抽取,例如:从1000个数据中等概率随机抽取出100个.另外,如果数据集合的量特别大 ...

  8. 蓄水池采样算法(Reservoir Sampling)原理,证明和代码

    有一个在大数据下很现实的例子: "给出一个数据流,这个数据流的长度很大或者未知.并且对该数据流中数据只能访问一次.请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等." ...

  9. 蓄水池采样算法(Reservoir Sampling)

    问题描述 假定有数据个数未知的数据流,要求随机其中的选择kkk个数据,且保证每个数据选中的概率相等. 方案 先将前kkk个数据取出来放入结果集中,然后从第k+1k+1k+1个数据到来时开始替换,假设现 ...

最新文章

  1. 词法,语法,句法,语义
  2. c#,winform,验证输入内容,文本框,长度,errorprovider组件,方便,快捷
  3. python多线程和多进程的区别_python中多线程与多进程的区别
  4. ALV 层级分组显示报表
  5. Golang 规则引擎原理及实战
  6. java 面试题解惑一 类的初始化顺序
  7. Spring Boot工作笔记-RabbitMQ中Unsupported major.minor version 52.0问题
  8. python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
  9. powerdesigner 生成实体代码 附加生成xml
  10. Quartz的定时任务实现
  11. 3D中国跳棋 —— 记与子禾童鞋的结对编程(附网站地址及完整源码)
  12. 朴素贝叶斯-垃圾邮件(英文的)处理
  13. 程序员因太过耿直,致苹果官网出现bug......
  14. Linux挂载Windows网络共享文件夹
  15. 益聚星荣:今年双11,薇娅失去了“全网最低价”?
  16. (二)使用npm搭建React项目
  17. 鸟哥的linux私房菜内容,《鸟哥的Linux私房菜》读书笔记
  18. Interviewing at Amazon — Leadership Principles Reading Notes
  19. 如何获取特定用户组内的无效账户?
  20. python如何安装torch_Python安装torch模块报错处理

热门文章

  1. 孙陶然:创业是和平年代最靓丽的生活方式
  2. Java爬虫Ins博主所有帖子的点赞和评论导出excel
  3. 史上最全最牛的C++整人代码
  4. python生成X~N(μ,σ^2)正态分布数据。(均值为μ,标准差为σ)
  5. 关于程序员日常接单之淘宝运营
  6. 配置ST-GCN环境记录【Google colab】
  7. Java基础之双色球彩票玩法
  8. 转载 感受K2.Net 2003工作流解决方案
  9. Python支付宝账单 流水号交易记录实时监控爬虫
  10. 美国计算机科学排名前三大学,美国计算机科学专业大学排名(2021 USNEWS)