[機(jī)器學(xué)習(xí)入門] 李宏毅機(jī)器學(xué)習(xí)筆記-35(Ensemble溪猿;集成方法)
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讲弄,最好是不同的,互補(bǔ)的依痊,妥當(dāng)?shù)匕阉麄兗掀饋肀艹恳粋€(gè)classifier都扮演著不同的角色。
Ensemble 有很多不同的方法胸嘁,是為了對(duì)待不同的狀況瓶摆。
Ensemble: Bagging
先回顧一下Bias和Variance
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^.
所以,如果想讓一個(gè)variance很大的model的error變小性宏,可以訓(xùn)練好多個(gè)variance很大的model群井,然后把它們平均起來,這個(gè)方法就叫做Bagging毫胜。
Sampling N’ examples with replacement书斜,then……
This approach would be helpful when your model is complex, easy to overfit. e.g. decision tree.
Decision Tree
決策樹很容易過擬合,模型很easy酵使。
決策樹不僅僅能判斷上圖的簡單問題荐吉,還能解決很多復(fù)雜問題。
比如……下圖這個(gè)美少女口渔,把初音的身體代表類別1样屠,其他叫類別0,在這個(gè)二維平面上的值搓劫,就是input瞧哟,來output判斷是否在初音的身體上混巧。
不同樹深的實(shí)驗(yàn)表現(xiàn)
到這里很容易理解枪向,決策樹繼續(xù)深下去完全可以做到training data上的完美,因?yàn)榇蟛涣怂梢越o每一個(gè)data分一個(gè)類咧党,顯而易見秘蛔,這樣很容易過擬合。
Decision Tree做 bagging 就是 Random Forest傍衡。
Random Forest
增加一些隨機(jī)的特性深员,使樹與樹之間更不像。
每一次分出節(jié)點(diǎn)時(shí)蛙埂,都要決定一下哪些feature 是可以用的倦畅,哪些是不可以用的,避免每一個(gè)樹都長的很像绣的。
有個(gè)bagging方法叫做Out-of-bag叠赐。
Out-of-bag(OOB)
bagging的目標(biāo)不是在 training data 上的到更好的表現(xiàn)欲账,而是讓bias減小,得到的function更加平滑(初音的肌膚更加細(xì)膩)芭概。
Ensemble: Boosting
Boosting 的目標(biāo)和 Bagging 是相反的赛不,Bagging是把減弱過擬合,而 Boosting 是即使不能 fit training data 的 model罢洲,也要想辦法使 performance 更好踢故,Boosting 通過把很多弱的 Classifiers結(jié)合起來,幫助得到強(qiáng)的 Classifiers惹苗。
就好比說殿较,只要一個(gè)算法能比瞎猜好一點(diǎn)點(diǎn),就能通過boosting變成一個(gè)超強(qiáng)的算法桩蓉。
需要注意的是:The classifiers are learned sequentially.
How to obtain different classifiers?
不同的classifier通過在不同的 training data上做訓(xùn)練斜脂,不同的 training data 怎么得到呢?
Re-weighting 能使sample的次數(shù)不是整數(shù)而是小數(shù)触机。
Adaboost
The performance of f1 for new weights would be random.
舉個(gè)栗子
Re-weighting Training Data
就比如帚戳,錯(cuò)的題分值變大,對(duì)的題分值變小儡首,75分硬生生整成不及格片任。
How to find a new training set that fails f1 x ?
What is the value of d1?
答對(duì)的weight是Z1(1-ε1),答錯(cuò)的weight是Z1ε1,所有答錯(cuò)的weight都會(huì)被乘上d1蔬胯,所有答對(duì)的weight都會(huì)被除上d1对供,對(duì)錯(cuò)相等列不等式。
Algorithm for AdaBoost
下接 part 2