新农上路
- 积分
- 99
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2015-3-12
- 最后登录
- 1970-1-1
|
这是online sampling的特殊情形。
当面对stream中第 i 个item时,以 1/i 的概率把当前选择的元素替换成item i。
概率分析: item i 被选到当且仅当 item i 在 step i 的时候被选中,并且再也没有被替换掉。item i 在 step i 被选中的概率是 1/i;之后每一步(step j)没有被替换的概率是 1-1/j, i+1<= j <=n,n 是 stream 中 item 的个数。所以同时满足的概率是
1/i * [1 - 1/(i+1)] * [1 - 1/(i+2)] * ... * [1 - 1/n] = 1/i * i/(i+1) * (i+1)/(i+2) * ... * (n-1)/n = 1/n.
这个问题可以扩展到更一般的权重: item i 的权重是 w_i。
令 w = \sum_{i=1}^n w_i 代表所有权重的和。那么以概率 w_i/w 的概率选到 item i 的方法也类似:
当面对stream中第 i 个item时,以 w_i/s_i 的概率把当前选择的元素替换成item i,这里 s_i = \sum_{k=1}^i w_k 是前 i 个 item 的权重的和。
概率分析: item i 被选到当且仅当 item i 在 step i 的时候被选中,并且再也没有被替换掉。item i 在 step i 被选中的概率是 w_i/s_i;之后每一步(step j)没有被替换的概率是 1-w_j/s_j, i+1<= j <=n,n 是 stream 中 item 的个数。所以同时满足的概率是
w_i/s_i * [1 - w_{i+1}/s_{i+1}] * [1 - w_{i+2}/s_{i+2}] * ... * [1 - w_n/s_n] = w_i/s_i * s_i/s_{i+1} * s_{i+1}/s_{i+2} * ... * s_{n-1}/s_n = w_i/s_n = w_i/w。
这里 s_{j+1} = s_j + w_{j+1},以及 s_n = w。 |
|