1. 程式人生 > >整合學習與提升方法

整合學習與提升方法

提升:在隨機森林中我們通過構建T1 ...... Tn的的Ñ棵決策樹然後取這Ñ棵決策樹的平均得到一個總的森林,由於這是對每棵樹取平均,不存在哪棵樹重要,哪棵不重要的說法。現在我們換一種思路,給出這ñ棵樹的權值,即第T(k + 1)= a1T1 + ...... + akTk,這棵樹的係數第(k + 1)應該是什麼。那麼這就不是簡單的做平均,而是做提升。也就是說提升所要解決的問題是ñ棵決策樹得到下一棵決策樹。而隨機森林中的決策樹是分別取樣,是相對獨立的。然而提升的做法可以讓權值有一個不同的值,而不是平均,就是說不需要每一個人都去投票,都取1 / m的權值,而是有些重要的,有些相對不太重要的。舉個例子來說,比如要對一些樣本進行分類,有些樣本可能會分錯,那麼在下一次分類的時候就對

這些分錯的樣本的權值加大一點,分對的調小一點,如此下去直 到最合適。

它的基本思路是每一步都會產生一個弱預測模型(比如決策樹),然後給個權值累加到總模型當中。那麼怎麼樣來做呢,我們預先給一個損失函式,然後沿著損失函式梯度的方向來給出新的樹,這種做法稱為梯度的提升。這類似於最開始先給定一個目標函式,然後呢這個目標函式想找個東西,比如這些弱分類器是我們想找的東西,它的提升思路就是我們每次都沿著負梯度方向給一個足夠小的權值和一個當前狀態下的一個基本分類器把它累加到現在的這個裡邊去,不斷地做這樣的事情。

GBDT:我們一顆樹其實最本質是把這些葉子拿出來,中間節點對我們樣本分類沒有什麼影響,而這些葉子節點是有一些權值的

,所以說它屬於哪一個葉子,以及哪一個葉子的權值其實是這顆樹本身。哪一個樣本屬於哪一個葉子節點它就標為1,不屬於它就標為0,然後這個葉子的輸出值是誰,然後就加起來,所以葉子是這棵樹最重要的部分。

ADBoost:除了對樹給定不同的權值,也對樣本給定不同的權值

整合學習通過構建併合並多個機器學習來完成學習任務。

整合學習的主要問題是得到若干個個體學習器以及如何選擇一種結合策略將這些個體學習器集合成一個強學習器。

將分對的樣本權值調小,錯的調大。

提高是通過改變訓練樣本的權重,學習多個分類器,並將這些分類器進行線性組合,提高分類的效能。減少偏差。Bagging可減少方差。

AdaBoost

我們除了去來做對於這種樹的權值計算以外我們能不能對樣本也去給定它的不同的權值係數,AdaBoost演算法會對資料和分類器同時做調整。

設訓練資料集T=\left \{ (x_{1},y_{1}),(x_{2},y_{2},......,(x_{n},y_{n})) \right \}

第一次做的叫D_{1}=(w_{11},w_{12},......,w_{1n})

第Ñ次做的叫D_{n}=(w_{n1},w_{n2},......,w_{nn})

因為沒有任何的先驗所以w全部初始化為w_{ij}=\frac{1}{n}

對在每一輪如何改變訓練資料的權值或概率分佈的問題處理上的做法是提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。針對如何將多個弱分類器組合成一個強分類器的做法是加權多數表決的方法,即加大分類錯誤率小的弱分類器的權值,使其在表決中起較大的作用。總體來說就是加大分類錯誤率小的弱分類器的權值,使其在表決中起較大的作用,減小分類錯誤率大的弱分類器的權值,使其在表決中其較小的作用。