隨機森林和Adaboost的對比


隨機森林算法:

隨機森林利用隨機的方式將許多決策樹組合成一個森林,每個決策樹在分類的時候決定測試樣本的最終類別

在Bagging策略的基礎上進行修改后的一種算法

從樣本集中用Bootstrap采樣選出n個樣本;

從所有屬性中隨機選擇K個屬性,選擇出最佳分割屬性作為節點創建決策樹;

重復以上兩步m次,即建立m棵決策樹;

這m個決策樹形成隨機森林,通過投票表決結果決定數據屬於那一類

RF算法在實際應用中具有比較好的特性,應用也比較廣泛,主要應用在:分類、

回歸、特征轉換、異常點檢測等。常見的RF變種算法如下:

Extra Tree

Totally Random Trees Embedding(TRTE)

Isolation Forest

#Import Lib
From sklearn.ensemble import RandomForestClassifier
#use RandomForestRegressor for regression problem
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create Random Forest object
model= RandomForestClassifier(n_estimators=1000)
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)

 

RF的主要優點:

  1. 訓練可以並行化,對於大規模樣本的訓練具有速度的優勢;

  2. 由於進行隨機選擇決策樹划分特征列表,這樣在樣本維度比較高的時候,仍然具有比較高的訓練性能;

  1. 給以給出各個特征的重要性列表;

  2. 由於存在隨機抽樣,訓練出來的模型方差小,泛化能力強;

  3. RF實現簡單;

  4. 對於部分特征的缺失不敏感。

RF的主要缺點:

  1. 在某些噪音比較大的特征上,RF模型容易陷入過擬合;

  2. 取值比較多的划分特征對RF的決策會產生更大的影響,從而有可能影響模型的效果

==隨機森林參數==

 

Adaboost算法

基於數據集多重抽樣的分類器

 Adaboost 是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)

 Adaboost 算法本身是通過改變數據分布來實現的,它根據每次訓練集中每個樣本的分類是否正確,以及上次的總體分類的准確率,來確定每個樣本的權值。將修改過權值的新數據送給下層分類器進行訓練,最后將每次得到的分類器融合起來,作為最后的決策分類器

  • Adaptive Boosting是一種迭代算法。每輪迭代中會在新訓練集上產生一個新的學習器,然后使用該學習器對所有樣本進行預測,以評估每個樣本的重要性 (Informative)。換句話來講就是,算法會為每個樣本賦予一個權重,每次用訓練好的學習器標注/預測各個樣本,如果某個樣本點被預測的越正確,則將其權重降低;否則提高樣本的權重。權重越高的樣本在下一個迭代訓練中所占的比重就越大,也就是說越難區分的樣本在訓練過程中會變得越重要;

  • 整個迭代過程直到錯誤率足夠小或者達到一定的迭代次數為止

  • Adaboost算法將基分類器的線性組合作為強分類器,同時給分類誤差率較小的基分類器以更大的權值,給分類誤差率較大的基分類器以小的權重值。

 Adaboost 算法核心思想

“關注”被錯分的樣本,“器重”性能好的弱分類器實現:

  • 不同的訓練集:調整樣本權重

  • “關注”:增加錯分樣本權重

  • “器重”:好的分類器權重大

  • 樣本權重間接影響分類器權重:樣本權重-分類器-性能(錯誤率)-分類器的權重

 adaboost算法構造過程

  1. 假設訓練數據集

  2. 初始化訓練數據權重分布

  3. 使用具有權值分布Dm的訓練數據集學習,得到基本分類器

  4. 計算Gm(x)在訓練集上的分類誤差

  5. 計算Gm(x)模型的權重系數αm

  6. 權重訓練數據集的權值分布

  7. 權重歸一化

  8. 構建基本分類器的線性組合

  9. adaboost參數

     adaboost優缺點

    Adaboost 算法優缺點

    優點:

    1)Adaboost 是一種有很高精度的分類器

    2)可以使用各種方法構建子分類器,Adaboost 算法提供的是框架

    3)當使用簡單分類器時,計算出的結果是可以理解的,而弱分類器構造極其簡單

    4)簡單,不用做特征篩選

    AdaBoost的優點如下:

    • 可以處理連續值和離散值;

    • 解釋強,結構簡單。

    AdaBoost的缺點如下:

    • 對異常樣本敏感,異常樣本可能會在迭代過程中獲得較高的權重值,最終影響模型效果。

    Adaboost 算法應用場景

    1)用於二分類應用場景

    2)用於做分類任務的 baseline--無腦化,簡單,不用調分類器

    3)Boosting 框架用於對 badcase 的修正--只需要增加新的分類器,不需要變動原有分類器

     

     

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM