Ensemble 集成学习
什么是集成学习思想?
将多个分类器的预测结果结合起来用来组合的分类器叫做 基分类器(base classifiers)Ensembles通常比组成他的基分类器效果好我们使用投票(少数服从多数)或加权投票来决定最终结果
Example:
训练KNN,朴素贝叶斯,逻辑回归这三种分类器
对一个新样本分类时,结合三个分类器的结果,少
数服从多数
集成学习的错误率:
当一个ensemble由25个相同的基分类器组成,那么 他的错误率就等于基分类器的错误率.
当一个ensemble由25个不同的基分类器组成,那么 只有当超过半数的基分类器都错误的情况下,他才 会预测错误
让集成学习效果更好:
基分类器需要表现良好,即他的错误率低于0.5基分类器之间相互独立 不可能保证完全相互独立在基分类器相关性较低的情况下,集成学习就可以获得不错的表现 好的ensemble需要多种多样的并且效果良好的基类器组成
如何在基分类器之间产生不一致(独立性):
操作训练数据:根据一些抽样分布,对原数据集重新抽样,产生多种训练子集,并给每个子集构建基分类器操作属性:选择不同特征产生不同的基分类器操作类标签:控制哪些类标签将被训练(多分类转为二分类)控制学习算法:构建一组拥有不同参数的分类器
Bagging
给定原数据集从原数据集中放回地取出与原数据集相同数量的样本,组成数据子集(一次大概63%原数据集中的样本)对每个子集构建分类器预测新样本,使用每个分类器的结果来投票决定
通常比单个分类器的效果好得多
对不稳定的分类器十分有效
不稳定的分类器:训练集变动一点点,对测试 集的预测变动很大。如:决策树、神经网络
在应用在回归任务中时,使用平均数来表示预测结果
Boosting
运用最为广泛的集成学习方法为了使分类器之间相互补充下一个分类器应该用上一个分类器难以使用的样本创建
AdaBoost:
为训练集中的每个样本分配一个权重(比如1/n,n为样本数量)生成一个分类器,对训练集分类,减少正确分类的样本的权重,增加错误分类的样本的权重在创建下一个分类器的训练集时(Bagging),权重越大的样本越容易被选中针对新训练集,构建新的分类器,重复上述操作, 直到生成了需要的M个分类器根据每个分类器在训练集的表现,使用加权投票来 产生预测结果
Bagging and Boosting
相同点:
都是用的投票(分类)或平均(回归)来结合每个学习者的预测值通常组合同一类型的分类器,如决策树
不同点:
在创建基分类器时:
Bagging –并联地创建分类器Boosting – 串联地,迭代地创建分类器,后一个为前一个无法正确分类的样本服务
结合时:
Bagging –每个分类器的权值相同Boosting – 权值不同,基于每个分类器在训练集上的表现
Random Forest
每个基分类器只学习数据集的一部分特征子集例如一个数据集有K个特征: 使用Bagging生成不同的训练子集,每个子集 随机选取L个原数据集中的特征(L<K)为每个训练子集构建决策树,并且不修剪结合每个决策树的结果,以投票决定最终结果
随机森林的效果:
随机森林的准确率取决于:
• 单棵树的准确率(越高越好)
• 树之间的相关性(越低越好)
使用Bagging和随机选特征的方法,降低树之间的 相关性
提高单棵树的特征数量,将提高树的精度,同时提 高了树之间的相关性
随机森林通常表现优于一棵决策树
鲁棒性比较好
运行速度快(只考虑部分特征)
如果觉得《<机器学习><详解>Ensemble 集成学习算法》对你有帮助,请点赞、收藏,并留下你的观点哦!