39818

[code]

      clf = DecisionTreeClassifier(criterion='entropy', max_depth=1)          
      sklearn.ensemble.BaggingClassifier(base_estimator=clf, n_estimators=10, max_samples=1, max_features=1)
    
[/code]

上記のパラメータbase_estimator=clf1, n_estimators=10, max_samples=1,
max_features=1はそれぞれ何を表しているのでしょうか。  
n_estimatorsは決定木の個数、
max_samplesはそれぞれの決定木に使われる(抽出サンプル数/全体数)という割合、max_featuresはそれぞれの決定木に使われる（抽出サンプルの特徴量数/全体の特徴量数）という割合であっていますでしょうか。

また、上記理解が正しい場合、さらに以下の疑問があります。  
max_samples=1のとき全体が抽出されるので、自動的に特徴量もmax_features=1になるような気がしており、どちらか一つの特徴量で良いのではないかと思っています。


CC BY-SA 3.0
2017-11-22T19:09:39.290
39770
2017-11-25T02:05:50.663
2017-11-24T00:01:58.000
25909
25909
question
python scikit-learn
BaggingClassifierのパラメーターについて


それぞれ

  * base_estimator 基となる推定器
  * n_estimators 基となる推定器の数
  * max_samples 各推定器を訓練する時に用いるサンプル数
  * max_features 各推定器を訓練する時に用いる特徴量の数

になります。

ただし、max_samplesとmax_featuresは、intの場合とfloatの場合で意味が変わります。intで与えた場合は絶対数を、floatで与えた場合は全体に対する割合を指します。

より詳しい情報は[公式ドキュメント](http://scikit-
learn.org/stable/modules/generated/sklearn.ensemble.BaggingClassifier.html)をご覧ください。

> また、上記理解が正しい場合、さらに以下の疑問があります。  
>
> max_samples=1のとき全体が抽出されるので、自動的に特徴量もmax_features=1になるような気がしており、どちらか一つの特徴量で良いのではないかと思っています。

max_samples=1.0としてもmax_features=1.0とはなりませんし、どちらか一つで良いとはなりません。

サンプルと特徴量の違いを意識する必要があります。1行に1つのデータを持つ表形式の典型的なデータセットがあるとします。これがn行m列のデータセットであるとします。
**サンプル** は各行に対応します。1行が1サンプルなので、このケースではnサンプルあることになります。一方、 **特徴量**
は各列に対応します。1列が1特徴量なので、このケースではm個の特徴量があることになります。

max_samples=1.0の場合、n個すべてのサンプルを用いることを意味します。ただし、これは必ずしもm個すべての特徴量を用いるという意味ではありません。用いる特徴量の個数はmax_featuresで指定します。


CC BY-SA 3.0
2017-11-25T02:05:50.663
39818
2017-11-25T02:05:50.663
26246
39770
answer