0

フォレスト内の各ツリーのトレーニングに使用されるサブサンプルのサイズはどのように制御できますか? scikit学習の資料によると:scikit-learn RandomForestClassifierのサブサンプルサイズ

ランダムフォレストは、データセットの様々なサブサンプルについて決定 木分類器の数に適合するメタ推定量であると予測精度を向上させる 平均化を使用しオーバーフィットを制御します。 サブサンプルのサイズは、元の入力サンプルの のサイズと常に同じですが、ブートストラップ= 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)のように、これが当てはまるとは思わない:「サブサンプルsizeは常に元の入力サンプルサイズと同じですが、サンプルはbootstrap = True(デフォルト)の場合は置き換えて描画されます。 – Archie

0

機能の数を指していると思います。正しく覚えていれば、すべてのサンプルがトレーニングに使用されますが、各サブセットでは異なる数の機能が使用されます。 max_featuresを使用すると、異なる数の機能を使用できます。

関連する問題