机器学习入门 11: 集成学习
I. 基本概念(Basic Concept)
定义:
集成学习是通过组合多个基学习器(base learners) 来提高总体预测性能的一类方法。
它的目标是让多个“弱学习器(weak learners)”组成一个“强学习器(strong learner)”。
数学上可写为:
其中:
-
(h_i(x)):第 (i) 个基学习器(base classifier / regressor)
-
(H(x)):最终的集成预测器(ensemble predictor)
组合函数(combine)通常是:
-
分类问题:多数投票(majority voting)
-
回归问题:平均(averaging)
II. 为什么集成有效(Why Ensemble Works)
1️⃣ 降低方差(Reduce Variance)
假设我们有 (M) 个基学习器,且它们的误差相互独立(独立性假设),则整体方差为:
🧩 直觉:像考试时多位同学独立作答,平均分更稳定。
2️⃣ 偏差-方差分解(Bias-Variance Decomposition)
泛化误差可以分为:
-
Bias(偏差) :模型预测与真实值的系统性偏离。
-
Variance(方差) :模型对训练数据扰动的敏感度。
-
\sigma^2 :不可约误差(irreducible noise)。
✅ 集成学习的目标是:
保持偏差不变的前提下,尽量降低方差。
III. 集成多样性(Diversity)
为了让集成有效,不同基学习器必须“足够不同(diverse) ”,即错误要“不太相关”。
多样性来源:
-
数据层面:如 Bagging 的 bootstrap 采样
-
特征层面:如 Random Forest 随机选特征
-
算法层面:如不同初始权重、不同参数
-
输出层面:如 ECOC(错误纠正输出编码)
IV. 三大经典方法(Three Classic Families)
A. Bagging(Bootstrap Aggregating)
核心思想:有放回采样(bootstrap) + 平均 / 投票
1️⃣ 每次从训练集 (D) 中随机有放回采样 (n) 个样本,形成子集 (D_i)。
2️⃣ 训练基学习器 (h_i)。
3️⃣ 综合多个 (h_i) 的预测结果。
在分类问题中为:
每个样本被抽中的概率为:
🧩 约 63.2% 的样本被选入每个 bootstrap 子集。
B. Random Forest(随机森林)
= Bagging + 随机特征选择
每棵树在每个节点划分时,仅随机考虑 (p) 个特征:
-
树的多样性来自随机样本 + 随机特征。
-
不剪枝(no pruning)。
-
最终输出为:
H(x) = \text{majority vote }{T_1(x), T_2(x), \dots, T_M(x)}
C. Boosting(提升方法)
核心思想:让后续学习器更关注前一轮做错的样本。
1️⃣ AdaBoost(Adaptive Boosting)
每轮训练后更新样本权重 (w_i):
最终组合:
2️⃣ Gradient Boosting(梯度提升)
把集成看作在函数空间上的梯度下降:
其中:
-
(h\_m(x)):对负梯度(残差)的近似学习器;
-
\\rho\_m:步长(learning rate)。
目标是最小化总体损失:\mathcal{L} = \sum_i L(y_i, F(x_i))
XGBoost、LightGBM、CatBoost 等都属于此类。