有监督分类:集成分类(Bagging Boosting RandomForest)
生活随笔
收集整理的這篇文章主要介紹了
有监督分类:集成分类(Bagging Boosting RandomForest)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.前言
集成學習(Ensemble),是指把性能較低的多種弱學習器,通過適當組合形成高性能的強學習器的方法?!叭齻€臭皮匠頂個諸葛亮”這句諺語用來形容集成分類器最合適不過了。這幾年,關于集成分類的研究一直是機器學習領域的一個熱點問題。在這里,只分析了兩個我比較熟悉的集成分類方法。- 對多個弱學習器獨立進行學習的Bagging學習法
- 對多個弱學習器依次進行學習的Boosting學習法
? ?
雖然目前集成學習的思維方式適用于回歸、分類等各種類型的機器學習任務,但這里之談分類問題。
2.剪枝分類方法
剪枝分類是屬于弱分類器的一種單純分類器。剪枝分類是指,對于d次維的輸入變量:任意選定其中的一維,通過將其值與給定的與之相比較來進行分類的線性分類器。即以輸入空間內的坐標軸于朝平面進行正交的方式對模式進行分類,原理如下所示:
剪枝分類器中的“枝”是從樹上剪下來的枝節 剪枝分類器通過一層一層的積累形成樹狀結構成為決策樹分類器 剪枝分類器的自由度很低,怎么都稱不上是優秀的分類器,但是他確實具有計算成本低的優點。具體而言,對于n各訓練樣本,首先根據所選取的維度的數值進行分類。然后,對于i=1,...,n-1,計算順序為i何i+1的訓練樣本在分類時的誤差,使分類誤差最小,從而決定分類邊界。也就是說,剪枝分類器候補解最多只有n-1個,所以通過對所有可能的解進行分類誤差的計算并確定最小值,由此就可以得到最終的解。
3.Bagging學習法
Bagging = Bootstrap Aggregation Bootstrap是指從n個訓練樣本中隨機選取n個,允許重復,生成與原始的訓練樣本集有些許差異的樣本集的方法。 Aggregation:聚集、集成。 在Bagging學習中,首先經過由自助生成虛擬的訓練樣本,并對這些樣本進行學習,然后,反反復復這一過程,對得到的多個分類器的輸出求平均值。具體算法流程如下圖所示:通過上述方法,就可以從大量略有不同的訓練樣本集合,得到多個稍微不同的弱分類器,然后在對這些分類器加以統合,就可以得到穩定可靠的分類器。 下圖展示的是,利用剪枝分類器進行Bagging的實例:
對剪枝分類器進行Bagging學習實例(5000)
Bagging學習中,通過單一的剪枝分類器的組合,可以獲得復雜的分類邊界。 一般而言,像剪枝分類器這樣非常單一的弱分類器,對其進行學習很少會發生過擬合現象,因此Bagging學習的重復次數設置為較大值是比較好的選擇。在這種情況下,因為多個分類器的學習是個并列的過程,因此可以使用多臺計算機并行處理,會使計算效率得到巨大的提升。 剪枝分類器不斷地生長、積累,形成多層級的模型,該模型就稱為“決策器分類器”(如山所述)。對決策樹分類器進行Bagging學習的時候,通過隨機選擇輸入變量中某個維度進行學習,可以大幅度提高分類器的性能,這種方法有個更熟悉的名字:隨機森林學習。
4.Boosting學習法
Boosting學習,首先使用一個原始的學習算法,對訓練樣本:進行普通分類器學習。如果這個原始的學習算法性能不高,就不能對所有訓練樣本進行正確的分類。因此,對于不能正確分類的困難樣本,就加大其權重(反之,對于能正確分類的簡單樣本則減少其權重),再重新進行學習。這樣再次得到的分類器,對原本沒能正確分類的樣本,應該也能在一定程度上進行正確的分類了。然后,在循環多次進行加權學習,慢慢地就可以對所有訓練樣本都進行正確的分類了。 然而另一方面,在進行加權過程中,最開始就能夠正常分類的樣本的權重會慢慢變小,有可能造成建大的樣本反而不能正確分類的情況。因此,Boosting學習應該邊學習邊更新樣本的權重,并把學習過程中得到的所有分類器放在一起,對其可信度進行平均后訓練得到強分類器。 樣本的加權方法多種多樣,最為標準的就是AdaBoost算法,如下圖所示:
Adaboosting學習算法 可以分析一下決定分類器的權重Θj的式子:
根據該式,加權的誤分類率R()越小,其權重Θ就越大,如下圖所示:
Adaboosting學習中,基于加權誤分類率R來確定分類器的權重Θ 下面是對剪枝分類器進行Adaboosting學習的一個例子:
對剪枝分類器進行Adaboosting學習(b=50000)
總結
以上是生活随笔為你收集整理的有监督分类:集成分类(Bagging Boosting RandomForest)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞秋_飞秋2010_飞秋2010下载_飞
- 下一篇: 没事聊聊C++局域网聊天软件