Betreff: Wie kann ich viele Wiederholungsvalidierungen automatisieren und in einer Ausgabetabelle zusammenfassen?Ich nehme an, Sie könnten 100 Validierungsspalten hinzufügen, indem Sie Folgendes iterieren:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Validation",
numeric,
"Nominal",
Formula( Make Validation Formula( [.6, .2, .2] ) ),
Set Property( "Value Labels", {0 = "Training", 1 = "Validation", 2 = "Test"} )
);
Passen Sie dann Ihr Modell an, durchlaufen Sie jede Validierungsspalte, speichern Sie die Übersichtstabelle für jede Spalte und speichern Sie sie alle in einem Ordner.
Öffnen Sie dann die Dateien und verketten Sie sie, indem Sie mehrere Dateien öffnen.
...oder vielleicht...
Öffnen Sie Ihre Tabelle, fügen Sie die Validierungsspalte hinzu, führen Sie das Modell aus, speichern Sie die Zusammenfassung, schließen Sie die Tabelle ohne Speichern und durchlaufen Sie dies 100 Mal.
Öffnen Sie dann mehrere Dateien und verknüpfen Sie die Tabellen, um eine Gesamtzusammenfassung zu erhalten.
Betreff: Wie kann ich viele Wiederholungsvalidierungen automatisieren und in einer Ausgabetabelle zusammenfassen?Danke für die Antwort,.Da ich nichts gehört hatte, habe ich an meiner eigenen Lösung gearbeitet, die ich erst letzten Freitag fertiggestellt habe.
Ich beginne, wie Sie vorschlagen, mit der Erstellung von 100 Validierungsspalten.
Ich gehe die Analyse für jeden einzelnen Schritt durch und extrahiere die Tabelle, die ich aus jedem Bericht benötige, als Datentabelle.
Ich verbinde jede Tabelle mit meiner Masterdatei und schließe dann den Bericht und die Datentabelle. Obwohl ich also 200 Dateien erzeuge, sind nur drei gleichzeitig geöffnet.Mit der Tabellenstapelfunktion kann ich die benötigten Daten aus allen erforderlichen neuen Spalten extrahieren, indem ich nach einem Schlüsselwort in der generierten Spalte suche und die resultierenden Daten analysiere.Der einzige Teil, den ich nicht geschafft habe (der das Stapeln sparen würde, besteht darin, nur die Spalte zu exportieren, die ich aus der Berichtstabelle benötige), habe ich viele Male versucht, bin aber gescheitert.
Report( discriminant[1] )[Outline Box("Probabilities to Each Group")] [Table Box (1)] << Make Data Table( "discrim_table " || char(i) );Ich habe festgestellt, dass die Tabelle aus dem Bericht „Wahrscheinlichkeiten für jede Gruppe“ heißt.Dies sind 4 Spalten in dieser Tabelle (für meine Daten) und ich bin daran interessiert, die dritte Spalte mit dem Namen „AAAAAA“ für Blindzwecke als Bezeichnung zu extrahieren.Die Eigenschaften sind klar, dies ist das Datentabellen-Spaltenfeld (: AAAAA) und dieses Spaltenfeld ist unter den „Wahrscheinlichkeiten für jede Gruppe“ verschachtelt.Ich weiß, dass ich ein Skript zum Löschen dieser zusätzlichen Spalten aus der Masterdatei erstellen könnte, aber das scheint ineffizient zu sein.Ich habe NumberColBox("AAAAA") ausprobiert usw., aber keine Freude, hat jemand irgendwelche Ideen?
Betreff: Wie kann ich viele Wiederholungsvalidierungen automatisieren und in einer Ausgabetabelle zusammenfassen?Hallo @TDF ,
Vielleicht ein einfacherer Prozess, der Ihnen hilft:
1. Erstellen Sie eine Validierungsspalte Formel (hier im Big Class-Datensatz):

2. Verwenden Sie diese Formel im Modell:

3. Je nachdem, wo/was Sie Wiederholungen der Modellanpassung wünschen, können Sie mit der rechten Maustaste auf die Metriken/Schätzungen klicken, die Sie wiederholen möchten, und auf „Simulieren“ klicken (in meinem Beispiel mache ich das auf „Parameter“) Panelwerte „Schätzungen“):

Sie können die Anzahl der gewünschten Proben angeben und einen zufälligen Startwert festlegen (wenn Sie reproduzierbare Ergebnisse wünschen):

4. Nachdem Sie auf „OK“ geklickt haben, wird das Modell 100 Mal durch Variation der Trainings- und Validierungssätze angepasst (gemäß der Formel für die geschichtete Stichprobe), und Sie erhalten direkt eine Übersichtstabelle (siehe beigefügtes Beispiel) mit den 100 Ergebnissen der Modelle , wo Sie die Ergebnisse dann grafisch mit den Plattformen „Distributions“ (in dieser Tabelle automatisch generiertes Skript) oder „Graph Builder“ (hier Beispiel mit der Plattform „Distributions“ zu den Parameterschätzungen für Achsenabschnitt und Gewicht) anzeigen können:

Sie können diese Schritte ganz einfach erstellen und dann das Protokoll verwenden, um die generierten Skripte zu kopieren, um die Schritte/Analysen zu automatisieren.
Ich hoffe, diese Antwort wird Ihnen helfen,
Betreff: Wie kann ich viele Wiederholungsvalidierungen automatisieren und in einer Ausgabetabelle zusammenfassen?Danke Victor.
Ich denke, ich hätte in meiner Antwort klarer sein sollen.Ich habe mein Problem gelöst und die Codierung ist abgeschlossen.
Es wäre besser, nur die 100 Spalten (aus den Berichten extrahiert) hinzuzufügen, die ich benötige, anstatt vollständige Tabellen (400 Spalten) zu extrahieren und jede vierte Spalte, beginnend mit der dritten, auswählen zu müssen.
Für mich ist es jetzt ein intellektuelles Interesse: Könnte ich bestimmte Spalten aus einer Tabelle in einem Bericht extrahieren?Dies ist möglicherweise nicht möglich oder für andere Community-Mitglieder nützlich, wenn dies der Fall ist.
Vielen Dank an Byron und an Sie selbst, dass Sie sich die Zeit genommen haben, hilfreiche Optionen zu veröffentlichen.
Betreff: Wie kann ich viele Wiederholungsvalidierungen automatisieren und in einer Ausgabetabelle zusammenfassen?Hallo @TDF ,
Entschuldigung für das Missverständnis, ich dachte, der Fall sei noch offen.
Da sich die Diskussion auf die Erstellung von 100 einzelnen Validierungsspalten konzentrierte, dachte ich, dass eine einfachere (und wahrscheinlich elegantere) Lösung darin bestehen könnte, die Funktion „Simulieren“ zu verwenden, die auf jeder Plattform mit der Validierungsspaltenformel verfügbar ist, um eine automatische Wiederholung vorzunehmen Wenn Sie das Modell mit verschiedenen Trainings- und Validierungssätzen anpassen, erhalten Sie Zugriff auf eine Übersichtstabelle, in der die Ergebnisse dieser Wiederholungen angezeigt werden, ohne die Datentabelle mit vielen Validierungsspalten zu erweitern und jedes einzelne Ergebnis manuell verketten zu müssen.
Ich freue mich, dass Sie mit Scripting einen Workaround gefunden haben.
Was Ihre Frage betrifft, ist es möglich, Teile des Berichts als Datentabelle zu extrahieren: Klicken Sie mit der rechten Maustaste auf das Panel/den Abschnitt, an dem Sie interessiert sind, und wählen Sie dann „In Datentabelle umwandeln“ oder „Kombinierte Datentabelle erstellen“ (wenn Sie mehrere Antworten haben). Zum Beispiel). Das Skript sieht für Big Class Dataset folgendermaßen aus:
// Make TableBox into a Data Table
Local( {obj},
obj = Data Table( "Big Class" ) << Fit Model(
Y( :height ),
Effects( :age, :sex, :weight ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:height << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )}
),
SendToReport(
Dispatch( {"Response height"}, "age", OutlineBox, {Close( 1 )} ),
Dispatch( {"Response height"}, "sex", OutlineBox, {Close( 1 )} ),
Dispatch( {"Response height"}, "weight", OutlineBox, {Close( 1 )} )
)
);
Report( obj )["Response height", "Whole Model", "Parameter Estimates",
Table Box( 1 )] << Make Into Data Table;
obj << Close Window;
)
Aber ich sehe keine Option, um bestimmte Spalten aus diesem Bereichsbericht gezielt auszuwählen. Wenn ich mir die Eigenschaften ansehe, müsste ich ausdrücklich darum bitten, in der neuen Datentabelle eine bestimmte NumberColBox nicht anzuzeigen und zu exportieren, zum Beispiel:

Vielleicht kann ein fortgeschrittenerer Scripter-Benutzer bei dieser Frage helfen (wenn ich es gut verstanden habe). Alternativ kann es im Skript einfacher sein, direkt Code hinzuzufügen, um nicht benötigte Spalten basierend auf einer bestimmten Eigenschaft (Name, Index usw.) zu entfernen. Interessante Antworten zu diesem Thema gibt es auch hier: Gelöst: Skript zum Exportieren von AIC in eine neue Datentabelle – JMP-Benutzer-Community
Ich hoffe, dies wird dir helfen,
Alles Gute,
Wie kann ich viele Wiederholungsvalidierungen automatisieren und in einer Ausgabetabelle zusammenfassen?Ich führe Diskriminanzanalysen durch und verwende eine geschichtete Validierungsspalte, um die Qualität meines Modells zu überprüfen.
Angesichts der Art der Arbeit (Klassifizierung der Herkunft unbekannter Proben) möchte ich sicherstellen, dass das Modell robust ist.Idealerweise möchte ich 100 Validierungsspalten erstellen, die Analyse für jede einmal ausführen und dann eine einzelne zusammenfassende Klassifizierungstabelle erstellen. Ich möchte nicht 100 Tabellen manuell öffnen und kopieren.
Hier schaue ich mir die Klassifizierungsanzahl an, aber die Lösung könnte darin bestehen, eine beliebige Gruppe identischer Ausgabetabellen zu kombinieren.
Ich verwende Pro v16 (ich kann auf v17 aktualisieren, wenn es die Aufgabe erleichtert)
Vielen Dank im Voraus, Trevor
Discriminant(
X( :Class for LDA ),
Validation( :Validation 0·7 0·2 0·1 ),
Y(
:"7.2"n, :"3.14"n, :"1.92"n, :"1.9"n, :"1.7"n, :"1.72"n, :"1.88"n, :"1.74"n,
:"1.76"n, :"1.78"n, :"0.98"n, :"0.96"n, :"1.82"n, :"2.4"n, :"2.12"n,
:"1.68"n, :"1.84"n, :"7.92"n, :"2.08"n, :"1.8"n, :"1.86"n, :"1.04"n,
:"3.12"n, :"1.06"n, :"0.94"n, :"2.42"n, :"8.4"n, :"2.46"n, :"7.24"n,
:"2.36"n, :"1.08"n, :"2.38"n, :"2.34"n, :"8.46"n, :"2.44"n, :"8.44"n, :"1"n,
:"2.48"n, :"1.48"n, :"1.66"n, :"1.94"n, :"2.14"n, :"8.42"n, :"3.16"n,
:"8.52"n, :"7.46"n, :"2.54"n, :"3.02"n, :"8.38"n, :"3.18"n
),
Discriminant Method( "Wide Linear" ),
Show Biplot Rays( 0 ),
Canonical 3D Plot( 1, Frame3D( Set Rotation( -54, 0, 38 ) ) ),
Show Classification Counts( 1 ),
Use Matrix Columns( 1 ),
Cross Validate by Excluded Rows( 1 )
)
Datenmischung und -bereinigungPrädiktive Modellierung und maschinelles Lernen