Scikit-learn: min_weight_fraction_leaf schlug Verbesserungen vor

Erstellt am 28. Juni 2016  ·  3Kommentare  ·  Quelle: scikit-learn/scikit-learn

Beschreibung

Ich habe den Parameter min_weight_fraction_leaf von DecisionTreeClassifier und RandomForestClassifier falsch verwendet, und ich denke, es ist wahrscheinlich, dass andere Leute dasselbe tun wie ich.

In der Dokumentation zu min_weight_fraction_leaf in DecisionTreeClassifier heißt es beispielsweise

Der minimal gewichtete Anteil der Eingabeproben, der sich an einem Blattknoten befinden muss.

Mir war wirklich unklar, was die Dokumente unter "gewichteter Bruchteil der eingegebenen Stichproben" verstehen. Anfangs dachte ich, es sei eine Gewichtung basierend auf der Größe der Klassen oder den Werten von class_weight . Ich denke, eine geringfügige Änderung der Parameterbeschreibung könnte diese Verwirrung beseitigen. Vielleicht so etwas

Der minimale gewichtete Anteil der Eingabe-Samples, der sich an einem Blattknoten befinden muss, an dem die Gewichte durch sample_weight in der fit () -Methode bestimmt werden.

Darüber hinaus scheint min_weight_fraction_leaf nur dann zu gelten, wenn sample_weight im Aufruf fit() . Wenn sample_weight im Aufruf von fit() , wird min_weight_fraction_leaf stillschweigend ignoriert. Hier denke ich, dass min_weight_fraction_leaf weiterhin unter der Annahme gelten sollte, dass alle Stichproben gleich gewichtet sind, ODER dass eine Warnung gegeben werden sollte, dass min_weight_fraction_leaf nicht verwendet wird, da sample_weight nicht bereitgestellt wurde.

Versionen

Darwin-15.5.0-x86_64-i386-64bit
Python 3.5.1 | Continuum Analytics, Inc. | (Standard, 7. Dezember 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. Build 5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

Ich würde auch gerne die von mir vorgeschlagenen Änderungen vornehmen (wenn sie als würdig erachtet werden), aber ich habe wenig Erfahrung damit, zu Open-Source-Bibliotheken beizutragen. Könnte ein bisschen Händchenhalten brauchen, wenn jemand bereit wäre, mir zu helfen.

Bug

Hilfreichster Kommentar

Ich denke, wenn min_weight_fraction_leaf gesetzt ist und kein sample_weights , sollte dies entweder einen Fehler auslösen oder einheitliche Gewichte annehmen. In diesem Fall ist es mit min_samples_leaf etwas überflüssig, aber ich denke, dass die Annahme einheitlicher Gewichte immer noch besser wäre.

Alle 3 Kommentare

Bitte reichen Sie eine PR ein

Am 29. Juni 2016 um 06:09 schrieb Ben [email protected] :

Beschreibung

Ich habe den Parameter min_weight_fraction_leaf von verwendet
DecisionTreeClassifier und RandomForestClassifier falsch und ich denke
Es ist wahrscheinlich, dass andere Leute das Gleiche tun wie ich.

Zum Beispiel die Dokumentation für min_weight_fraction_leaf in
DecisionTreeClassifier
http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
sagt

Der minimal gewichtete Anteil der eingegebenen Proben muss bei a liegen
Blattknoten.

Es war mir wirklich unklar, was die Dokumente mit "gewichteter Bruchteil von" meinten
die Eingabebeispiele ". Anfangs dachte ich, es sei eine Gewichtung basierend auf dem
Größe der Klassen oder der durch class_weight angegebenen Werte. Ich denke ein wenig
Eine Änderung der Parameterbeschreibung könnte diese Verwirrung beseitigen. Vielleicht
etwas wie

Der minimal gewichtete Anteil der eingegebenen Proben muss bei a liegen
Blattknoten, bei dem die Gewichte durch sample_weight in der fit () -Methode bestimmt werden.

Außerdem scheint min_weight_fraction_leaf nur dann zu gelten, wenn
sample_weight wird im Aufruf fit () bereitgestellt. Wenn sample_weight nicht ist
min_weight_fraction_leaf wird im Aufruf von fit () stillschweigend bereitgestellt
ignoriert. Hier denke ich, dass min_weight_fraction_leaf immer noch unter gelten sollte
die Annahme, dass alle Proben gleich gewichtet sind ODER eine Warnung sein sollte
vorausgesetzt, min_weight_fraction_leaf wird seit sample_weight nicht mehr verwendet
wurde nicht zur Verfügung gestellt.
Versionen

Darwin-15.5.0-x86_64-i386-64bit
Python 3.5.1 | Continuum Analytics, Inc. | (Standard, 7. Dezember 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. Build 5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

- -
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/scikit-learn/scikit-learn/issues/6945 oder stummschalten
Faden
https://github.com/notifications/unsubscribe/AAEz6xE2BmEJHo6hGgTWoigsPutoD4_nks5qQX9zgaJpZM4JAe96
.

Ich denke, wenn min_weight_fraction_leaf gesetzt ist und kein sample_weights , sollte dies entweder einen Fehler auslösen oder einheitliche Gewichte annehmen. In diesem Fall ist es mit min_samples_leaf etwas überflüssig, aber ich denke, dass die Annahme einheitlicher Gewichte immer noch besser wäre.

Ich denke, das ist ähnlich wie min_samples_leaf . Anstatt eine absolute Anzahl von Proben in jedem Blattknoten zu erfordern, bietet min_weight_fraction_leaf die Option, einen Bruchteil von Proben (oder Gewichten) in jedem Blatt zu benötigen. Ob das Modell Gewichte für Stichproben verwendet, hängt von class_weight .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen