《机器学习-周志华》读书笔记-第8章 集成学习

《机器学习-周志华》读书笔记-第8章 集成学习

  • bagging
  • boosting

集成学习的目的是: 通过适当的学习方法将弱学习器转化为强学习器
方法要点为:优而不同

总体的翻看感觉:集成方法主要是两种:bagging和boosting
bagging: 串行,比较简单;可大致理解为通过训练多个简单学习器最后通过投票或是合适的加权方法获得一个较优结果,避免了单个学习器因为样本干扰带来的欠拟合或过拟合误差。
boosting: 并行(基学习器为同质),且需要有一定的集成原理理解(根据不同的优化方法又可以分为Adaboost、GBDT、xgboost(后两个是针对决策树的具体应用算法));可大致理解为每一次的新的学习器的生成需要在之前的所有的集成学习器的基础上再一次得到更优的目标函数,当目标函数不能更优时则停止迭代。个人理解类似于通过有一个目标总体的损失函数来优化每一步的基学习器的参数(感觉是一种参数优化的集成方法)。

bagging

bagging基于自助采样法
bagging主要关注降低方差,目标在于缩小因样本分布带来的误差即一直在优化自身。

随机森林
在bagging的基础上再次加入了属性选择的随机性,在构建每一棵树时先生成一个基于原属性集的子集。其实目的和自助采样法很相似,都是为了增加构建模型时的多样性(一个是在属性上,一个是在样本上),最后的结果都是使得集成学习的“优而不同”的“不同”的目标再一次优化。

bagging在结合策略上也有多种选择,基于分类目标的投票法或是基于回归的平均法,或者是再一次的基于基学习器的分类结果的学习法。学习法就是先用自主抽样法生成一堆基学习器,然后拼接基学习器在预留验证集上的预测输出结果与真实值作为新的数据集,再选用一个次学习器完成二次训练以获得更为优秀的预测结果。

boosting

boosting主要关注降低偏差,目标在于缩小目标函数整体错误率即一直在优化每一步的新的基学习器从而获得一个整体最优的集合学习器。
Adaboosting大致原理:
1.从初始训练集中训练出一个基学习器;
2.根据基学习器的预测误差确定最佳学习器权值;(书上有关于所谓最佳的具体推导过程)
3.重新确定样本分布,其实就是对预测正确的样本与预测错误的样本做一个新权值复制(更类似于一种奖励惩罚机制,越到后面的基学习器会更加着重于对于预测错误样本的学习);
4.根据新的样本分布训练新的基学习器;
重复步骤直至达到设定迭代次数
目标函数:指数损失函数(也是真实值与总体预测值的一种误差体现)

目前书上给出的公式推导过程都是基于二分类的(指数损失函数的表达式也是基于此)。因此,如果想把Adaboosting算法改成用于多分类或是回归预测,难度较大(公式推理过程中很多用到了f(x)=1/-1)。在这一点上,bagging明显好很多,切换较容易。

你可能感兴趣的:(读书笔记)