目录
Bagging(Bootstrap Aggregating)
✅一、它们各自是什么?
Bagging(Bootstrap Aggregating)
-
核心想法:对训练集做多次有放回抽样(bootstrap)得到多份子数据集,训练多个彼此独立的基学习器(常用:决策树),最后对预测平均/投票。
-
解决什么问题:显著降低方差(variance),稳定高方差模型(如深树)。
-
代表算法:随机森林(Bagging + 特征子采样);ExtraTrees(极端随机树,进一步随机化切分点)。
-
流程(简版):
-
重采样得到 B 份数据集;
-
各自训练一个弱学习器;
-
分类投票/回归求均值;
-
可用 OOB(Out‑of‑Bag)误差做验证,不必额外交叉验证。
-
Boosting
-
核心想法:序列式地训练一串弱学习器:每一轮都针对上一轮的错误进行重点修正(样本权重或残差),最后把这些弱学习器加权相加得到强模型。
-
解决什么问题:在保持方差可控的同时,持续降低偏差(bias),逼近更强的拟合能力。
-
代表算法:
-
AdaBoost:根据分类错误率更新样本权重;弱学习器权重 αt=12ln1−errterrt\alpha_t=\frac{1}{2}\ln\frac{1-\text{err}_t}{\text{err}_t}αt=21lnerrt1−errt。
-
GBDT/Gradient Boosting:每一轮拟合当前模型在损失上的负梯度(残差),更新 Ft+1(x)=Ft(x)+ν⋅ht(x)F_{t+1}(x)=F_t(x)+\nu\cdot h_t(x)Ft+1(x)=Ft(x)+ν⋅ht(x)。
-
XGBoost / LightGBM / CatBoost:在 GBDT 思路上加入正则化、二阶近似、稀疏/直方/类别编码等工程优化。
-
✅二、关键差异一览
| 维度 | Bagging | Boosting |
|---|---|---|
| 训练方式 | 并行(各模型彼此独立,可同时训) | 串行(后一个依赖前一个的误差/残差) |
| 采样策略 | 对样本做 随机有放回抽样; 随机森林还会做 特征子采样 | 不重采样; 更常见是重加权(AdaBoost)或 拟合残差/梯度(GBDT) |
| 聚合方式 | 简单 平均/多数投票(等权) | 加权和(每轮学习到的弱学习器带权叠加) |
| 偏差/方差 | 主要降方差,对高方差弱学习器很有效 | 主要降偏差,逐步逼近复杂关系 |
| 对噪声/异常值 | 相对更稳(平均化+OOB可控) | 更敏感 AdaBoost 尤其易受离群点影响; GBDT 可通过学习率、子采样等抑制 |
| 过拟合倾向 | 不易过拟合 单树深、数量多也常能稳住 | 若轮数多、学习率大、树太深,可能过拟合 |
| 可解释性 | 随机森林可看特征重要度/置换重要度 | GBDT 系常用 SHAP、特征重要度、局部依赖图 |
| 工程并行 | 友好 | 受序列依赖限制, 但 XGB/LGB 对特征扫描、直方/并行做了大量优化 |
| 典型基学习器 | 决策树(深或浅),也可 SVM、KNN 等 | 决策树(浅树/小树桩)最常见 |
✅三、什么时候选谁?
-
数据噪声很大、特征多且非线性、你想要鲁棒的一刀切 baseline:
先上 随机森林(Bagging)。调参少,稳健,OOB 即可拿到靠谱效果。 -
追求更高精度、数据是表格型、可投入更多调参与算力:
上 Boosting 家族(GBDT/XGBoost/LightGBM/CatBoost)。通常是竞赛/业务 SOTA 首选。 -
样本较小/特征工程一般:Boosting 常更吃香(能更充分挖掘弱学习器潜能)。
-
强并行/快速原型:Bagging 更爽(或用 LightGBM 这类工程化的 Boosting)。
-
对异常值敏感:优先 Bagging 或在 Boosting 中加稳健环节(较小学习率、子采样、正则、对数/Huber 损失等)。
✅四、调参要点(速查)
Bagging/随机森林
-
n_estimators(树数)↑ → 方差降但推理更慢; -
max_features(每次分裂的特征子采样规模)小些→更去相关化,更稳; -
max_depth/min_samples_leaf控制单树复杂度; -
看 OOB score 决定是否加树或限深。
Boosting(以树为基)
-
学习率
learning_rate(缩减系数):小学习率 + 多轮数是常见稳健配方; -
弱学习器复杂度:
max_depth(或num_leaves)、min_child_samples约束单棵树; -
n_estimators/num_boost_round:配合早停early_stopping_rounds; -
子采样:
subsample(行)与colsample_bytree(列)抑制过拟合,提升速度; -
正则化:XGBoost 的
lambda、alpha;LightGBM 的min_data_in_leaf、feature_fraction等。 -
类别特征:CatBoost 的类别编码天然友好;LightGBM 的
categorical_feature也很常用。
✅五、典型应用场景与示例
-
风控/信用评分、反欺诈、违约预测:Boosting(XGB/LGB/CB)常年 SOTA;可解释性用 SHAP 分解贡献。
-
广告/推荐 CTR/CVR 预估:Boosting + 特征交叉;线上推断快;与深模型混合。
-
A/B 实验分析扩展:
-
提升度(Uplift)建模:用 GBDT 族分别拟合 treatment/control 的转化概率(双模型)或直接做 UpliftTree/GBDT;
-
回归到均值的稳健性:Boosting 用较小学习率、早停来防过拟合。
-
-
异常检测/质量评估:Bagging 的稳定性适合做鲁棒基线;
-
医学、生物信息 Tabular:样本量不大但特征复杂,用 Boosting 表现常优。
-
衡量特征重要性:
-
随机森林:置换重要度/OOB 重要度;
-
GBDT/XGB/LGB:基于增益/分裂频次 + SHAP 解释个体预测。
-
✅六、一句话记忆
-
Bagging:多条并行小路 → 投票取平均 → 降方差、更稳。
-
Boosting:一条接一条修正 → 残差里挖矿 → 降偏差、更准。
好的👌,我帮你整理一个清晰的对比表格:
✅七、样本抽样策略对比
| 算法 | 每轮迭代 参与样本数 | 策略方式 | 是否 依赖梯度大小 | 可调参数 |
|---|---|---|---|---|
| 随机森林 | 约 = N 有放回抽样 N 次,约 63.2% 独特样本 | Bootstrap 抽样 | ❌ 不依赖梯度 | max_samples 控制每轮抽样规模 |
| XGBoost | 默认 = N 全量样本计算梯度,可 < N | 随机子采样 行采样 | ❌ 不依赖梯度 | subsample(样本比例),colsample_*(特征比例) |
| LightGBM | < N 由 | GOSS 保留大梯度样本 + 随机小梯度样本 | ✅ 可依赖梯度若用 GOSS) | top_rate、other_rate(GOSS);subsample(随机采样) |
📌 一句话记忆
-
随机森林:每棵树 N 个样本,靠 Bootstrap 多样性。
-
XGBoost:默认全量 N,靠 随机子采样防过拟合。
-
LightGBM:可以全量,也可以 GOSS,靠 梯度大小决定样本选择。
✅八、特征抽样策略对比
| 算法 | 特征抽样策略 | 参数名称 | 默认值 | 说明 |
|---|---|---|---|---|
| 随机森林 | 每个分裂节点随机抽取 m 个特征 | max_features | 分类默认 = √p;回归默认 = p/3 | 典型做法:随机子空间法,提高多样性 |
| XGBoost | 支持按树、按层、按节点随机抽特征 | colsample_bytreecolsample_bylevelcolsample_bynode | 默认 = 1.0 | 默认全特征,手动设 <1 才子采样 |
| LightGBM | 支持按树、按节点随机抽特征;另有特征捆绑优化 | feature_fractionfeature_fraction_bynode | 默认 = 1.0 | 默认全特征,可用 EFB 进一步压缩特征维度 |
📌 一句话总结
-
随机森林:特征抽样是核心机制,默认就 <1。
-
XGBoost / LightGBM:默认全特征(=1),只有手动设 <1 才启用子采样。

3948

被折叠的 条评论
为什么被折叠?



