Scikit-learn: min_weight_fraction_leafは改善を提案しました

作成日 2016年06月28日  ·  3コメント  ·  ソース: scikit-learn/scikit-learn

説明

DecisionTreeClassifierとRandomForestClassifierのmin_weight_fraction_leafパラメーターを誤って使用してきましたが、他の人が私と同じことをしている可能性が高いと思います。

たとえば、 DecisionTreeClassifierのmin_weight_fraction_leafのドキュメントには

入力サンプルの最小加重部分は、リーフノードにある必要があります。

ドキュメントが「入力サンプルの加重分数」の意味するところは、私には本当にわかりませんでした。 最初は、クラスのサイズまたはclass_weight指定された値に基づく重み付けだと思いました。 パラメータの説明を少し変更するだけで、この混乱を解消できると思います。 おそらく次のようなもの

入力サンプルの最小の重み付き部分は、重みがfit()メソッドのsample_weightによって決定されるリーフノードにある必要があります。

さらに、 min_weight_fraction_leafは、 fit()呼び出しでsample_weightが提供された場合にのみ適用されるようです。 fit()の呼び出しでsample_weightが提供されていない場合、 min_weight_fraction_leafは黙って無視されます。 ここでは、すべてのサンプルが均等に重み付けされているという前提でmin_weight_fraction_leafを適用するか、 sample_weightが提供されていないためmin_weight_fraction_leafが使用されないという警告を表示する必要があると思います。

バージョン

ダーウィン-15.5.0-x86_64-i386-64ビット
Python 3.5.1 | Continuum Analytics、Inc。| (デフォルト、2015年12月7日、11:24:55)
[GCC 4.2.1(Apple Inc.ビルド5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

また、私が提案した変更を加えたいと思いますが(価値があると思われる場合)、オープンソースライブラリに貢献した経験はほとんどありません。 誰かが私を助けてくれるなら、少し手を握る必要があるかもしれません。

Bug

最も参考になるコメント

min_weight_fraction_leafが設定されていて、 sample_weights提供されていない場合は、エラーが発生するか、重みが均一であると想定する必要があると思います。 この場合、 min_samples_leafとは少し冗長ですが、重みが均一であると仮定した方がよいと思います。

全てのコメント3件

PRを提出してください

午前6時09時2016年6月29日、ベン[email protected]書きました:

説明

私はのmin_weight_fraction_leafパラメータを使用しています
DecisionTreeClassifierとRandomForestClassifierが正しくないので、
他の人が私と同じことをしている可能性があります。

たとえば、min_weight_fraction_leafのドキュメントは
DecisionTreeClassifier
http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
言う

入力サンプルの最小加重分数は、
リーフノード。

ドキュメントが「の加重分数」が何を意味するのか、私には本当にわかりませんでした
入力サンプル」。当初は、
クラスのサイズまたはclass_weightで指定された値。 ちょっと思う
パラメータの説明を変更すると、この混乱が解消される可能性があります。 おそらく
何かのようなもの

入力サンプルの最小加重分数は、
重みがfit()メソッドのsample_weightによって決定されるリーフノード。

さらに、min_weight_fraction_leafは次の場合にのみ適用されるようです
sample_weightは、fit()の呼び出しで提供されます。 sample_weightがそうでない場合
fit()の呼び出しで提供される、min_weight_fraction_leafはサイレントです
無視されます。 ここで、min_weight_fraction_leafはまだ下に適用されるべきだと思います
すべてのサンプルが均等に重み付けされている、または警告が必要であるという仮定
sample_weight以降、min_weight_fraction_leafは使用されないことを前提としています
提供されませんでした。
バージョン

ダーウィン-15.5.0-x86_64-i386-64ビット
Python 3.5.1 | Continuum Analytics、Inc。| (デフォルト、2015年12月7日、11:24:55)
[GCC 4.2.1(Apple Inc.ビルド5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1


このスレッドにサブスクライブしているため、これを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/scikit-learn/scikit-learn/issues/6945 、またはミュート

https://github.com/notifications/unsubscribe/AAEz6xE2BmEJHo6hGgTWoigsPutoD4_nks5qQX9zgaJpZM4JAe96

min_weight_fraction_leafが設定されていて、 sample_weights提供されていない場合は、エラーが発生するか、重みが均一であると想定する必要があると思います。 この場合、 min_samples_leafとは少し冗長ですが、重みが均一であると仮定した方がよいと思います。

これはmin_samples_leaf似ていると思います。 min_weight_fraction_leafは、各リーフノードに絶対数のサンプルを要求する代わりに、各リーフにサンプルの一部(または重み)を要求するオプションを提供します。 モデルがサンプルに重みを使用しているかどうかは、 class_weightによって異なります。

このページは役に立ちましたか?
0 / 5 - 0 評価