scikit learn中的隨機森林模型

2021-10-01 09:37:08 字數 1772 閱讀 5237

和決策樹模型類似,scikit-learn中的隨機森林模型也提供了基於普通decision tree的random forest學習器和基於隨機化extra tree的extratrees學習器。

鑑於decision tree和extra tree差別甚小,本文以random forest為例進行介紹。

1. 模型的主要引數

在random forest中,存在兩大型別的引數,分別為框架引數單棵決策樹引數

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

模型引數

parameter含義

randomforestclassifier

randomforestregressor

n_estimators

子樹數量

隨機森林中決策樹的數量,其值越大模型的表現越優秀,但計算量也越大

bootstrap

有無放回取樣

預設為true,即採用有放回式取樣,從而可以不劃分驗證集,用這些袋外資料進行驗證(見引數oob_score)。而在extratrees中該值預設為false,即選取全量樣本進行訓練。

oob_score

袋外評分

即是否採用袋外資料進行模型的驗證評估,預設為true。

2. 模型的主要方法

模型方法

含義備註

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)按照決策樹模型的調參順序進行調整,詳見決策樹模型。

scikit learn 隨機森林

在隨機森林中,集合中的每棵樹都是根據訓練集中的替換樣本 即引導樣本 構建的。此外,在樹的構造過程中拆分每個節點時,可以從所有輸入要素或size的隨機子集中找到最佳拆分 max features。這兩個隨機性 的目的是減少森林估計量的方差。實際上,單個決策樹通常表現出較高的方差並且傾向於過度擬合。森林...

scikit learn 中的隨機梯度下降法

def fit sgd self,x train,y train,n iters 5,t0 5,t1 50 根據訓練資料集x train,y train,使用梯度下降法訓練linear regression模型 assert x train.shape 0 y train.shape 0 the s...

《scikit learn》隨機森林之回歸

今天我們學習下隨機森林做回歸的用法 話不多說直接上測試 看的更加清晰,總體上和回歸樹是一樣的使用流程 from sklearn.datasets import load boston from sklearn.model selection import cross val score from s...