Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Ich habe den Bootstrap-Forest mehrere Jahre lang für viele verschiedene Datensätze (sowohl kontinuierliche als auch nominale Antwortvariablen) verwendet und verstehe die Einstellungen für diesen Algorithmus im Allgemeinen – ich verwende normalerweise die Standardeinstellungen. Mein Verständnis von Random-(Bootstrap-)Forests besteht darin, dass jeder Baum mit einer zufälligen Auswahl von Faktoren und einer zufälligen Auswahl von Beobachtungen (mit Zurücklegen) ausgeführt wird. Wenn ich mir in der Vergangenheit die einzelnen Bäume ansehe, finde ich immer welche, die nur wenige Variablen verwenden und sehr spärliche Bäume aufweisen – andere sind deutlich komplexer. In der Lehre habe ich dies genutzt, um zu zeigen, dass die einzelnen Bäume oft unsinnig sind – erst die Mittelwertbildung führt zu guten Vorhersagen.
Wenn ich jedoch Bootstrap-Forests in JMP Pro 18 ausführe, zeigt jeder verwendete Datensatz jeden einzelnen Baum mit Hunderten von Teilungen. Früher gab es immer einige Bäume mit weniger als 10 Teilungen, aber jetzt gibt es überhaupt keine einfachen Bäume mehr. Hat sich die Methode zur Implementierung des Modells geändert?
Prädiktive Modellierung und maschinelles LernenBetreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Hallo @dlehman1
Die Bootstrap Forest-Plattform passt ein Ensemble-Modell an, indem sie den Durchschnitt vieler Entscheidungsbäume berechnet, von denen jeder an eine Bootstrap-Stichprobe (mit Ersetzung) der Trainingsdaten angepasst wird. Jede Teilung in jedem Baum berücksichtigt eine zufällige Teilmenge der Prädiktoren (aus Bootstrap-Wald ).
Diese Randomisierung bei der Auswahl der Trainingsbeispiele und der Merkmalsuntermengen reduziert das Risiko einer Überanpassung (durch die Erstellung mehrerer unabhängiger Bäume auf der Grundlage leicht unterschiedlicher Trainingsdaten), verbessert die Genauigkeit und Robustheit gegenüber Rauschen und ermöglicht die Handhabung fehlender Werte, Ausreißer und korrelierter Merkmale/Kolinearität (dank der Merkmalsuntermengenauswahl bei jeder Aufteilung jedes Baums).
Bezüglich Ihrer ursprünglichen Frage: Da ich JMP 17 nicht mehr auf meinem Computer habe, kann ich die Ergebnisse nicht vergleichen. In Bezug auf die Dokumentationen in JMP 17 und JMP 18 zu den Standard-Hyperparametern beim Starten des Bootstrap Forest scheint es keinen Unterschied in den Standardeinstellungen zu geben.
Wenn die einzelnen Bäume zu komplex erscheinen, können Sie einige der Standard-Hyperparameter ändern:
- Mindestaufteilungen pro Baum : Der Standardwert liegt bei 10, aber bei kleinen Datensätzen reduziere ich diesen Wert immer auf 2. Ein hoher Wert für die Mindestaufteilungen pro Baum führt tendenziell zur Erstellung komplexer einzelner Bäume, was möglicherweise nicht vorteilhaft ist und zu Überanpassung führen kann.
- Maximale Splits pro Baum : Standardmäßig liegt der Wert bei 2000, aber 2000 Splits pro Baum sind viel (und können zu ähnlichen Problemen führen). Ich reduziere diesen Wert je nach Größe des Datensatzes und Komplexität der Aufgabe auf etwa 100–1000.
- Minimale Größenaufteilung : Standardmäßig ist sie auf 5 eingestellt (Mindestanzahl von Stichproben für eine Kandidatenaufteilung), aber bei kleinen Datensätzen ist sie möglicherweise nicht relevant (und Sie können diese Zahl reduzieren, auch wenn dies zu einem höheren Risiko einer Überanpassung führen kann), während Sie bei größeren Datensätzen diesen Wert möglicherweise erhöhen möchten, um die Robustheit jedes einzelnen Baums zu erhöhen.
- Vorzeitiges Stoppen : Stellen Sie sicher, dass diese Option aktiviert ist, wenn Sie einen Validierungssatz verwendet haben, um sicherzustellen, dass die Erstellung von Bäumen gestoppt wird, wenn sich die Validierungsmetriken durch die Erstellung neuer Bäume nicht verbessern.
Es tut mir leid, dass ich keine präziseren/definitiveren Antworten auf Ihre Fragen habe. Haben Sie Screenshots, Datensätze oder etwas anderes, das die Unterschiede zeigt? Dies könnte bei der Fehlerbehebung hilfreich sein.
Am besten,
Betreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Ihre Beschreibung entspricht genau meinem Verständnis, und ich habe ein gutes Gespür dafür, wie sich diese Optimierungsparameter auf die erstellten Bäume auswirken. Ich kann keines meiner alten Beispiele finden, weiß aber, dass ich in Lehrveranstaltungen gezeigt habe, dass die einzelnen Bäume keinen Sinn ergeben, aber die Mittelung unabhängiger Bäume macht den Bootstrap-Wald zu einem guten Prädiktor. Der Teil der Beschreibung, der jedoch im Widerspruch zu den resultierenden Bäumen zu stehen scheint, lautet: „Jede Teilung in jedem Baum berücksichtigt eine zufällige Teilmenge der Prädiktoren.“ Ich würde erwarten, dass die Prädiktoren in jedem Baum variieren, nicht nur in der zufälligen Auswahl, sondern auch in der Anzahl der ausgewählten. Das scheint dem zu entsprechen, was ich früher vom Bootstrap-Wald erhalten habe – manche Bäume verwendeten zwei Prädiktoren, andere zehn usw. Jetzt scheinen alle Bäume die gleiche Anzahl von Teilungen zu haben (und verwenden daher eine ähnliche Anzahl von Prädiktoren in jedem Baum). Und die Anzahl der Teilungen liegt in allen von mir untersuchten Datensätzen (mit moderaten Größen von etwa 10.000 bis 100.000 Zeilen) im Hunderterbereich. Ich weiß, dass ich früher Bäume hatte, die nur eine Handvoll Risse hatten – und das passiert mir jetzt nicht mehr. Daher meine Frage.
Betreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Hallo @dlehman1 ,
Ich habe versucht, mit zwei Beispieldatensätzen zu spielen, Diamonds Data.jmp (Regressionsaufgabe) und Mushroom.jmp (Klassifizierungsaufgabe).
Ich hatte den gleichen Eindruck wie Sie bei der Regressionsaufgabe. Selbst beim Experimentieren mit Hyperparametern waren die einzelnen Bäume recht komplex. Bei der Klassifizierungsaufgabe erhielt ich jedoch einfachere und zufriedenstellendere einzelne Bäume mit unterschiedlicher Tiefe und Komplexität:

Daher wird Ihre Frage zu einer möglichen Änderung des Bootstrap-Forest-Algorithmus zwischen den JMP-Versionen nicht direkt beantwortet (dies kann möglicherweise am besten von den technischen Mitarbeitern von JMP beantwortet werden, @Mark_Bailey ?), aber ich denke, die Komplexität einzelner Bäume hängt mit der für die Aufgabe erforderlichen Präzision (Regression entspricht einer sehr großen Anzahl von Klassen im Vergleich zur Klassifizierung) und den verfügbaren Daten (Quantität und Qualität) zusammen.
Hoffe, diese Antwort kann Ihnen trotzdem helfen,
Betreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Ich habe ein anderes Beispiel angehängt: ähnliche Größe wie der Pilzdatensatz, Klassifizierungsmodell, ähnliche Anzahl von Variablen (aber einige kontinuierliche Faktoren, während alle Pilzfaktoren nominal sind). Die Bäume im Bootstrap-Wald haben alle Hunderte von Splits. Ich bin immer noch verblüfft.
Betreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Ich unterstütze diese Plattform nicht direkt und kann daher keine unmittelbare Erklärung oder Hilfe anbieten. Ich bin derzeit außerdem dabei, die Entwicklung einer neuen Plattform und neuer Funktionen in JMP 19 abzuschließen. Daher denke ich, dass Sie am schnellsten Antworten vom JMP-Support ( support@jmp.com ) erhalten. Bitte antworten Sie hier mit Ihren Erkenntnissen.
Betreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?Hallo zusammen,
Unsere Tests haben bisher keine methodischen Unterschiede zwischen den Versionen JMP 17 und 18 ergeben. Sollten Sie weitere Fragen oder Bedenken zu dem beobachteten Verhalten haben, wenden Sie sich bitte weiterhin an support@jmp.com . Fügen Sie nach Möglichkeit ein oder mehrere Beispiele bei, die zeigen, wie sich das Baumaufteilungsverhalten vom erwarteten Verhalten unterscheidet. Wir setzen die Tests und Untersuchungen gerne fort.
- Technischer Support für JMP
Betreff: Hat sich der Bootstrap-Wald in JMP Pro18 geändert?JMP-Unterstützung ist wieder da! Der Grund für die unterschiedlichen Ergebnisse war:
„Der „alte“ Standardwert (vor 16) für „Pro Split abgetastete Terme“ war floor(nX/4), wobei nX die Anzahl der eingegebenen X-Variablen ist.“
Ich dachte, das Verhalten hätte sich von JMP 17 zu JMP 18 geändert, aber es scheint noch weiter zurück zu reichen. Mir ist nicht aufgefallen, dass in meinem Beispiel die pro Split abgetasteten Terme einen Standardwert von 1 ergaben und in JMP 18 (und anscheinend auch in JMP 17, 16 und 15) der Standardwert 5 ist. Das erklärt den Unterschied.