Scripting la piattaforma di partizioneLa piattaforma di partizione è molto brava a dividere i parametri in un modo corretto da un punto di vista statistico ma non è appropriato data la conoscenza del dominio del set di dati. Ora, non posso aspettarmi che JMP abbia una conoscenza del dominio, ma vorrei sceneggiare la piattaforma di partizione in modo che possa servire i candidati selezionati da JMP all'utente in modo che possano scegliere quello che ha senso data la loro conoscenza del dominio E è vicino la parte superiore dell'elenco per la divisione da un punto di vista statistico. Quello a cui sto combattendo è come ricostruire l'albero dopo che l'utente ha fatto la sua scelta. Ho provato diverse iterazioni di visualizzazione della sceneggiatura dopo varie suddivisioni e non riesco proprio ad afferrare la struttura. Qualcuno l'ha capito?
Grazie
raggio
Ri: Scripting la piattaforma di partizionePosso immaginare che sarebbe possibile scrivere un'interfaccia utente che utilizza la "partizione" sullo sfondo ma mantiene nascosto il suo rapporto. Questo può o non può essere molto lavoro, a seconda della funzionalità che si desidera e del flusso di lavoro che si desidera supportare.
Generalmente, nel tentativo di "prendere in consegna" piattaforme progettate per l'uso interattivo, alcune cose sono possibili e altre no.
Non sono sicuro che sia d'aiuto, ma se potessi istruire gli utenti a premere un pulsante "aggiorna" potresti fare questo genere di cose:
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' può prendere qualsiasi azione possibile in JSL (e qui semplicemente duplica il report esistente).
Ri: Scripting la piattaforma di partizioneian_jmp,
Grazie per aver risposto alla mia domanda. Il problema è che ne ho bisogno
cancella e ricrea l'albero ogni volta che un utente seleziona una divisione. Cosa sono
fare è scoppiare la tabella dei candidati e poi spuntare una finestra che mostra
grafici a torta e di tendenza per ciascuno dei primi nn candidati. L'utente di
seleziona quello che gli piace di più. La cosa migliore sarebbe se JMP me lo permettesse
feed nella scelta e "fare clic su" l'opzione specifica per divisione.
Sfortunatamente - secondo il supporto di JMP - questo non è possibile. Sta aggiungendo
la capacità aggiuntiva di aiutare a selezionare tra i candidati che
guida la necessità di ricostruire l'albero. Sarebbe meglio se potessi
assumere completamente la piattaforma in modo che l'utente non debba utilizzare nessuno dei
split / prune, pulsanti a discesa del triangolo rosso.
Ri: Scripting la piattaforma di partizioneEcco uno script da un albero in cui sono state create due suddivisioni (non ottimali) specifiche:
Partizione(
Y (: Oxy),
X (: Età,: Peso,: Runtime,: RunPulse,: RstPulse,: MaxPulse),
Mancanza informativa (1),
Divisioni iniziali (: Età> = 45, {}, {: RstPulse> = 60}),
SendToReport (
Dispatch ({}, "Report partizione", FrameBox, {Frame Size (480, 56)}),
Spedizione ({}, "Candidati", OutlineBox, {Close (0)})
)
);
Sembra che tutte le divisioni precedenti siano appena elencate nella parte Initial Splits del codice. La prima divisione sarebbe sulla variabile: Age per il mio esempio. Quindi per il gruppo> = 45, non ci sono ulteriori suddivisioni (le parentesi vuote). Per Età <45, quel ramo è diviso per: RstPulse. Se la successiva divisione fosse su: RstPulse leaf, sarebbe {: RstPulse> = 60, {newvar> = value}}.
Spero che questo possa essere d'aiuto.
Ri: Scripting la piattaforma di partizionePotresti voler utilizzare la conoscenza del dominio per "bloccare le colonne". Ecco l'esempio di 'Guida> Indice di scripting':
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 );
Generalmente l'indice di scripting è un ottimo punto di partenza se devi capire qualcosa.