[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble;集成方法)

PDF VIDEO

Ensemble

俗称打群架,想要得到很好的performance,基本都要用这一手。
You already developed some algorithms and codes.Lazy to modify them.Ensemble: improving your machine with little modification.

Feamework of Ensemble

揪出一堆classifiers,最好是不同的,互补的,妥当地把他们集合起来,每一个classifier都扮演着不同的角色。

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

Ensemble 有很多不同的方法,是为了对待不同的状况。


Ensemble: Bagging

先回顾一下Bias和Variance

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

A complex model will have large variance.
We can average complex models to reduce variance.
If we average all the f*,is it close to f^.
所以,如果想让一个variance很大的model的error变小,可以训练好多个variance很大的model,然后把它们平均起来,这个方法就叫做Bagging。

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

Sampling N’ examples with replacement,then……

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

This approach would be helpful when your model is complex, easy to overfit. e.g. decision tree.


Decision Tree

决策树很容易过拟合,模型很easy。

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

决策树不仅仅能判断上图的简单问题,还能解决很多复杂问题。
比如……下图这个美少女,把初音的身体代表类别1,其他叫类别0,在这个二维平面上的值,就是input,来output判断是否在初音的身体上。

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

不同树深的实验表现

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

到这里很容易理解,决策树继续深下去完全可以做到training data上的完美,因为大不了它可以给每一个data分一个类,显而易见,这样很容易过拟合。

Decision Tree做 bagging 就是 Random Forest。

Random Forest

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

增加一些随机的特性,使树与树之间更不像。
每一次分出节点时,都要决定一下哪些feature 是可以用的,哪些是不可以用的,避免每一个树都长的很像。
有个bagging方法叫做Out-of-bag。

Out-of-bag(OOB)

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)
[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

bagging的目标不是在 training data 上的到更好的表现,而是让bias减小,得到的function更加平滑(初音的肌肤更加细腻)。

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)



Ensemble: Boosting

Boosting 的目标和 Bagging 是相反的,Bagging是把减弱过拟合,而 Boosting 是即使不能 fit training data 的 model,也要想办法使 performance 更好,Boosting 通过把很多弱的 Classifiers结合起来,帮助得到强的 Classifiers。

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

就好比说,只要一个算法能比瞎猜好一点点,就能通过boosting变成一个超强的算法。
需要注意的是:The classifiers are learned sequentially.

How to obtain different classifiers?

不同的classifier通过在不同的 training data上做训练,不同的 training data 怎么得到呢?

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

Re-weighting 能使sample的次数不是整数而是小数。

Adaboost

The performance of f1 for new weights would be random.

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

举个栗子

Re-weighting Training Data

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

就比如,错的题分值变大,对的题分值变小,75分硬生生整成不及格。
How to find a new training set that fails f1 x ?

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

What is the value of d1?

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

[机器学习入门] 李宏毅机器学习笔记-35(Ensemble part 1;集成方法 part 1)

答对的weight是Z1(1-ε1),答错的weight是Z1ε1,所有答错的weight都会被乘上d1,所有答对的weight都会被除上d1,对错相等列不等式。

Algorithm for AdaBoost

下接 part 2