淳朴的大数据抽样方法

方法不是我原创的,只是学习了别人的方法,用自己的语言总结一下。


问题描述:

超大数据,随机等概率抽取m个样本,如何进行?


问题分析:

问题在于一开始并不知道数据规模,如果知道数据的数量n,自然可以以m/n的概率对每一个逐条读入的数据选择是否抽取。


解决方案:

逐条读入数据,

1. 1~m条数据,均存入待定数组(数组定长m)

2. 读到于第k条数据时

- 第k条数据选中的概率为: m/k

- 对于原来待定数组中的数据,随机选择一条,替换为新数据(第k条数据)


证明:

1. 前m条数据

被第K条数据替换的概率为: 1/m * m/k = 1/k = k-1/k, k = m+1, m+2, ... , n

所以最终被选中的概率为:

(m / m + 1) * (m + 1/m+2)* .... * (n - 1 / n) = m /k

2. m + 1, m+2, ...n这些后续数据(和上面差不多,偷懒不写了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值