Bootstrap 的思想是生成一系列 bootstrap 伪样本,每个样本是初始数据有放回抽样。通过对伪样本的计算,获得统计量的分布;当样本数量非常大时,每次抽样中不是重复的样本概率趋近为 0.632,故该抽样方法也叫 0.632 自助法。
问题描述
一个盒子里有100个小球(编号1到100),每次从盒子里随机挑选一个小球,记录该球的编号并将小球放回。重复抽样步骤100次,问抽样得到的不重复小球的个数是多少?
问题分析
首先,问题的答案应该是一个概率意义上的值。
考虑一个特定的小球 A,每次抽样 A 被抽到的概率为1/100,A 没有被抽到的概率为 1-1/100,则经过100次抽样,A 没有被抽到的概率 P=(1-1/100)^100。
当样本个数不是100,而是非常大的数的时候(比如为 x,x 非常大),A 没有被抽到的概率 P=(1-1/x)^x。这个式子和我们熟知的一个公式非常像:(1+1/x)^x=e(x 取正无穷)。
设 P=(1-1/x)^x,则 1/P=((1+1/(x-1))^(x-1))*(1+1/(x-1)),即 P=1/e=0.368,解释为在每一次抽样中,每一个小球不被抽到大概率为0.368,经过100次抽样,约有 100*(1-P)=63 个不重复大小球会被抽到。
问题应用
- Bagging(Bootstrap Aggregating),第一步采样就是使用 Bootstrap Sample(Bagging 是对训练样本采样);
- Random Forest,结合了 Bagging 和 Feature Selection 方法,当然也使用 Bootstrap Sample 方法 (不仅仅对训练样本采样,还对 Feature 采样)。