蓄水池采样 Reservoir Sampling
# 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相关推荐
- 蓄水池采样(Reservoir Sampling)
在一个给定长度的数组中随机等概率抽取一个数据很容易,但如果面对的是长度未知的海量数据流呢?蓄水池采样(Reservoir Sampling)算法就是来解决这个问题的, 它在分析一些大数据集的时候非常有 ...
- 蓄水池取样(Reservoir sampling)
蓄水池取样是一系列的随机算法,用于简单随机抽样,在一个有未知项(n项)的集合中不放回抽取k项.集合的大小(n项)对于算法来说是未知的,通常所有项(n项)太大无法放入主内存里.随着时间的推移,算法不断读 ...
- 水塘采样(Reservoir sampling)算法
最近看了Flink中的rangePartition使用了水塘采样算法,因此参考维基百科详细了解了一下.采样的关键在于对每个元素的选取需要是等概率的.水塘采样其目的在于从包含n个项目的集合S中选取k个样 ...
- Reservoir Sampling 蓄水池采样算法
https://blog.csdn.net/huagong_adu/article/details/7619665 https://www.jianshu.com/p/63f6cf19923d htt ...
- 浅谈流处理算法 (1) – 蓄水池采样
转载自 浅谈流处理算法 (1) – 蓄水池采样 前言 现如今,"大数据 "已经不是什么新概念,"一千个人眼中有一千个大数据".社交网络,智能穿戴设备,智能家居 ...
- 蓄水池采样算法的python实现_蓄水池采样算法的python实现_蓄水池抽样及实现
蓄水池抽样(Reservoir Sampling)是一个很有趣的问题,它能够在o(n)时间内对n个数据进行等概率随机抽取,例如:从1000个数据中等概率随机抽取出100个.另外,如果数据集合的量特别大 ...
- 蓄水池采样算法的python实现_蓄水池抽样及实现
蓄水池抽样(Reservoir Sampling)是一个很有趣的问题,它能够在o(n)时间内对n个数据进行等概率随机抽取,例如:从1000个数据中等概率随机抽取出100个.另外,如果数据集合的量特别大 ...
- 蓄水池采样算法(Reservoir Sampling)原理,证明和代码
有一个在大数据下很现实的例子: "给出一个数据流,这个数据流的长度很大或者未知.并且对该数据流中数据只能访问一次.请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等." ...
- 蓄水池采样算法(Reservoir Sampling)
问题描述 假定有数据个数未知的数据流,要求随机其中的选择kkk个数据,且保证每个数据选中的概率相等. 方案 先将前kkk个数据取出来放入结果集中,然后从第k+1k+1k+1个数据到来时开始替换,假设现 ...
最新文章
- 词法,语法,句法,语义
- c#,winform,验证输入内容,文本框,长度,errorprovider组件,方便,快捷
- python多线程和多进程的区别_python中多线程与多进程的区别
- ALV 层级分组显示报表
- Golang 规则引擎原理及实战
- java 面试题解惑一 类的初始化顺序
- Spring Boot工作笔记-RabbitMQ中Unsupported major.minor version 52.0问题
- python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
- powerdesigner 生成实体代码 附加生成xml
- Quartz的定时任务实现
- 3D中国跳棋 —— 记与子禾童鞋的结对编程(附网站地址及完整源码)
- 朴素贝叶斯-垃圾邮件(英文的)处理
- 程序员因太过耿直,致苹果官网出现bug......
- Linux挂载Windows网络共享文件夹
- 益聚星荣:今年双11,薇娅失去了“全网最低价”?
- (二)使用npm搭建React项目
- 鸟哥的linux私房菜内容,《鸟哥的Linux私房菜》读书笔记
- Interviewing at Amazon — Leadership Principles Reading Notes
- 如何获取特定用户组内的无效账户?
- python如何安装torch_Python安装torch模块报错处理