更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
scikit-learn庫之AdaBoost算法
當咱們對Adaboost調參時,主要要對兩部份內容調參,第一部分是對Adaboost的框架進行調參,第二部分是對弱學習器調參。本文主要介紹AdaBoost的兩個模型AdaBoostClassifier
和AdaBoostRegressor
,會詳解介紹AdaBoostClassifier
模型,而後會對比着講解AdaBoostRegressor
模型。算法
接下來將會討論上述二者的區別,因爲是從官方文檔翻譯而來,翻譯會略有偏頗,有興趣的也能夠去scikit-learn官方文檔查看https://scikit-learn.org/stable/modules/classes.html#module-sklearn.ensemble網絡
1、AdaBoostClassifier
1.1 使用場景
AdaBoostClassifier
模型主要解決分類問題,而且它在scikit-learn庫中使用了兩種分類算法的實現,分別是SAMME和SAMME.R。數據結構
1.2 參數
- base_estimator:弱分類器類型,object類型。理論上能夠選擇任何一個弱分類器,不過須要支持樣本權重,通常用決策樹或神經網絡。若是algorithm='SAMME.R',弱分類器應該支持機率預測,即支持predict_proba()方法。若是爲默認值,算法會選擇一個最大深度爲1的決策樹。默認爲None。
- n_estimators:最大迭代次數,int類型。弱學習器的最大迭代次數,若是迭代次數過小,容易欠擬合;若是迭代次數太大,容易過擬合。默認爲50。
- learning_rate:權重縮減係數,float類型。這個參數是正則化項的參數\(\lambda\)。較小的\(\lambda\)須要更多的迭代次數,即learning_rate和n_estimators須要一塊兒調參。默認爲1。
- algorithm:算法類型,str類型。該參數主要用來度量學習器的權重。默認爲'SAMME.R'。
- 'SAMME':使用樣本集分類效果做爲弱分類器權重
- 'SAMME.R':使用樣本集分類的預測機率大小做爲弱分類器權重
- random_state:隨機數種子,int類型。使用後能夠保證隨機數不會隨着時間的變化而變化。默認爲None。
1.3 屬性
- estimators_:list類型。弱學習集合。
- classes_:array類型。類別列表。
- n_classes_:int類型。類別數。
- estimator_weights_:array類型。每一個弱學習的權重。
- estimator_errors_:array類型。每一個弱學習額分類偏差。
- feature_importances_:array類型。返回特徵重要度。
1.4 方法
- decision_function(X):計算樣本X的決策函數值。
- fit(X,y):把數據放入模型中訓練模型。
- get_params([deep]):返回模型的參數,能夠用於Pipeline中。
- predict(X):預測樣本X的分類類別。
- predict_log_proba(X):返回樣本X在各個類別上對應的對數機率。
- predict_proba(X):返回樣本X在各個類別上對應的機率。
- score(X,y[,sample_weight]):基於報告決定係數\(R^2\)評估模型。
- set_prams(**params):建立模型參數。
- staged_decision_function(X):返回每一個階段樣本X的決策函數值。
- staged_predict(X):返回每一個階段樣本X的預測值。
- staged_predict_proba(X):返回每一個階段樣本X在各個類別上對應的機率。
- staged_score(X,y[,sample_weight]):返回每一個階段樣本X的\(R^2\)分數。
2、AdaBoostRegressor
AdaBoostRegressor
模型和AdaBoostClassfier
模型參數上差很少,只是前者通常用來解決迴歸問題,後者用來解決分類問題,預測值處理方式不一樣。而且AdaBoostRegressor
模型在scikit-learn庫中只是用了Adaboost.R2算法實現。框架
AdaBoostRegressor
模型沒有參數'algorithm',而是使用了loss參數,即偏差函數{'linear','square','exponential'}的選擇。dom