Partitionsmodellierung: Was bestimmt die Mindestgrößenaufteilung?Ich bin kein De-facto-Statistiker, habe aber über viele Jahre hinweg viel Erfahrung in der Biostatistik gesammelt, vor allem dank der Verwendung der Standardversion von JMP (derzeit Version 13). Ich kann mir sicher nicht vorstellen, etwas anderes zu verwenden und regelmäßig dafür zu werben.
Ich definiere derzeit schrittweise Partitionen in verschiedenen kontinuierlichen Variablen, um das Ergebnis in einer binomialen kategorialen Variablen (nicht bestanden oder bestanden) zu optimieren. Ich habe viel über diese Plattform gelesen und gesehen und verstehe die Notwendigkeit, die Validierung einzubeziehen und die Anzahl der Kovariaten auf eine praktische, aber logische kurze Liste zu beschränken.
Allerdings ist die Mindestgrößenaufteilung ein Parameter, bei dem ich mir nicht sicher bin. Meine Absicht ist es, Partitionen zu definieren, die Fehler in der Ergebnisvariablen minimieren, vielleicht sogar vollständig abmildern. Die resultierende Aufteilung scheint stark von der gewählten minimalen Teilungsgröße/-proportion abzuhängen. Meiner Meinung nach sollte man eine möglichst große Größe wählen (in Richtung 50 % gehen) und gleichzeitig die LogWorth-Werte im Auge behalten, die bei jeder Aufteilung generiert werden. Ich würde denken, dass eine zu kleine Teilungsgröße einem Risiko für einen Typ-II-Fehler gleichkommen könnte. Wie kann man dann, anders als von mir vorgeschlagen, bestimmen, welches Verhältnis verwendet werden soll?
Und ich gehe davon aus, dass das Partitionsmodell keine Korrektur für mehrere Vergleiche berücksichtigt. Warum stimmt der LogWorth-äquivalente p-Wert für die anfängliche Aufteilung nicht mit dem Fisher's Exact-Ergebnis überein, wenn man die resultierende Aufteilung speichert und eine 2x2-Kontingenzanalyse durchführt?
Datenmischung und -bereinigungPrädiktive Modellierung und maschinelles LernenBetreff: Partitionsmodellierung: Was bestimmt die Mindestgrößenaufteilung?Lieber DS
Nochmals vielen Dank für Ihre ausführliche Antwort, die äußerst hilfreich war. Ich muss zugeben, dass ich mich, obwohl ich als Filemaker-Programmierer ziemlich versiert bin, nie wirklich mit JSL beschäftigt habe, aber das ist vielleicht der Anreiz, den ich brauche, um genau das zu tun. Was R^2 betrifft, war mir das bewusst und ich verfolge auf jeden Fall die Aufteilungshistorie in Bezug auf diesen Koeffizienten. Glücklicherweise bin ich auf die wenig veröffentlichte Verwendung ausgeschlossener Zeilen zur Validierung gestoßen, die im Gegensatz zu dem, was man im normalen Betrieb gewohnt ist, höchst kontraintuitiv zu sein schien.
Betreff: Partitionsmodellierung: Was bestimmt die Mindestgrößenaufteilung?Hallo @34South ,
XGBoost ist wirklich leistungsstark und sehr stabil. Wenn Sie es mehrmals erneut ausführen, erhalten Sie die gleiche Antwort, was bei Bootstrap Forest oder Boosted Tree nicht immer der Fall ist.
ich habe das gefunden Webseite um SEHR hilfreich bei der Optimierung von XGBoost und der Verbesserung der Modelle zu sein. Und da es für Leute geschrieben wurde, die Python ausführen, sollten Sie startklar sein.
Haben Sie darüber nachgedacht, Ihre Fit-Routinen so zu skripten, dass Sie einen Teil des Prozesses automatisieren und unbeaufsichtigt ausführen können? Auf lange Sicht könnte es schneller gehen. Ich mache das, wenn ich den Optimierungsparameterraum für die anderen baumbasierten Plattformen in JMP durchsuche – oft führe ich mehr als 30.000 Berechnungen durch. Abhängig von der Plattform kann es gute 8–10 Stunden dauern, aber ich lasse es einfach laufen, während ich andere Dinge erledige.
Sie sollten Ihr R^2 auf jeden Fall für Training und Validierung überwachen, um sicherzustellen, dass Sie die Daten nicht überanpassen. Ich versuche jetzt, einige Modelle auszuführen, aber ich stelle bisher fest, dass bei den Plattformen Neural Net und GenReg R^2 zurückkommt, die für den Validierungssatz größer sind als für den Trainingssatz, was eine große Warnung ist Zeichen. Persönlich denke ich, dass es an dem Datensatz liegt, den ich habe, und an der stark von der Normalverteilung abweichenden Datenverteilung.
Eine sehr schöne Sache beim Beiseitelegen des Testdatensatzes besteht darin, diese Daten tatsächlich aus der Trainingsdatentabelle zu entfernen, sodass JMP beim Ausführen der Anpassung möglicherweise keinen Zugriff darauf erhält. Ich habe schon zuvor die Erfahrung gemacht, dass die Daten, obwohl ich bestimmte Zeilen ausgeblendet und ausgeschlossen habe, immer noch während der Kreuzvalidierung verwendet wurden. Beim Vergleich einer tatsächlichen mit einer vorhergesagten Darstellung für den Testdatensatz sah es daher aufgrund einiger von besser aus, als es tatsächlich war Die Testdaten wurden im Training verwendet.
DS
Betreff: Partitionsmodellierung: Was bestimmt die Mindestgrößenaufteilung?Lieber DS
Vielen Dank für Ihre ausführliche Antwort. Leider habe ich nicht die Pro-Version ($$$). Der Ansatz, den ich in der Zwischenzeit gewählt habe, bestand darin, 20 % für die Validierung festzulegen und dann mit einer Mindestgrößenaufteilung von 45 % zu beginnen. Wenn das fehlschlägt, würde ich es um 5 % bis 40 % reduzieren und so weiter, bis ich eine Aufteilung erreicht habe. Ich würde es dann in Schritten von 1 % nach oben verfeinern, es aber auf die Stelle beschränken, an der der LogWorth-Wert Signifikanz anzeigt. Alternativ würde ich die Aufteilung auf die Fehleranzahl im ursprünglichen Satz oder etwas höher festlegen, um eine Platzierung von 100 % der fehlgeschlagenen Fälle in einer der durch die Aufteilung definierten resultierenden Teilmengen zu erreichen. Ich verstehe Ihren Standpunkt bezüglich eines Testsatzes und werde versuchen, dies zu tun, vorausgesetzt, dass genügend Anzahl für die Validierung und Schulung übrig bleibt. Ich habe XGBoost nach der Installation von Python ausprobiert, aber es gibt eine Lernkurve, um es zum Laufen zu bringen.
Betreff: Partitionsmodellierung: Was bestimmt die Mindestgrößenaufteilung?Hallo @34South ,
Haben Sie JMP Pro oder Zugriff auf JMP Pro? Ich frage, weil die Partitionsplattform nicht der beste (stabilste) Ansatz zum Generieren von Vorhersageformeln ist. Die Plattformen Boosted Tree und Boostrap Forest sind viel besser. Wenn Sie Zugriff auf höhere Versionen haben, können Sie auch die XGBoost-Plattform verwenden, die sehr stabil ist.
Aber weiter zu Ihrer Frage zur Mindestgrößenaufteilung. Die Mindestgrößenaufteilung steuert die Komplexität des Baumstumpfs. Wenn die Anzahl der Beobachtungen in einer Aufteilung geringer ist als der von Ihnen festgelegte Wert, wird keine Aufteilung generiert. Es ist nicht allzu relevant, wenn Sie Boosting in Ihrem Entscheidungsbaum verwenden, kann aber zur Steuerung verwendet werden. Sie möchten es nicht zu klein (z. B. 1 Beobachtung) und auch nicht zu groß (z. B. 1000 Beobachtungen) haben. Ein guter typischer Ausgangspunkt wäre etwa 5 für eine einfache Baummethode. Wenn Sie so etwas wie die Bootstrap-Forest-Plattform verwenden, sollten Sie N/2 für Klassifizierungsschemata verwenden, wie Sie sie verwenden – wobei N die Anzahl der Beobachtungen ist. Möglicherweise können Sie Ihr Modell optimieren, indem Sie diesen Parameter anpassen und ihn dann mit den verschiedenen Modellen in einem Testdatensatz vergleichen.
Wenn Sie über genügend Daten verfügen, würde ich empfehlen, einen Teil, vielleicht 20–25 %, abzuspalten und diesen als Testdatensatz zu behalten, der nicht zum Trainieren oder Validieren Ihres Modells verwendet wird. Mit den verbleibenden Daten können Sie eine geschichtete Validierungsspalte mit Trainings- und Validierungsdaten (z. B. 80/20) generieren, um die Komplexität Ihres Modells zu optimieren und gleichzeitig eine Überanpassung zu verhindern. Nachdem Sie mehrere Modelle generiert haben, können Sie anhand der vorherigen Testdaten vergleichen, welches Modell die Ergebnisse tatsächlich besser vorhersagen kann. Da Sie nach einem binären Entscheidungsmodell suchen, können Sie es sogar weiter optimieren, indem Sie sich kostensensitives Lernen ansehen.
Ich bin kein Experte darin, wie JMP den Protokollwert oder den genauen Fischer-Test berechnet, also kann das hoffentlich jemand von JMP beantworten, aber ich vermute, dass es mit dem gesamten Datensatz und der Berechnung des Protokollwerts im Vergleich zum Zeitpunkt des Speicherns zu tun hat die Aufteilungsformel und erstellen Sie eine Kontingenztabelle.
Ich hoffe, das hilft – oder gibt zumindest einige Denkanstöße.
Viel Spaß beim Modellieren!,
DS