隨機森林模型調參方法

2021-08-20 01:15:33 字數 2762 閱讀 6452

列印隨機森林學習器的預設引數配置:

1、bootstrap=true

2、criterion='mse'

3、max_depth=none

4、max_features='auto'

5、max_leaf_nodes=none

6、min_impurity_decrease=0.0

7、min_impurity_split=none

8、min_samples_leaf=1

9、min_samples_split=2

10、min_weight_fraction_leaf=0.0

11、n_estimators=10

12、n_jobs=1

13、oob_score=false

14、random_state=none

15、verbose=0

16、warm_start=false

(1)random_state(隨機發生器種子數)

如果是int,random_state是隨機數發生器使用的種子; 如果是randomstate例項,random_state是隨機數生成器; 如果為none,則隨機數生成器是np.random使用的randomstate例項。

(1)max_features(最大特徵數)

劃分特徵時的最多特徵數,可以是多種型別的值。預設為「none」,即劃分時考慮所有特徵數。

其他值:「log2」——最多考慮log2n個特徵;「sqrt」/「auto」——最多考慮sqrt(n)個特徵;int(n)——可填任意大於1且不大於特徵數量的整數。

一般而言,當樣本特徵數較少(<50)時,使用預設配置即可。

(2)max_depth(決策樹最大深度)

預設為「none」,即決策樹建立子樹時不限制子樹的深度。在樣本量較少或特徵數較少的情況下可以使用預設配置。否則,推薦取值10-100之間。

(3)min_samples_split(內部結點再劃分所需最小樣本數)

當某節點的樣本數少於min_samples_split時,不會繼續再嘗試選擇最優特徵來進行劃分。 預設為2,如果樣本量不大,不需要管這個值。如果樣本量數量級非常大,則推薦增大該值。

(4)min_samples_leaf(葉結點最少樣本數)

當某葉結點數目小於樣本數,則和兄弟結點一起被剪枝。預設為1。當樣本量不大時,可以使用預設配置。否則推薦增大該值。

(5)min_weight_fraction_leaf(葉結點最小樣本權重和)

該值限制了葉結點所有樣本權重和的最小值,如果小於該值,則會和兄弟節點一起被剪枝。 預設為0,即不考慮權重問題。當樣本存在較多缺失值,或分類樹樣本的分布類別偏差很大時,將引入樣本權重,此時需要考慮該值。

(6)max_leaf_nodes(最大葉結點數)

該值能夠防止過擬合,預設為「none」,即不限制最大葉結點數。但特徵不多時,使用預設配置即可。否則需要設定該值,具體數值通過交叉驗證獲得。

(7)min_impurity_split(結點劃分最小不純度)

該值限制了決策樹的增長,當某結點的不純度小於閾值,則該結點不再生成子結點,一般推薦使用預設值1e-7。

bagging框架中各弱學習器之間沒有依賴,因此隨機森林的調參難度低於梯度提公升樹。

(1)n_estimators(弱學習器最大迭代次數)

即弱學習器的個數。一般而言,該值太小易發生欠擬合,太大則成本增加且效果不明顯。一般選取適中的數值,預設為10。

(2)oob_score (是否採用袋外樣本評價模型)

預設為false。推薦使用true,因為這樣可以反映模型擬合後的泛化能力。

(3)criterion(特徵評價標準)

分類和回歸模型的損失函式不同:分類模型預設為基尼指數,也可選擇資訊增益;回歸模型預設為均方差(mse),也可選擇絕對值差(mae)。一般而言選擇預設配置即可。

一般採用網格搜尋法優化超引數組合。這裡將調參方法簡單歸納為三條:1、分塊調參(不同框架引數分開調參);2、一次調參不超過三個引數;3、逐步縮小引數範圍。這裡以n_estimators引數為例(省略資料和模型的匯入):

#匯入網格搜尋模組

from sklearn.model_selection import gridsearchcv

rfr_best = randomforestregressor()

params =

gs = gridsearchcv(rfr_best, params, cv=4)

gs.fit(x_train,y_train)

#查驗優化後的超引數配置

print(gs.best_score_)

print(gs.best_params_)

python 隨機森林調參 隨機森林調參

前兩天寫了個scikit learn初步學習,今天沒事又照著寫了個rf模型的,剛開始還不懂這個python列表推導式,想了想還是挺好用的。然後用了gridsearchcv這個引數優化類,遍歷多種引數組合 也就是暴搜最優引數組合 通過交叉驗證確定最佳效果引數。所以優化完可能對訓練資料擬合更差,泛化能力...

隨機森林模型

模型構建思想 隨機取樣 隨機特徵 多棵決策樹 多數投票 分類 取平均值 回歸 隨機 體現在 1 特徵隨機 2 樣本隨機 優缺點 優點 1.並行 2.隨機性的引入,增加了多樣性,泛化能力非常強,抗雜訊能力強,對缺失值不敏感 3.可省略交叉驗證,因隨機取樣 4.並繼承決策樹的優點,包括 1 可得到特徵重...

隨機森林模型(RF)

隨機森林屬於整合學習 ensemble learning 中的bagging演算法。bagging bootstrap aggregating bagging即套袋法,其演算法過程如下 a 從原始樣本集中抽取訓練集。每輪從原始樣本集中使用bootstraping的方法抽取n個訓練樣本 有放回的抽樣 ...