天天看點

scikit-learn中的随機森林模型

和決策樹模型類似,scikit-learn中的随機森林模型也提供了基于普通Decision Tree的Random Forest學習器和基于随機化Extra Tree的ExtraTrees學習器。

scikit-learn中的随機森林模型

鑒于Decision Tree和Extra Tree差别甚小,本文以Random Forest為例進行介紹。

1. 模型的主要參數

在Random Forest中,存在兩大類型的參數,分别為架構參數和單棵決策樹參數

其中,單棵決策樹參數參照先前介紹的決策樹模型,而架構參數包括:

模型參數 Parameter含義 RandomForestClassifier RandomForestRegressor
n_estimators 子樹數量 随機森林中決策樹的數量,其值越大模型的表現越優秀,但計算量也越大
bootstrap 有無放回采樣 預設為True,即采用有放回式采樣,進而可以不劃分驗證集,用這些袋外資料進行驗證(見參數oob_score)。而在Extratrees中該值預設為False,即選取全量樣本進行訓練。
oob_score 袋外評分 即是否采用袋外資料進行模型的驗證評估,預設為True。

2. 模型的主要方法

随機森林模型中涉及到衆多子決策樹的綜合評估,是以其無法像普通Decision Tree模型一樣提供

apply

方法API。

模型方法 含義 備注
fit 模型訓練 支援Decison Tree中的sample_weight參數
predict 預測結果 傳回綜合各子決策樹結果後的分類值或者回歸值,分類值為比重最高的分類,回歸值為葉子節點均值的平均值
predict_proba 分類預測機率值 僅在classifier中有該方法,傳回各分類的機率值
predict_log_proba 分類預測對數值 僅在classifier中有該方法,傳回各分類的對數機率值

3. 模型的主要屬性

模型屬性 含義 備注
estimators_ 估計器清單 傳回由n_estimators個子決策樹構成的清單
classes_ 樣本分類結果 适用于classifer的單分類結果,傳回各樣本的分類預測值
n_classes_ 樣本分類結果 适用于classifer的多分類結果,傳回各樣本的多分類預測值
feature_importances_ 特征權重 基于gini數得到各特征的特征重要性
oob_score_ 含義 袋外資料的總的評估結果
oob_decision_function_ 含義 每個袋外資料的評估結果

注意,相較于單棵決策樹的feature_importances_,随機森林模型中的feature_importances_是對各子決策樹結果的平均。

4. 模型的可視化

不同于單棵決策樹可以進行有效的可視化,随機森林模型由于子學習器衆多,是以無法進行有效的可視化。即使可以對其中的每棵決策樹進行單獨的可視化,但考慮到随機性的影響,意義并不大。

5. 模型的調參

(1)調整n_estimators參數

(2)按照決策樹模型的調參順序進行調整,詳見決策樹模型。

繼續閱讀