机器学习很多场景中会用到放回采样,比如bagging方法。采样后的数据集会有一些数据重复,一些数据缺失,从个样本中采样个样本,不同样本数量的期望为。怎么来的呢?这里给出简单的证明。

首先,显然有;其次,设从个样本中采样个样本,不同样本数量的期望为,则第个样本是未曾抽到的样本的概率为,所以,根据等比数列求和公式得

对于一种特殊情况,当足够大时,则有最终不同样本数量是原始样本数量的期望为,大约是

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

import random, math

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

我得到的输出结果为

(6321214, 6321205)

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