Python數(shù)據(jù)分析與機(jī)器學(xué)習(xí)24-集成算法與隨機(jī)森林

一. 集成算法概述

目的:
讓機(jī)器學(xué)習(xí)效果更好,單個(gè)不行,群毆走起

分類:

  1. Bagging
    訓(xùn)練多個(gè)分類器取平均


    image.png
  2. Boosting
    從弱學(xué)習(xí)器開始加強(qiáng),通過加權(quán)來進(jìn)行訓(xùn)練
    (加入一棵樹,要比原來強(qiáng))


    image.png
  3. Stacking
    聚合多個(gè)分類或回歸模型(可以分階段來做)

二. Bagging模型

全稱:bootstrap aggregation(說白了就是并行訓(xùn)練一堆分類器)
最典型的代表就是隨機(jī)森林啦

隨機(jī):
數(shù)據(jù)采樣隨機(jī),特征選擇隨機(jī)

森林:
很多個(gè)決策樹并行放在一起

image.png

隨機(jī)森林:
構(gòu)造樹模型:

image.png

由于二重隨機(jī)性,使得每個(gè)樹基本上都不會(huì)一樣,最終的結(jié)果也會(huì)不一樣

Bagging模型:
樹模型:

image.png

image.png

之所以要進(jìn)行隨機(jī),是要保證泛化能力,如果樹都一樣,那就沒意義了!

隨機(jī)森林優(yōu)勢:
它能夠處理很高維度(feature很多)的數(shù)據(jù),并且不用做特征選擇
在訓(xùn)練完后,它能夠給出哪些feature比較重要
容易做成并行化方法,速度比較快
可以進(jìn)行可視化展示,便于分析

image.png

Bagging模型:
KNN模型:

image.png

image.png

KNN就不太適合,因?yàn)楹茈y去隨機(jī)讓泛化能力變強(qiáng)!

樹模型:


image.png

理論上越多的樹效果會(huì)越好,但實(shí)際上基本超過一定數(shù)量就差不多上下浮動(dòng)了

三. Boosting模型

典型代表:
AdaBoost,Xgboost
Adaboost會(huì)根據(jù)前一次的分類效果調(diào)整數(shù)據(jù)權(quán)重

解釋:
如果某一個(gè)數(shù)據(jù)在這次分錯(cuò)了,那么在下一次我就會(huì)給它更大的權(quán)重

最終的結(jié)果:
每個(gè)分類器根據(jù)自身的準(zhǔn)確性來確定各自的權(quán)重,再合體

Adaboost工作流程:
每一次切一刀!
最終合在一起
弱分類器這就升級了!

image.png

四. Stacking模型

堆疊:
很暴力,拿來一堆直接上(各種分類器都來了)
可以堆疊各種各樣的分類器(KNN,SVM,RF等等)

分階段:
第一階段得出各自結(jié)果,第二階段再用前一階段結(jié)果訓(xùn)練
為了刷結(jié)果,不擇手段!

image.png

堆疊在一起確實(shí)能使得準(zhǔn)確率提升,但是速度是個(gè)問題
集成算法是競賽與論文神器,當(dāng)我們更關(guān)注于結(jié)果時(shí)不妨來試試!

參考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容