放回采样最终不同样本数量

作者:无影随想 
时间:2016年1月。 
出处:https://zhaokv.com/math/2016/01/sample-with-replacement-unique-number.html
声明:版权所有,转载请注明出处

机器学习很多场景中会用到放回采样,比如bagging方法。采样后的数据集会有一些数据重复,一些数据缺失,从$N$个样本中采样$K$个样本,不同样本数量的期望为$U(K)=N(1-left(frac{N-1}{N} ight)^K)$。怎么来的呢?这里给出简单的证明。

首先,显然有$U(1)=1$;其次,设从$N$个样本中采样$k-1$个样本,不同样本数量的期望为$U(k-1)$,则第$k$个样本是未曾抽到的样本的概率为$1-frac{U(k-1)}{N}$,所以$U(k)=1+frac{N-1}{N}U(k-1)$$=1+frac{N-1}{N}+left(frac{N-1}{N} ight)^2+cdots+left(frac{N-1}{N} ight)^{k-1}$,根据等比数列求和公式得$U(K)=N(1-left(frac{N-1}{N} ight)^K)$。

对于一种特殊情况,当$K=N$且$N$足够大时,则有最终不同样本数量是原始样本数量的期望为$(1-frac{1}{e})$,大约是$frac{2}{3}$。

可以通过一段Python程序来验证结论的正确性:

1 import random, math
2  
3 S = set()
4 N = 10000000
5 [S.add(random.randint(1,N)) for i in range(N)]
6 print(len(S), int(N*(1-1/math.e)))

我得到的输出结果为

1 (6321214, 6321205)

当然,你的运行结果可能和上面有所差别。

原文地址:https://www.cnblogs.com/zhaokui/p/5147424.html