天天看點

sklearn-adaboost - 努力的孔子

sklearn-adaboost

sklearn中實作了adaboost分類和回歸,即AdaBoostClassifier和AdaBoostRegressor,

AdaBoostClassifier 實作了兩種方法,即 SAMME 和 SAMME.R

AdaBoostRegressor 用的 Adaboost.R2

架構參數

分類與回歸架構參數基本相同

base_estimator:基學習器,預設是cart分類樹和cart回歸樹,如果AdaBoostClassifier選擇SAMME.R算法,基學習器還要支援機率預測,也就是在sklearn中基學習器的預測方法有predict和predict_proba

algorithm:隻在AdaBoostClassifier中有,主要原因是實作了兩種Adaboost分類算法,SAMME和SAMME.R。

兩者的主要差別是弱學習器權重的度量,SAMME用對樣本集分類效果作為弱學習器權重,而SAMME.R使用了對樣本集分類的預測機率大小來作為弱學習器權重。

由于SAMME.R使用了機率度量的連續值,疊代一般比SAMME快,是以AdaBoostClassifier的預設算法algorithm的值也是SAMME.R。

我們一般使用預設的SAMME.R就夠了,但是要注意的是使用了SAMME.R, 則弱分類學習器參數base_estimator必須限制使用支援機率預測的分類器。SAMME算法則沒有這個限制。

loss:隻在AdaBoostRegressor中有,Adaboost.R2算法需要用到。

有線性‘linear’, 平方‘square’和指數 ‘exponential’三種選擇, 預設是線性,一般使用線性就足夠了,除非你懷疑這個參數導緻拟合程度不好。

n_estimator:基學習器的個數,預設50

learning_rate:學習率,預設是1,取值0-1之間,用于正則化,防止過拟合

random_state:随機種子設定。

基學習器參數

預設決策樹,基學習器的參數同單獨的決策樹的參數

參數很多,選幾個調參常用的參數解釋下

max_feature:節點劃分時的最大特征數,預設為None,即考慮所有特征,取log2代表最多考慮log2N個特征,取sqrt或auto代表最多考慮 根号N 個特征,取整數m代表m個特征,取浮點數代表百分比,即 m*N,

如果特征不多,一般用None即可

max_depth:樹的深度,不指定是無限生長

min_samples_split:節點劃分所需的最小樣本數,預設是2

min_samples_leaf :葉子節點最少樣本數,預設是1

min_weight_fraction_leaf:葉子節點最小的樣本權重和,限制葉子節點所有樣本權重和的最小值,如果小于這個值,則會和兄弟節點一起被剪枝。 預設是0,就是不考慮權重問題。

  一般來說,如果我們有較多樣本有缺失值,或者分類樹樣本的分布類别偏差很大,就會引入樣本權重,這時我們就要注意這個值了。

max_leaf_nodes: 最大葉子節點數,防止過拟合,預設是"None”,即不限制最大的葉子節點數。

屬性

1、estimators_ : list of classifiers,拟合的基學習器的集合。

2、classes_ : array of shape = [n_classes],類的标簽。

3、n_classes_ : int,類的數量。

4、estimator_weights_ : array of floats,在提升的總體效果中,每個估計器的權重。

5、estimator_errors_ : array of floats,在提升的總體效果中,每個估計器的分類誤差。

6、feature_importances_ : array of shape = [n_features],如果基學習器支援的話,它表示每個特征的重要性。

方法

decision_function(X):傳回決策函數值(比如svm中的決策距離)

fit(X,Y):在資料集(X,Y)上訓練模型。

get_parms():擷取模型參數

predict(X):預測資料集X的結果。

predict_log_proba(X):預測資料集X的對數機率。

predict_proba(X):預測資料集X的機率值。

score(X,Y):輸出資料集(X,Y)在模型上的準确率。

staged_decision_function(X):傳回每個基分類器的決策函數值

staged_predict(X):傳回每個基分類器的預測資料集X的結果。

staged_predict_proba(X):傳回每個基分類器的預測資料集X的機率結果。

staged_score(X, Y):傳回每個基分類器的預測準确率。

參考資料:

https://blog.csdn.net/hahaha_2017/article/details/79852363

https://www.jianshu.com/p/b936e49509ca

發表于

2019-04-18 11:17 

努力的孔子 

閱讀(1805) 

評論(0) 

編輯 

收藏 

舉報