最小径集的算法_机器学习的利器——集成算法
最近在打算法競(jìng)賽的時(shí)候用到了集成算法,效果還不錯(cuò),索性就總結(jié)了一篇集成算法的文章,希望能幫到正在轉(zhuǎn)行的數(shù)據(jù)分析師們。
集成算法核心思想
集成算法的核心思想是通過構(gòu)建并結(jié)合多個(gè)學(xué)習(xí)器來完成學(xué)習(xí)任務(wù),也就是通俗意義上的三個(gè)“臭皮匠”頂個(gè)“諸葛亮”。
關(guān)注問題:1、如何產(chǎn)生一組“個(gè)體學(xué)習(xí)器”?
2、如何利用某種策略將“個(gè)體學(xué)習(xí)器”結(jié)合起來?
集成算法種類
根據(jù)個(gè)體學(xué)習(xí)器的生成方式,最常用的集成算法可以分為兩大類,即個(gè)體學(xué)習(xí)器間存在強(qiáng)依賴關(guān)系(多項(xiàng)式學(xué)習(xí)算法)必須串行生成的序列化算法【Boosting方法,代表算法:Adaboost算法和Boosting tree】,以及個(gè)體學(xué)習(xí)器之間不存在強(qiáng)依賴關(guān)系,通過并行生成的集成算法【bagging方法,代表算法:隨機(jī)森林(Randon Forest)】
Bagging
1、算法原理:
- 從原始樣本集中抽取訓(xùn)練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個(gè)訓(xùn)練樣本(在訓(xùn)練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進(jìn)行k輪抽取,得到k個(gè)訓(xùn)練集。(k個(gè)訓(xùn)練集之間是相互獨(dú)立的)
- 每次使用一個(gè)訓(xùn)練集得到一個(gè)模型,k個(gè)訓(xùn)練集共得到k個(gè)模型。(注:這里并沒有具體的分類算法或回歸方法,我們可以根據(jù)具體問題采用不同的分類或回歸方法,如決策樹、感知器等)
- 對(duì)分類問題:將上步得到的k個(gè)模型采用投票的方式得到分類結(jié)果;對(duì)回歸問題,計(jì)算上述模型的均值作為最后的結(jié)果。(所有模型的重要性相同)
2、采樣策略:
自助采樣法,有放回抽樣n次得到樣本量為n的訓(xùn)練樣本集用于每次基分類器的訓(xùn)練
3、基學(xué)習(xí)器組合策略:
對(duì)于分類問題,基分類器采用投票法得到結(jié)果,對(duì)于回歸問題,通過對(duì)基分類器的預(yù)測(cè)值取平均值得到結(jié)果。
4、算法步驟:
4、隨機(jī)森林
4.1算法原理:
以決策樹作為基學(xué)習(xí)器構(gòu)建bagging集成,并在決策樹的訓(xùn)練過程中引入隨機(jī)屬性選擇。
4.2隨機(jī)性:
隨機(jī)森林的隨機(jī)性體現(xiàn)在樣本的隨機(jī)性和特征選擇的隨機(jī)性
Boosting
1、算法原理:
通過改變訓(xùn)練樣本的權(quán)重,學(xué)習(xí)多個(gè)分類器,并將這些分類器進(jìn)行線性組合,提升分類性能。大多數(shù)的提升方法都是改變訓(xùn)練數(shù)據(jù)的概率分布(權(quán)值),針對(duì)不同的訓(xùn)練數(shù)據(jù)分布調(diào)用弱分類算法學(xué)習(xí)一系列弱分類器。
2、Adaboost
2.1算法原理:
- 提高前一輪弱分類器錯(cuò)誤分類樣本的權(quán)值,降低正確分類樣本的權(quán)值
- 弱分類器的組合,采用加權(quán)多數(shù)表決的方法,具體地,加大分類誤差小的弱分類器的權(quán)值,使其在表決中起大作用,減小分類誤差大的弱分類器權(quán)值
2.2算法步驟:
2.3機(jī)器學(xué)習(xí)視角的解釋:
ModelSet:加法模型,基學(xué)習(xí)模型的線性組合
LossFunction:指數(shù)損失函數(shù)【分類問題】
優(yōu)化策略:前向分步算法
3、提升樹
3.1核心思想:
以分類樹或回歸樹為基本分類器的提升方法,加法模型,與前向分步算法,以決策樹為基分類器的提升方法,串聯(lián)決策樹模型,第一個(gè)決策樹擬合具體數(shù)學(xué),以后的決策樹擬合前一個(gè)決策樹的殘差。
3.2算法步驟:
3.3機(jī)器學(xué)習(xí)視角的解釋:
ModelSet:加法模型,基學(xué)習(xí)模型的線性組合
LossFunction:指數(shù)損失函數(shù)【分類問題】、平方誤差損失函數(shù)【回歸問題】
優(yōu)化策略:前向分步算法
常見面試問題
1、bagging與boosting的區(qū)別
- 樣本選擇上:Bagging:訓(xùn)練集是在原始集中有放回選取的,從原始集中選出的各輪訓(xùn)練集之間是獨(dú)立的。Boosting:每一輪的訓(xùn)練集不變,只是訓(xùn)練集中每個(gè)樣例在分類器中的權(quán)重發(fā)生變化。而權(quán)值是根據(jù)上一輪的分類結(jié)果進(jìn)行調(diào)整。
- 樣例權(quán)重:Bagging:使用均勻取樣,每個(gè)樣例的權(quán)重相等Boosting:根據(jù)錯(cuò)誤率不斷調(diào)整樣例的權(quán)值,錯(cuò)誤率越大則權(quán)重越大。
- 預(yù)測(cè)函數(shù):Bagging:所有預(yù)測(cè)函數(shù)的權(quán)重相等。Boosting:每個(gè)弱分類器都有相應(yīng)的權(quán)重,對(duì)于分類誤差小的分類器會(huì)有更大的權(quán)重。
- 并行計(jì)算:Bagging:各個(gè)預(yù)測(cè)函數(shù)可以并行生成
Boosting:各個(gè)預(yù)測(cè)函數(shù)只能順序生成,因?yàn)楹笠粋€(gè)模型參數(shù)需要前一輪模型的結(jié)果。
2、隨機(jī)森林與GDBT(提升樹)的區(qū)別:
- 隨機(jī)森林采用的bagging思想,而GBDT采用的boosting思想。這兩種方法都是Bootstrap思想的應(yīng)用,Bootstrap是一種有放回的抽樣方法思想。雖然都是有放回的抽樣,但二者的區(qū)別在于:Bagging采用有放回的均勻取樣,而Boosting根據(jù)錯(cuò)誤率來取樣(Boosting初始化時(shí)對(duì)每一個(gè)訓(xùn)練樣例賦相等的權(quán)重1/n,然后用該算法對(duì)訓(xùn)練集訓(xùn)練t輪,每次訓(xùn)練后,對(duì)訓(xùn)練失敗的樣例賦以較大的權(quán)重),因此Boosting的分類精度要優(yōu)于Bagging。Bagging的訓(xùn)練集的選擇是隨機(jī)的,各訓(xùn)練集之間相互獨(dú)立,弱分類器可并行,而Boosting的訓(xùn)練集的選擇與前一輪的學(xué)習(xí)結(jié)果有關(guān),是串行的。
- 組成隨機(jī)森林的樹可以是分類樹,也可以是回歸樹;而GBDT只能由回歸樹組成。
- 組成隨機(jī)森林的樹可以并行生成;而GBDT只能是串行生成。
- 對(duì)于最終的輸出結(jié)果而言,隨機(jī)森林采用多數(shù)投票等;而GBDT則是將所有結(jié)果累加起來,或者加權(quán)累加起來。
- 隨機(jī)森林對(duì)異常值不敏感;GBDT對(duì)異常值非常敏感。
- 隨機(jī)森林對(duì)訓(xùn)練集一視同仁;GBDT是基于權(quán)值的弱分類器的集成。
- 隨機(jī)森林是通過減少模型方差提高性能;GBDT是通過減少模型偏差提高性能。
總結(jié)
以上是生活随笔為你收集整理的最小径集的算法_机器学习的利器——集成算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 希奥岛的屠杀是谁画的呢?
- 下一篇: 静态路由_【零基础学云计算】静态路由!静