AdaBoost與隨機森林區別

2021-08-07 16:23:38 字數 1390 閱讀 5324

首先明確乙個大方向:強可學習和弱可學習是等價的。所以,弱可學習方法可以提公升為強可學習方法。adaboost最具代表性。

對於提公升方法,有兩個問題需要回答:

adaboost的做法:

不改變所給的訓練資料,而不斷改變訓練資料權值的分布,使得訓練資料在基本分類器的學習中起不同的作用,這就是adaboost的乙個特點。總的來說,adaboost演算法的步驟為:更新訓練資料權值->在此權值上訓練弱分類器(策略為最小化分類誤差率)->計算分類誤差率(誤分類樣本的權值之和)->計算分類器係數(要用到上一步的分類誤差率)->更新訓練權值->構建基本分類器的線性組合,一直迴圈,直到基本分類器的線性組合沒有誤分類點。

缺點:可理解性差。

推廣:提公升樹

提公升樹是以分類樹或回歸樹為基本分類器的提公升方法。提公升樹被認為是統計學習中效能最好的方法之一。 

提公升樹利用加法模型與前向分布演算法實現學習的優化過程。當損失函式是平方損失和指數損失函式時,每一步的優化是很簡單的。但對一般損失函式而言,往往每一步優化並不那麼容易。針對這一問題,有人提出了梯度提公升演算法。這是利用最速下降法的近似方法,其關鍵是利用損失函式的負梯度在當前模型的值作為回歸問題提公升演算法中的殘差的近似值,擬合乙個回歸樹。梯度提公升決策樹簡稱gbdt。

我先自己瞎說一次。 

森林,顧名思義,好多棵樹。這裡的樹是決策樹。那麼,樹多了能夠幹啥呢?表決啊。每一顆樹都對測試樣本進行決策,最後演算法的結果是所有樹的結果的眾數。 

那麼,「隨機」是幹啥的?隨機森林的隨機有兩層意思。

強調:隨機森林不進行剪枝。決策樹剪枝是因為防止過擬合,而隨機森林的「隨機」已經防止了過擬合,因此不需要剪枝。可以這樣比喻隨機森林演算法:每一棵決策樹就是乙個精通於某乙個窄領域 的專家(因為我們從m個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了很多個精通不同領域的專家,對乙個新的問題(新的輸入數 據),可以用不同的角度去看待它,最終由各個專家,投票得到結果。

補充:隨機森林有2個引數需要人為控制,乙個是森林中樹的數量,一般建議取很大。另乙個是m的大小,推薦m的值為m的均方根。

最後說一下隨機森林的優缺點:

總結:

模型組合(比如說有boosting,bagging等)與決策樹相關的演算法比較多,這些演算法最終的結果是生成n(可能會有幾百棵以上)棵樹,這樣可以大大的減少單決策樹帶來的毛病,有點類似於三個臭皮匠等於乙個諸葛亮的做法,雖然這幾百棵決策樹中的每一棵都很簡單(相對於c4.5這種單決策樹來說),但是他們組合起來確是很強大。

在最近幾年的*****上,如iccv這種重量級的會議,iccv 09年的裡面有不少的文章都是與boosting與隨機森林相關的。模型組合+決策樹相關的演算法有兩種比較基本的形式:隨機森林與gbdt((gradient boost decision tree),其他的比較新的模型組合+決策樹的演算法都是來自這兩種演算法的延伸。

AdaBoost與隨機森林 簡單區別

首先明確乙個大方向 強可學習和弱可學習是等價的。所以,弱可學習方法可以提公升為強可學習方法。adaboost最具代表性。對於提公升方法,有兩個問題需要回答 adaboost的做法 不改變所給的訓練資料,而不斷改變訓練資料權值的分布,使得訓練資料在基本分類器的學習中起不同的作用,這就是adaboost...

隨機森林與Adaboost的區別

隨機森林與adaboost兩者均歸屬於整合學習演算法,隨機森林是bagging方法,adaboost是boosting方法。我們先來比較一下boosting方法和bagging方法的區別 1.在樣本選擇上 boosting每一輪的訓練集是不變的,改變的只是每乙個樣本的權重 bagging採用的是bo...

隨機森林和Adaboost的區別

隨機森林 對於每棵樹而言,隨機且有放回地從訓練集中抽取n個樣本訓練 如果每個樣本的特徵維度為m,指定乙個常數madaboost改變了訓練資料的權值,也就是樣本的概率分布,其思想是將關注點放在被錯誤分類的樣本上,減小上一輪被正確分類的樣本權值,提高那些被錯誤分類的樣本權值。然後,再根據所採用的一些基本...