Ensemble learning
-
使用背景
对于一个数据集,我们用不同的机器学习模型训练:线性模型,支持向量机,线性决策树linear decision tree 和 artificial neural network。 得到每个模型的准确率分别为:80%,90%,87%,92%。
假设准确率95%是最低的接受标准,以上四种算法都达不到标准(此时这四种模型被称为“weak learners".
这时可以将四种算法结合,将数据集同时用四中算法训练,再计算准确率的均值,此时最终的准确率可以达到96%。 -
原理 四种算法可能只在部分数据中表现良好,但在其他数据部分表现不佳。用集成学习使四种算法在各自表现良好的数据部分训练。
集成学习的思想是将若干个学习器(分类器、回归器)组合之后产生一个新的学习器。
弱分类器(weak learner): 指那些分类准确率值只稍好于随机猜测的分类器(error<0.5);
集成算法的成功在于保证弱分类器的多样性。而且集成不稳定的算法也能够得到一个比较明显的性能提升。
选择集成学习主要原因:
1、弱分类器间存在一定的差异性,这会导致分类的边界不同,也就是说可能存在错误。那么将多个若分类器合并后,就可以得到更加合理的边界,减少整体的错误率,实现更好的效果。
- 可以用于预测和分类。
- 主要methods
4.1 Bagging (bootstrap aggregation的缩写,又称”自举汇聚法“)
- 目标:降低决策树的variance
- 在原始数据集上,通过有放回的抽样的方法,重新选择出S个新数据集来分别训练S个分类器的集成技术。即:这些模型训练的数据中允许存在重复的数据。
- 利用bootstrap方法从整体数据集中、采取取出后放回抽样得到N个数据集,在每个数据集上学习一个模型,最后的预测结果利用N个模型的输出得到。
- random forest属于bagging
- 样本没有被抽到的概率:从m个样本中,抽取出m个新的观测值,此时任意一个样本没有被抽到的概率为36.8%。(某个样本一次被抽到的概率是1/m ,那么一次没有被抽到的概率就是 1-1/m,m次都没有抽取到的联合概率是 (1-1/m)m 即样本没有出现在新的数据集中的概率。假如样本的数据集足够的大,即当m趋向于无穷大的时候求出的极限为1/e,约等于36.8%。)
- Bagging方法的弱学习器可以是基本的算法模型:Linear、Ridge、Lasso、Logistic、Softmax、ID3、C4.5、CART、SVM、KNN等。
- Bagging是有放回的抽样,并且每个自己的样本数量必须和原样本数量一致,允许子集存在重复数据。
4.2 Boosting
- 刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。
参考
- https://developer.aliyun.com/article/667533