机器学习多次修补后笔记 --集成学习--boosting--AdaBoost

AdaBoost

1、流程

机器学习多次修补后笔记 --集成学习--boosting--AdaBoost_第1张图片

  • 第1行:D 代表样本集,Dt 代表第 t 轮的样本分布,不同的 Dt 中样本的权值不同
  • 第3行:根据 Dt 分布在样本集 D 上用基学习算法 L 训练出基分类器 ht
  • 第4行:第 t 个学习器的误差
  • 第6行:由第 t 个学习器的误差来计算它在最后集成学习器中的权重
  • 第7行:根据该-学习器的权重-来更新样本权值,形成新的样本权值分布D(t+1)
2、目标函数(第6、7行相关)

目标函数的意义在调节某些参数使学习器性能最好
一般的算法(参数驱动算法)都是用目标函数确定最合适的某参数
而对于AdaBoost来说,算法中有两部分目标函数,一个是个体学习器训练时自我调节的目标函数//另一个是在集成的串行生成学习器层面的目标函数(前者调节内部参数使个体学习器生成//后者是是集成过程拥有好的函数,如六七行的两个过程函数)

最终集成的学习器:基学习器的线性组合
在这里插入图片描述

集成层面目标函数:min(损失函数(每个样本指数损失的期望))
在这里插入图片描述

六七行的两个过程函数是基于加性模型迭代式优化指数损失函数的角度推导出的

基学习器能对特定的数据分布进行学习(第3行相关)
  • 重赋权法实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重
  • 对无法接受带权样本的基学习算法,则可通过 重采样法来处理,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练

这两种做法没有显著的优劣差别.需注意的是,Boosting 算法在训练的每一轮都要检查当前生成的基学习器是否满足基本条件(第 5 行,检查当前 基分类器是否是比随机猜测好),一旦条件不满足,则当前基学习器即被抛弃, 且学习过程停止.在此种情形下,初始设置的学习轮数 T 也许遥远未达到,可能导致最终集成中只包含很少的基学习器而性能不佳若采用"重采样法",则 可获得"重启动"机会以避免训练过程过早停止 ,即在抛弃不满足条件的当前基学习器之后,可根据当前分布重新对训练样本进 行采样,再基于新的采样结果重新训练出基学习器,从而使得学习过程可以持续到预设的 T 轮完成.

看看这片

你可能感兴趣的:(机器学习,算法,机器学习,人工智能,python)