Scripting der PartitionsplattformDie Partitionsplattform kann sehr gut Parameter aufteilen, die zwar statistisch korrekt sind, sich jedoch aufgrund der Domänenkenntnisse des Datensatzes nicht eignen. Nun kann ich nicht erwarten, dass JMP über Domänenwissen verfügt, aber ich möchte die Partitionsplattform mit einem Skript versehen, damit ich die Kandidaten, die JMP für den Benutzer auswählt, zur Verfügung stellen kann, damit sie das auswählen können, das angesichts ihres Domänenwissens sinnvoll ist und nahe ist der Anfang der Liste für die Aufteilung aus statistischer Sicht. Was ich damit zu tun habe, ist, wie man den Baum wieder aufbaut, nachdem der Benutzer seine Wahl getroffen hat. Ich habe mehrere Wiederholungen des Scripts nach verschiedenen Splits ausprobiert und ich kann die Struktur einfach nicht verstehen. Hat jemand das herausgefunden?
Vielen Dank
Strahl
Re: Scripting der PartitionsplattformIch kann mir vorstellen, dass es möglich wäre, eine Benutzeroberfläche zu schreiben, die 'Partition' im Hintergrund verwendet, den Bericht jedoch verborgen hält. Abhängig von der gewünschten Funktionalität und dem zu unterstützenden Workflow ist dies möglicherweise eine große Arbeit.
Beim Versuch, Plattformen zu übernehmen, die für die interaktive Nutzung konzipiert sind, sind einige Dinge möglich, andere nicht.
Nicht sicher, ob es hilfreich ist, aber wenn Sie die Benutzer dazu bringen könnten, auf die Schaltfläche "Aktualisieren" zu klicken, können Sie Folgendes tun:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
par = dt << Partition(
Y( :country ),
X( :sex, :marital status, :age, :type, :size )
);
parRep = Report(par);
parRep[ListBox(4)] << prepend(ButtonBox("Update", updateScript));
updateScript =
Expr(
Beep();
setClipboard("");
par << copyScript;
treeSoFar = Parse(getClipboard());
treeSoFar;
);
'updateScript' kann jede in JSL mögliche Aktion ergreifen (und hier wird nur der vorhandene Bericht dupliziert).
Re: Scripting der Partitionsplattformian_jmp,
Vielen Dank für die Beantwortung meiner Frage. Das Problem ist, dass ich muss
Löschen und erstellen Sie den Baum jedes Mal neu, wenn ein Benutzer eine Teilung auswählt. Was ich bin
Dabei wird die Kandidatentabelle geknackt und dann ein Fenster mit der Anzeige angezeigt
Box- und Trenddiagramme für jeden der Top-nn-Kandidaten. Der Benutzer als
wählt die, die ihnen am besten gefällt. Das beste wäre, wenn JMP mich würde lassen
Geben Sie die Auswahl ein und klicken Sie auf die aufteilungsspezifische Option.
Laut JMP-Unterstützung ist dies leider nicht möglich. Es fügt hinzu
die zusätzliche Fähigkeit, bei der Auswahl unter den Kandidaten das zu unterstützen
treibt die Notwendigkeit, den Baum neu aufzubauen. Es wäre am besten, wenn ich könnte
die Plattform vollständig übernehmen, so dass der Benutzer keine der nutzen muss
Split / Prune, Dropdown-Buttons für rotes Dreieck.
Re: Scripting der PartitionsplattformHier ist ein Skript aus einem Baum, in dem zwei spezifische (nicht optimale) Aufteilungen vorgenommen wurden:
Trennwand(
Y (: Oxy),
X (: Alter,: Gewicht,: Laufzeit,: RunPulse,: RstPulse,: MaxPulse),
Informatives Fehlendes (1),
Anfangsaufteilungen (: Alter> = 45, {}, {: RstPulse> = 60}),
SendToReport (
Versand ({}, "Partitionsbericht", FrameBox, {Frame Size (480, 56)}),
Versand ({}, "Kandidaten", OutlineBox, {Schließen (0)})
)
);
Es sieht so aus, als ob alle vorherigen Splits nur im ersten Splitt-Teil des Codes aufgeführt sind. Der erste Split würde sich auf die Variable beziehen: Alter für mein Beispiel. Dann gibt es für die Gruppe> = 45 keine weitere Aufteilung (leere Klammern). Für Alter <45 wird dieser Zweig aufgeteilt in: RstPulse. Wenn die nächste Aufteilung auf dem: RstPulse-Blatt wäre, wäre dies {: RstPulse> = 60, {newvar> = value}}.
Ich hoffe das hilft.
Re: Scripting der PartitionsplattformMöglicherweise möchten Sie Domänenwissen verwenden, um Spalten zu sperren. Hier ist das Beispiel aus "Hilfe> Skriptindex":
Names Default To Here( 1 );
obj = Open( "$SAMPLE_DATA/Car Poll.jmp" ) <<
Partition(
Y( :country ),
X( :sex, :marital status, :age, :type, :size )
);
obj << Lock Columns( 1, :age, :size );
(obj << report)[CheckboxBox( 1 )] << Select;
Wait( .5 );
obj << Lock Columns( 0 );
Wait( .5 );
obj << Lock Columns( 1 );
Im Allgemeinen ist der Skriptindex ein guter Ausgangspunkt, wenn Sie etwas herausfinden müssen.