做者:無影隨想
時間:2016年1月。
出處:https://zhaokv.com/math/2016/01/sample-with-replacement-unique-number.html
聲明:版權全部,轉載請註明出處html
機器學習不少場景中會用到放回採樣,好比bagging方法。採樣後的數據集會有一些數據重複,一些數據缺失,從$N$個樣本中採樣$K$個樣本,不一樣樣本數量的指望爲$U(K)=N(1-\left(\frac{N-1}{N}\right)^K)$。怎麼來的呢?這裏給出簡單的證實。dom
首先,顯然有$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}\right)^2+\cdots+\left(\frac{N-1}{N}\right)^{k-1}$,根據等比數列求和公式得$U(K)=N(1-\left(\frac{N-1}{N}\right)^K)$。機器學習
對於一種特殊狀況,當$K=N$且$N$足夠大時,則有最終不一樣樣本數量是原始樣本數量的指望爲$(1-\frac{1}{e})$,大約是$\frac{2}{3}$。學習
能夠經過一段Python程序來驗證結論的正確性:spa
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)))
我獲得的輸出結果爲code
1 (6321214, 6321205)
固然,你的運行結果可能和上面有所差異。htm