2017-09-29 4 views
3

私はsklearnクラスDecisionTreeClassifierを使っていました。クラスのパラメータを見るとsklearnのmin_samples_splitとmin_samples_leafの違いDecisionTreeClassifier

は、我々は、2つのパラメータmin_samples_splitmin_samples_leafを持っています。それらの背後にある基本的なアイデアは同じように見えます。ノードを葉にするか、さらに分割するかを決めるのに必要なサンプルの最小数を指定します。

なぜ私は2つのパラメータが別のものを意味するのでしょうか?それらを区別する理由やシナリオはありますか?ドキュメントから

+0

https://discuss.analyticsvidhya.com/t/what-does-min-samples-split-means-in-decision-tree/6233/2 –

+0

@Abhishek、リンクありがとうございます。アレックスとリンクの両方が今私がそれを理解するのを助けました。 –

+0

もう一つの大きな議論があります。ダイアグラムはhttps://github.com/scikit-learn/scikit-learn/issues/8399 – cardamom

答えて

3

両者の主な違いは、min_samples_splitは、文献においてより一般的であるがmin_samples_splitは、任意の小葉を作成することができながらmin_samples_leafは、葉内のサンプルの最小数を保証することです。

私はあなたが間の区別をするべきだと思いドキュメントのこの作品の把握を取得し、内部ノード(も外部ノードと呼ばれます)。内部ノードはさらに分割(さらにと呼ばれる)を持ち、リーフは定義上、子なしのノード(それ以上の分割なし)です。 min_samples_leafリーフノードであることが必要なサンプルの最小数を指定しながら

min_samples_splitは、内部ノードを分割するために必要なサンプルの最小数を指定します。

例えば、min_samples_split = 5であり、内部ノードに7つのサンプルがある場合、分割が許可されます。しかし、分割が2つの葉で起こるとします.1つは1つのサンプル、もう1つは6つのサンプルです。 min_samples_leaf = 2の場合、結果のリーフの1つがリーフノードに必要なサンプルの最小数より少ないため、分割は許可されません(内部ノードに7つのサンプルがある場合でも)。

上記のドキュメントに記載されているように、min_samples_leafは、min_samples_splitの値にかかわらず、すべてのリーフで最小サンプル数を保証します。

+0

ありがとう@Alexです。わかった。 min_samples_splitはリーフノードの最小サンプルを保証するのではなく、min_samples_leafを保証します。 –

関連する問題