- Bagging(Bootstrap Aggregating):并行训练多个模型,降低方差,适合防止过拟合。
- Boosting:顺序训练多个模型,降低偏差,适合提升弱模型的表现。
| 特性 | Bagging | Boosting |
|---|
| 🧠 基本思想 | 多个模型独立并行训练,投票/平均预测 | 模型依次串行训练,后一个专注前一个的错误 |
| 🎯 目标 | 减少方差(variance) | 减少偏差(bias) |
| 🔁 训练方式 | 每个模型使用Bootstrap样本训练 | 每个模型根据前一轮错误样本加权训练 |
| 🌲 常见模型 | 随机森林(Random Forest) | AdaBoost、Gradient Boosting、XGBoost |
| 🧱 样本选择 | 有放回地随机抽样(Bootstrap) | 每轮根据前一轮的错误率调整权重 |
| 🕐 模型训练顺序 | 并行 | 顺序 |
| ⚠️ 抗过拟合能力 | 较强 | 较弱(但通过正则、提前停止可改善) |
| 💡 易于理解与实现 | 相对简单 | 相对复杂 |
🧠 何时使用哪个?
| 场景 | 推荐方法 |
|---|
| 数据噪声大,模型容易过拟合 | ✅ Bagging |
| 模型偏差大,需要提升准确率 | ✅ Boosting |
| 训练资源有限,需要并行训练 | ✅ Bagging |
| 精度要求高,可接受较长训练时间 | ✅ Boosting |
- 偏差(Bias):模型预测和真实值之间的系统性误差,代表模型学习能力的强弱。
- 方差(Variance):模型对训练数据敏感程度的度量,代表模型的稳定性。
📚 数学理解(假设有目标函数 f(x),预测为 f^(x))
预测误差(期望平方误差)可以分解为:
E[(f^(x)−f(x))2]=Bias2+Variance+Irreducible Error
- Bias²:模型预测值的期望 与 真实值的偏离。
- Variance:不同训练集上训练的模型预测值之间的变化。
- Irreducible Error:数据本身的噪声,无法消除。
| 模型 | 偏差 | 方差 | 特点 |
|---|
| 线性回归 | 高 | 低 | 太简单,不能拟合非线性 |
| 决策树 | 低 | 高 | 能拟合复杂关系,易过拟合 |
| 随机森林 | 低 | 低 | 用 Bagging 降方差 |
| KNN(k=20) | 高 | 低 | 更平滑,可能欠拟合 |
| 属性 | 偏差 | 方差 |
|---|
| 本质 | 学得不够好 | 学得太过头 |
| 常见原因 | 模型太简单,欠拟合 | 模型太复杂,过拟合 |
| 解决方法 | 提高模型复杂度 | 降低模型复杂度、用集成学习等 |
| 举例 | 用线性模型拟合曲线数据 | 用深层神经网络拟合小样本数据 |