生活随笔
收集整理的這篇文章主要介紹了
随机森林和GBDT
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一,隨機森林
隨機森林是一個用隨機方式建立的,包含多個決策樹的集成分類器。其輸出的類別由各個樹投票而定(如果是回歸樹則取平均)。假設樣本總數為n,每個樣本的特征數為a,則隨機森林的生成過程如下:
從原始樣本中采用有放回抽樣的方法選取n個樣本;對n個樣本選取a個特征中的隨機k個,用建立決策樹的方法獲得最佳分割點;重復m次,獲得m個決策樹;對輸入樣例進行預測時,每個子樹都產生一個結果,采用多數投票機制輸出。
隨機森林的隨機性主要體現在兩個方面:
數據集的隨機選取:從原始的數據集中采取有放回的抽樣(bagging),構造子數據集,子數據集的數據量是和原始數據集相同的。不同子數據集的元素可以重復,同一個子數據集中的元素也可以重復。待選特征的隨機選取:與數據集的隨機選取類似,隨機森林中的子樹的每一個分裂過程并未用到所有的待選特征,而是從所有的待選特征中隨機選取一定的特征,之后再在隨機選取的特征中選取最優的特征。
以上兩個隨機性能夠使得隨機森林中的決策樹都能夠彼此不同,提升系統的多樣性,從而提升分類性能。
隨機森林的優點:
實現簡單,訓練速度快,泛化能力強,可以并行實現,因為訓練時樹與樹之間是相互獨立的;相比單一決策樹,能學習到特征之間的相互影響,且不容易過擬合;能處理高維數據(即特征很多),并且不用做特征選擇,因為特征子集是隨機選取的;對于不平衡的數據集,可以平衡誤差;相比SVM,不是很怕特征缺失,因為待選特征也是隨機選取;訓練完成后可以給出哪些特征比較重要。
隨機森林的缺點:
在噪聲過大的分類和回歸問題還是容易過擬合;相比于單一決策樹,它的隨機性讓我們難以對模型進行解釋。
二,GBDT (Gradient Boost Decision Tree 梯度提升決策樹)
GBDT是以決策樹為基學習器的迭代算法,注意GBDT里的決策樹都是回歸樹而不是分類樹。Boost是”提升”的意思,一般Boosting算法都是一個迭代的過程,每一次新的訓練都是為了改進上一次的結果。
GBDT的核心就在于:每一棵樹學的是之前所有樹結論和的殘差,這個殘差就是一個加預測值后能得真實值的累加量。比如A的真實年齡是18歲,但第一棵樹的預測年齡是12歲,差了6歲,即殘差為6歲。那么在第二棵樹里我們把A的年齡設為6歲去學習,如果第二棵樹真的能把A分到6歲的葉子節點,那累加兩棵樹的結論就是A的真實年齡;如果第二棵樹的結論是5歲,則A仍然存在1歲的殘差,第三棵樹里A的年齡就變成1歲,繼續學習。
GBDT優點是適用面廣,離散或連續的數據都可以處理,幾乎可用于所有回歸問題(線性/非線性),亦可用于二分類問題(設定閾值,大于閾值為正例,反之為負例)。缺點是由于弱分類器的串行依賴,導致難以并行訓練數據。
三,隨機森林和GBDT的區別:
隨機森林采用的bagging思想,而GBDT采用的boosting思想。這兩種方法都是Bootstrap思想的應用,Bootstrap是一種有放回的抽樣方法思想。雖然都是有放回的抽樣,但二者的區別在于:Bagging采用有放回的均勻取樣,而Boosting根據錯誤率來取樣(Boosting初始化時對每一個訓練樣例賦相等的權重1/n,然后用該算法對訓練集訓練t輪,每次訓練后,對訓練失敗的樣例賦以較大的權重),因此Boosting的分類精度要優于Bagging。Bagging的訓練集的選擇是隨機的,各訓練集之間相互獨立,弱分類器可并行,而Boosting的訓練集的選擇與前一輪的學習結果有關,是串行的。組成隨機森林的樹可以是分類樹,也可以是回歸樹;而GBDT只能由回歸樹組成。組成隨機森林的樹可以并行生成;而GBDT只能是串行生成。對于最終的輸出結果而言,隨機森林采用多數投票等;而GBDT則是將所有結果累加起來,或者加權累加起來。隨機森林對異常值不敏感;GBDT對異常值非常敏感。隨機森林對訓練集一視同仁;GBDT是基于權值的弱分類器的集成。隨機森林是通過減少模型方差提高性能;GBDT是通過減少模型偏差提高性能。
總結
以上是生活随笔為你收集整理的随机森林和GBDT的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。