一.集成算法概述
目的:让机器学习效果更好
二.集成方法(基础模型:树模型比较合适)
1.Bagging(并行)
训练多个分类器取平均,并行训练一堆分类器
随机森林
随机:数据采样随机(60%-80%有放回随机采样),特征选择随机(60%-80%有放回随机采样)
备注:每棵树数据量和特征数量相同
森林:很多个决策树并行放在一起
优势:
- 能够处理很高维度(feature很多)的数据,并且不用做特征选择
- 在训练完后,它能够给出哪些feature比较重要
- 容易做成并行化方法,速度比较快
- 可以进行可视化展示,便于分析
2.Boosting(串行)
从弱学习器开始加强,通过加权来进行训练
(先构造A树,根据残差构造B树)
AdaBoost(自适应增强)未完成
自适应:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。
根据前一次的分类效果调整数据权重(如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重)
最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合体
Xgboost(重要)未完成
得分值计算:叶子节点*权重的和
预测值:
目标函数:
(均方误差)
值的最小化:
集成算法的表示:
正则化的惩罚项:
梯度上升的决策树
结构分数(类似吉尼系数一样更加一般的对于树结构进行打分的函数)
3.Stacking
聚合多个分类或回归模型(可以分阶段来做)
堆叠各种各样的分类器(KNN,SVM,RF等等)
分阶段:第一阶段用不同分类器得出各自结果,第二阶段再用前一阶段结果当成特征训练一个分类器
堆叠在一起确实能使得准确率提升,但是速度是个问题