0

如何控制用於培訓林中每棵樹的子樣本的大小? 據的文件scikit學習:scikit-learn中的子樣本大小RandomForestClassifier

隨機森林是元估計,適合一些對數據集的不同子樣本決定 樹分類器,並使用 平均提高了預測精度和控制過度裝配。 子樣本大小始終與原始輸入樣本大小相同,但如果bootstrap = True (默認值),則會使用替換抽取樣本。

所以bootstrap允許隨機性,但無法找到如何控制子採樣的數量。

回答

1

Scikit學習並沒有提供,但你可以很容易地通過使用樹的組合和裝袋元分類(慢)版本得到這個選項:

from sklearn.ensemble import BaggingClassifier 
from sklearn.tree import DecisionTreeClassifier 

clf = BaggingClassifier(base_estimator=DecisionTreeClassifier(), max_samples=0.5) 

作爲一個側面說明,Breiman的隨機森林實際上並不認爲子採樣是一個參數,完全依賴於自舉,所以大約(1 - 1/e)樣本用於構建每棵樹。

+0

不要認爲這是事實,因爲[API](http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)的內容如下:「子樣本大小始終與原始輸入樣本大小相同,但如果bootstrap = True(默認值),則會使用替換來繪製樣本。 – Archie

0

我認爲他們指的是功能的數量。如果我沒有記錯,所有樣本都用於訓練,但每個子集都使用不同數量的特徵。使用max_features可以使用不同數量的功能。