随机森林模型调参方法
一、默認參數
打印隨機森林學習器的默認參數配置:
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、系統參數
(1)random_state(隨機發生器種子數)
如果是int,random_state是隨機數發生器使用的種子; 如果是RandomState實例,random_state是隨機數生成器; 如果為None,則隨機數生成器是np.random使用的RandomState實例。
2、決策樹參數
(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。
?
3、Bagging框架參數
??? 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 ={'n_estimators':range(10,20,1)} gs = GridSearchCV(rfr_best, params, cv=4) gs.fit(X_train,Y_train)#查驗優化后的超參數配置 print(gs.best_score_) print(gs.best_params_)總結
以上是生活随笔為你收集整理的随机森林模型调参方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA基础进阶day01
- 下一篇: NSA泄露的恶意软件DoublePuls