数学表达:
自助采样时,每个样本未被选中的概率为
P = ( 1 − 1 m ) m ≈ 1 e ≈ 36.8 % , P = \left(1 - \frac{1}{m}\right)^m \approx \frac{1}{e} \approx 36.8\%, P=(1−m1)m≈e1≈36.8%,
其中 m m m为原始数据集大小。
bootstrap_samples = [np.random.choice(original_data, 100, replace=True) for _ in range(5)]
plt.figure(figsize=(10,6))
for i, sample in enumerate(bootstrap_samples[:3]):
plt.scatter([i]*100, sample, alpha=0.5)
plt.title("Bootstrap采样分布可视化")
plt.ylabel("样本索引")
plt.xlabel("采样批次")
plt.show()
复制代码
三、算法原理深度剖析
3.1 数学本质
设基模子为 h i ( x ) h_i(x) hi(x),Bagging的猜测效果为:
H ( x ) = 1 N ∑ i = 1 N h i ( x ) H(x) = \frac{1}{N}\sum_{i=1}^N h_i(x) H(x)=N1i=1∑Nhi(x)
方差分解公式:
Var ( H ) = ρ σ 2 + 1 − ρ N σ 2 \text{Var}(H) = \rho\sigma^2 + \frac{1-\rho}{N}\sigma^2 Var(H)=ρσ2+N1−ρσ2
其中 ρ \rho ρ 为模子间相关系数, σ 2 \sigma^2 σ2 为单个模子方差
3.2 关键技术创新