About
个人同时在简书和自制个人博客两个地方同时更新文章,有兴趣的话可以来我的博客玩呀,一般而言排版会好不少。本篇在博客的位置。
集成学习一句话版本
集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生新的学习器。
在学习这一章节中,老师提到了这个说法,我觉得非常言简意赅就直接引用了过来。集成学习算法的成功在于保证若分类器(错误率略小于0.5,即勉强比瞎猜好一点)的多样性,且集成不稳定的算法也能得到一种比较明显的提升。
注:深度学习其实也可以看作是一种集成学习
集成学习的作用
采用集成学习的原因有以下四点:
分类器间存在一定的差异性,这会导致分类的边界不同,也就是说分类器是一个比较专精的专家,它有它自己一定的适用范围和特长。那么通过一定的策略将多个弱分类器合并后,就可以拓展模型的适用范围,减少整体的错误率,实现更好的效果。
注:不严谨的类比的话,就像弹性网络模型就可以看作是由LASSO回归和Ridge回归组成的集成学习。
对于数据集过大或者过小,过大会导致训练一个模型太慢,过小则会导致训练不充分,在这种情况下可以分别对数据集进行划分和有放回的操作产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再将不同的分类器合并成为一个大的分类器。
注:这种方案的优势就在于,提高了准确度和训练速度,使得之前很难利用的数据得到了充分的利用
如果数据的划分边界过于复杂,使用线性模型很难描述情况,那么可以训练多个模型,然后再进行模型的融合。
注:这种特性就好比当初素描老师教我们画圆一样,画一个正方形,再用一堆小直线一点一点切成圆形。
对于多个异构的特征集的时候,很难进行融合,那么可以考虑每个数据集构建一个分类模型,然后将多个模型融合。
注:简单的来说就是公司有两个人都很厉害,但是偏偏不凑巧两个人打架,就不能把他们放一个部门里,得放不同部门一样。
集成学习的三种思想
Bagging
Bagging算法思想
Bagging,这个名字就是从袋子里取的意思,本身便很形象的说明了这个算法的核心思想,即在原始数据集上通过有放回的抽样的方式,重新选择出S个新数据集来分别训练S个分类器,随后在预测的时候采用多数投票或者求均值的方式来判断预测结果。
Bagging适用弱学习器的范围
基本的弱学习器都能用,如Linear、Ridge、Lasso、 Logistic、Softmax、ID3、C4.5、CART、SVM、KNN。
Boosting
Boosting算法思想
提升学习(Boosting),这个名字也很形象,在赛车游戏中氮气加速有时候界面就描述是boost,也就是越加越快,每次都比上一次更快,也就是说同Bagging是不一样的,Boosting是会根据其他的弱分类器的结果来更改数据集再喂给下一个弱分类器。准确的描述为,Boosting算法每一步产生弱预测模型(如决策树),并加权累加到总模型中。
它的意义在于如果一个问题存在弱预测模型,那么可以通过提升技术的办法得到一个强预测模型。
注1: 如果每一步的弱预测模型的生成都是依据损失函数的梯度方式的,那么就称为梯度提升(Gradient boosting)