[Day 13] 整体学习 (Ensemble Learning)

整体学习 (Ensemble Learning)

今日学习目标

  • 了解整体学习
    • 何谓整体学习?
  • 三种不同的整体学习
    • Bagging、Boosting、Stacking

何谓整体学习?

整体学习 (Ensemble Learning) 又称集成学习、整合学习,指的是以一个系统化的方式将好几个监督式学习的模型结合在一起,目的是希望结合众多的模型产生一个更强大的模型。在许多科学竞赛中 Ensemble Learning 在实务上是非常有效的提升预测准确率。依照 Ensemble 的处理方式的不同,我们可以将它分为三类。第一类为 Bagging,第二类为 Boosting,第三类为 Stacking。

  • Bagging:
    • Random forest
  • Boosting:
    • AdaBoost
    • Gradient Boosting
    • XGBoost
  • Stacking

Bagging 自助重抽总合法

Bagging 指的是我们把训练资料重新采样产生不同组的训练资料,如下图为整体学习 Bagging 之架构。根据不同组的训练资料即使我们用同一种演算法我们也会得到不一样的模型,他的树是各自独立因此可以平行化处理。代表的方法是随机森林,随机森林除了 Bagging 之外,还有另一个随机的因素是每一棵树都只能看到一部分的特徵,这些特徵是由随机决定的。

https://ithelp.ithome.com.tw/upload/images/20210925/20107247LGrz6oSBEX.png

Boosting 推升法

Boosting 则会根据每一笔训练资料的难或简单给予不同的权重。如下图所示,首先我们会训练一个 base learner 然後根据 base learner 预测的结果对或错来分辨该笔资料是一个简单还是困难的资料。对於难的资料我们加强他的权重再训练一个新的分类器或回归器。我们目标是希望训练後,新的模型在这些难的资料能够表现得更好。我们不断重复这些步骤,不断地加入新的 base learner,且新的 base learner 把过去表现不好的地方改善,这就是 Boosting 精神。因此 Boosting 的每一棵树是互相有关联性的做完第一棵树可能进行下一棵树的生成。代表的方法有 AdaBoost、Gradient Boosting,两种都是产生非常多棵的树,但是每一棵都是很简单的决策树。Boosting 目标是希望新的树可以针对旧的树预测不太好的部分做一些补强。所以最终我们要把这麽多简单的树合再一起才能当最後的预测。

https://ithelp.ithome.com.tw/upload/images/20210925/20107247Q0Nwbm6EUG.png

Stacking 堆叠法

下图为整体学习 Stacking 架构。Stacking 首先产生出 m 个模型,彼此间并互相无关连,例如第一个模型为 logistic regression 第二个为决策树。训练完 m 个模型後,我们要把这 m 个模型合并在一起。合并的方式是我们再另外训练一个模型,这个模型把m个模型的输出当成新的模型的输入因此我们会根据这m个特徵利用整体学习其中的演算法来学习一个模型并预测最终结果。

https://ithelp.ithome.com.tw/upload/images/20210925/20107247mkHxwLq0mk.png


区域学习 (Patch Learning)

区域学习 (Patch Learning , PL) 於 2019 年由美国南加州大学 Jerry M. Mendel 与 Dongrui Wu 所提出的一种机器学习方法。所谓的区域学习是能够有效的掌握表现不好的区间,经过训练一个全域的模型後并任一机器学习模型找出这些误差大的 Patch,透过多个断点的学习我们会得到 Global Model、Patch1 Model、Patch2 Model…Patch(n) Model。然而在机器学习中我们有很多种方法可以改善我们的模型,例如加深和加宽神经网路或是添加一些非线性的激励函数来最佳化我们的模型。或是使用整体学习的方法集合许多策略,最终形成一个强学习器并改善某些区域的弱点。下图为一个简单的区域学习预测流程图。在使用区域学习模型前我们要找出该段输入所对应的 Patch,若该区间刚好落於所划定的范围内,这些输入就将会对应到相对应的区域学习,否则就会使用全域模型进行预测。

https://ithelp.ithome.com.tw/upload/images/20210925/20107247oTmvOlRuhx.png

区域学习机制包括三个部分,简要说明如下: (1)使用所有训练资料训练一个全域模型; (2)挑出影响错误率较高的资料,再放入个别的 Patch 模型进行区域训练; (3)自训练资料中去掉已经被局部模型用过的资料,再使用剩下的所有资料更新全域模型。当输入资料进来时,首先判断这个输入是不是在刚刚记下的 Patch 模型中,如果是的话,就执行 Patch 模型。如果不是的话,执行更新後的全域模型。

https://ithelp.ithome.com.tw/upload/images/20210925/20107247dXJ7dUoLbf.png

本系列教学内容及范例程序都可以从我的 GitHub 取得!


<<:  Lisp 语言和你 SAY HELLO!!

>>:  [Day10] 团队管理:人才定位与任务给予

[Day18] Null byte Injection

前言 %00 正文 概念 Null byte Injection是一种将Null Byte(如%00...

【不是铁人赛】Day 02|虚拟货币价格预测(二)LSTM与GRU。

友:你要不要一起参加铁人赛? 我:好啊! (几天後) 我:乾我不小心忘了报名...... ----...

Day 5 - 断点设定

Tailwindcss 使用 normalize.css 来当作初始化样式,和 Bootstrap...

apt-get install error E: Sub-process /usr/bin/dpkg returned an error code (1)

Environmnent: Ubuntu 18.04.1 , 5.4.0-80-generic wh...

DAY29 - 做专案的心态

工作到现在以来,从乙方公司到成为公司内部的乙方单位,工作的历程比较倾向是用一个个专案堆叠而成。倒数第...