ML-集成学习

发布时间 2023-04-28 14:32:08作者: Viktor_Cullen

集成学习根据个体学习器的生成方式分为BaggingBoosting两大类。

Bagging的个体学习器之间不存在强依赖关系,Boosting存在强依赖关系。

Bagging可以同时生成的并行化方法,Boosting必须串行化生成的序列化方法。

Bagging

Bootstrap aggregating,即使用自主采样法来构造基学习器。

Bagging有两个要求:1 多样性要求指个体学习器应尽可能独立;2 准确性要求指个体学习器不能太差。

自主采样法的特点是,每个样本有0.368的概率无法被采样到,这部分剩余样本可以用于验证集的包外估计,例如决策树的剪枝、神经网络的early stop。

Bagging的训练复杂度与训练基学习器的复杂度同阶。Bagging可以直接用于多分类、回归等任务。

Bagging要求基学习器在数据集上较小的扰动可以使分类结果产生显著的变动,如此得到的基分类器之间的差异性较大。

Bagging的案例有:Random Forest 随机森林,以决策树为基学习器。RF的训练效率比Bagging更好,因为Bagging在属性划分的时候要考察节点的所有属性,而随机森林只需要随即考察一个属性子集。

Boosting

什么是强可学习与弱可学习?强可学习是指一个概念存在一个多项式的学习算法可以学习并且正确率很高;弱可学习指一个概念存在一个多项式学习算法能够学习但是正确率仅比随机猜测略好。Boosting方法就是一族可以把弱学习器提升为强学习器的算法。

Boosting的案例有:

AdaBoost:是一个加法模型,损失函数为指数函数(对一般的损失函数不适用),学习算法为前向分步算法,是一个二分类学习方法。

AdaBoost每一个步骤的新模型都是基于前一个模型的表现结果进行调整的。

Gradient在函数空间沿着负梯度方向选取弱学习器来优化损失函数,适用于任意可以微分的损失函数。

AdaBoost是Gradient Boosting的特例,Gradient Boost是AdaBoost的推广。AdaBoost是通过提升错分数据点的权重来定位模型的不足。Gradient Boost是通过梯度来定位模型的不足,因此Gradient Boosting可以使用更多种类的目标函数。