集成学习

1.集成学习概念

通过训练若干个个体学习器,通过结合策略,最终形成一个强学习器。

2.个体学习器概念

个体学习器又称弱学习器,是集成学习的基本组成,一般有两种,一个是所有的个体学习器是一种类型的,比如都是决策树,或者神经网络,第二种采用不同类型的,最后组合起来,结合策略类似stacking。

3.boosting&bagging

boosting&bagging是集成学习的两种算法分类,代表着2中不同内容的算法。针对解决的问题也是不同的。

boosting原理是利用多个弱学习器,他们偏差大,但是方差小。通过将多个弱学习器串行,每一轮都调整训练集的权重,提升上一轮预测错的样本权重,降低预测正确的样本权重,这样是学习器重点在于预测错误的样本上。最终通过结合策略进行整合。强学习器表现就是低方差,也成功降低了偏差。

boosting代表算法:adaboost,GBDT。

bagging原理是利用多个弱学习器,他们的偏差小,但是方差大。bagging的目的就是通过策略降低这些弱学习器的方差,并兼容他们偏差小。将多个弱学习器并行,对训练集进行随机取样,取T份,用来训练T个弱学习器,再对这T个弱学习器进行结合。

bagging代表算法:随机森林RF,极端树ET。

4.结合策略(平均法,投票法,学习法)

1.平均法-回归问题

对于数值回归问题,最简单就是将每个弱学习器预测的值加起来,取平均数,如果每个弱学习器有自身的权重(例如adaboost)就进行加权平均。

2.投票法-分类问题

对于分类问题的预测,采用投票法,就是少数服从多数。还有加权投票法,就是每个票都有相应的权重。

3.学习法-stacking

上述都相对简单,学习法就是stacking,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。

在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。

stacking类似于网状结构。

将原始数据分为train(m×n),test.

利用交叉验证,将train进行k折交叉验证。

对于每个model来说,对其进行k折交叉验证,最终得到k个模型,每个模型通过验证集得到k份预测结果,将这些预测结果(k×1)继续组合,最终拼凑一个完整行数的预测结果m×1。

假如有T个初级模型,就有m×T大小的次级训练集。

对于测试集来说,在每个k折model中进行预测test,得到k个test预测结果,组成m×k大小的数组。

5.随机森林的思想

通过随机取样,并行训练那些方差大,偏差小的强学习器,最终通过加权平均法得到最终学习器。目的是降低方差。

6.随机森林的推广

extra tree:原理和RF相同,rf是采用随机采样多份不同的训练子集,来训练多个学习器,et是用原始的训练集。但是在特征选择时,RF是根据基尼系数或者均方差作为原则,ET十分极端,直接随机一个特征作为特征划分决策树。这样造成ET的方差十分小,泛化能力强,而且训练的时间大大减少。以更高的偏差换取方差。

7.随机森林的优缺点

优点:

1.主要的就是高度可并行训练学习器,对于大数据大大减少了训练时间。

2.可以随机选择特征进行特征划分,对于高维特征,仍然十分高效的训练模型。

3.由于采用决策树模型,可以在训练后输出特征重要性。

4.由于采用决策树模型,不需要对训练集进行归一化,对缺失值也不敏感。

缺点:

噪声大的样本集,容易陷入过拟合。

8.随机森林的应用场景

数目大的样本集

你可能感兴趣的:(集成学习)