机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)

集成学习(Ensemble)

1. Bagging

我们考虑当结果的 variance 很大,如果降低 variance。
我们可以考虑“平行宇宙”,不同的training set 中生成不同的模型,然后做平均或者voting。
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)

2. Decision Tree(Review)

我们复习上一节的决策树的概念。
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
来一个有意思的实验,分辨出漫画人物
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
当单棵决策树的深度为20的时候,得到的结果已经很不错了,但是很有可能会出现一个结果:overfitting。 如果解决overfitting呢?我们看随机森林

3. 随机森林(Random Forest)

Decision tree 很容易在训练数据中误差为0,但是产生overfitting。
Random Forest 就是 bagging of decision tree ,是众多决策树的集合。机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
我们使用没有选择的数据做validation数据
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)

4. Boosting

对于Boosting 我们有:

  • 当我们使用机器学习算法得出的分类器的错误率在训练数据中小于50%
  • 我们使用Boosting 可以让最后的错误结果达到0%
    Boosting 的框架结构:
    • 首先获得分类器f1(x)f_{1}(x)
    • 找到另一个分类器f2(x)f_{2}(x) 来帮助f1(x)f_{1}(x)
      - 但是, 如果f2(x)f_{2}(x)f1(x)f_{1}(x)相似,对于结果的帮助不太大
      - 如果我们想让f2(x)f_{2}(x)成为f1(x)f_{1}(x)的补充(我们将怎样去做)
    • 找到第二个分类器f2(x)f_{2}(x)
    • … 最后集成所有的分类器
    • 所有的分类学习都是序列的

1)怎样获取不同的分类器?

  • 在不同的训练数据集中进行训练
  • 获得不同训练数据集的方法
    - 重新抽样数据集
    - 给数据集的数据分配权重
    - 在实作中,仅仅需要修改cost 函数
    机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)

(2) Adaboost的思路(Idea of Adaboost)
思路: 分类器f1(x)f_{1}(x)的错误分类小于50%,我们调整训练数据权重,是的f2(x)f_{2}(x) 中的训练数据权重,在f1(x)f_{1}(x)出错的地方提高,f1(x)f_{1}(x)正确的地方降低。

机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
究竟训练数据的权重增大或者降低多少呢???
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
推导过程:
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
(2) Adaboost算法
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
举例说明:
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)

5.General Formulation of Boosting

机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)

6.Stacking

Voting
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)
机器学习与深度学习系列连载: 第一部分 机器学习(十二)集成学习(Ensemble)