本文主要是介绍从 AdaBoost 到随机森林:深入解析集成学习方法【集成学习】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
集成学习的思想
集成学习是一种通过组合多个基学习器(弱学习器)来提高模型预测性能的机器学习方法。集成学习的思想类似于谚语“三个臭皮匠,顶个诸葛亮”,即通过集成多个表现较差的学习器,可以获得一个强大的整体模型。
什么是学习器?
- 强学习器:如神经网络等,通常具有较高的预测准确性,但需要大量的数据和计算资源来训练。
- 弱学习器:如逻辑回归等,个体性能较差,但计算代价低,容易训练。
集成学习的优点
- 提高准确性:通过组合多个弱学习器,能显著提高模型的预测准确性。
- 适应性强:适用于各种类型的数据和问题,应用范围广泛。
集成学习的核心问题
-
如何获得个体学习器:
- 个体学习器需要有所差异,这可以通过改变训练数据的
权值
或概率分布
来实现。例如,增大某类数据的权值,使其在训练中占据更重要的位置。
- 个体学习器需要有所差异,这可以通过改变训练数据的
-
如何组合个体学习器:
- 最常见的组合方式是 线性相加 ,但也有其他方式,如投票法等。
Boosting 和 Bagging 的定义与机制
基于上述两个核心问题,Boosting和Bagging应运而生,它们分别采用不同的方法来解决这些问题。
Boosting
定义:Boosting意为“增强”,通过逐步调整弱学习器来提高模型的性能。
工作机制:
-
获得个体学习器:
- Boosting按顺序(串行)训练多个弱学习器,每个学习器都试图修正前一个学习器的错误。
- 每次训练后,样本的权重会根据前一个学习器的表现进行调整。错误分类的样本权重会增加,而正确分类的样本权重会减少。这样,后续的学习器会更加关注难以分类的样本。
-
组合个体学习器:
- 最终模型是多个弱学习器的加权组合(加法模型),这些学习器共同决定预测结果。
代表方法:AdaBoost、GBDT(梯度提升决策树)、XGBoost、LightGBM。
-
AdaBoost:最经典的Boosting方法,通过不断调整样本权重,聚焦于被前一轮分类错误的样本。
- 权重调整:初始时,每个样本的权重相同。每一轮训练后,错误分类的样本权重增加,正确分类的样本权重减少。
- 组合策略:通过加权投票来决定最终分类结果。
-
GBDT:利用梯度提升的思想,逐步减小预测误差,通过多个决策树的累加来逼近真实值。
- 误差减少:每一轮训练基学习器时,GBDT会拟合前一轮的残差,即真实值与预测值之间的差距。
- 组合策略:通过累加所有基学习器的预测结果来做最终预测。
-
XGBoost:在GBDT的基础上进行了改进,提供了更高效的计算和更强的正则化功能。
- 改进点:采用二阶导数信息、并行计算、正则化处理等,提升了训练速度和模型性能。
- 组合策略:与GBDT类似,通过
累加
各基学习器的预测结果。
-
LightGBM:优化了XGBoost的算法,能够处理更大规模的数据集,训练速度更快。
- 特征分裂:采用基于直方图的决策树算法,减少了数据扫描次数,提升了训练速度。
- 组合策略:与XGBoost相似,通过累加预测结果。
示例:以AdaBoost为例,它通过不断调整样本权重,聚焦于被前一轮分类错误的样本。每个学习器的输出通过加权投票来决定最终分类结果。
Bagging
定义:Bagging是“Bootstrap Aggregating”的缩写,通过并行训练多个弱学习器来提高模型的稳定性和准确性。
工作机制:
-
获得个体学习器:
- Bagging从原始数据集中随机抽取多个子集(通常是有放回的抽样),每个子集用于训练一个独立的弱学习器。
-
组合个体学习器:
- 分类问题中通过投票决定最终结果,回归问题中通过计算平均值决定最终预测。
代表方法:随机森林(Random Forest)。
- 随机森林:Bagging的经典应用,通过随机抽样生成多个决策树,同时对特征进行随机选择,提高了模型的多样性和鲁棒性。
- 抽样策略:采用放回抽样方法,从原始数据集中随机抽取子集,每个子集训练一个决策树。
- 特征随机性:每个决策树在节点分裂时,随机选择部分特征进行最佳分裂,提高了模型的多样性。
- 组合策略:分类问题通过多数 投票 决定最终结果,回归问题通过 取均值 得到最终预测。
示例:随机森林通过随机抽样生成多个决策树,同时对特征进行随机选择,提高了模型的多样性和鲁棒性。最终结果通过多数投票(分类)或取均值(回归)得出。
总结
集成学习方法通过组合多个基学习器,提高了模型的预测能力和鲁棒性。Boosting和Bagging作为集成学习的两种主要策略,通过不同的机制和策略来提升模型的性能。Boosting通过 串行训练 和加权调整样本权重,重点关注难分类的样本,而Bagging通过 并行训练 和随机抽样生成多样化的训练集,提升模型的稳定性和准确性。
这篇关于从 AdaBoost 到随机森林:深入解析集成学习方法【集成学习】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!