Ri: Come posso automatizzare e riassumere molte convalide ripetute in una tabella di output?Suppongo che potresti aggiungere 100 colonne di convalida ripetendo questo:
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"} )
);
Quindi adatta il tuo modello, iterando ogni colonna di convalida e salvando la tabella di riepilogo per ognuna, salvandole tutte in una cartella.
Quindi apri e concatena i file utilizzando più file aperti.
...o forse...
apri la tua tabella, aggiungi la colonna di convalida, esegui il modello, salva il riepilogo, chiudi la tabella senza salvare e ripeti 100 volte.
Quindi utilizzare più file aperti e concatenare le tabelle per ottenere il riepilogo generale.
Ri: Come posso automatizzare e riassumere molte convalide ripetute in una tabella di output?Grazie per la risposta,.Poiché non avevo sentito nulla, ho lavorato alla mia soluzione che ho appena completato venerdì scorso.
Comincio come suggerisci creando 100 colonne di convalida.
Passo attraverso l'analisi per ognuno estraendo la tabella che richiedo da ogni rapporto come tabella di dati..
Unisco ogni tabella nel mio masterfile, quindi chiudo il rapporto e la tabella dei dati, quindi anche se genero 200 file ne ho solo 3 aperti contemporaneamente.Posso utilizzare la funzione Table stack per estrarre i dati di cui ho bisogno da tutte le nuove colonne richieste cercando una parola chiave nella colonna generata e analizzando i dati risultanti.L'unica parte che non sono riuscita (che salverebbe l'impilamento è esportare solo la colonna di cui ho bisogno dalla tabella del rapporto) che ho provato molte volte ma non ci sono riuscito.
Report( discriminant[1] )[Outline Box("Probabilities to Each Group")] [Table Box (1)] << Make Data Table( "discrim_table " || char(i) );Ho identificato la tabella del rapporto chiamata "Probabilità per ogni gruppo".Queste sono 4 colonne in questa tabella (per i miei dati) e mi interessa estrarre la terza colonna chiamata "AAAAAA" per scopi ciechi come etichetta.Le proprietà sono chiare, questa è la tabella dati Col Box (:AAAAA) e questa casella col è nidificata sotto le "probabilità per ogni gruppo".So che potrei scrivere uno script per eliminare queste colonne extra dal masterfile, ma questo sembra inefficiente.Ho provato NumberColBox("AAAAA") eccetera., ma nessuna gioia, qualcuno ha qualche idea?
Ri: Come posso automatizzare e riassumere molte convalide ripetute in una tabella di output?CIAO @TDF ,
Forse un processo più semplice per aiutarti:
1. Creare una colonna di convalida formula (qui sul set di dati di Big Class):

2. Utilizzare questa formula nel modello:

3. A seconda di dove/cosa si desidera avere ripetizioni dell'adattamento del modello, è possibile fare clic con il pulsante destro del mouse sulle metriche/stime che si desidera ripetere e fare clic su "Simula" (nel mio esempio lo sto facendo su "Parametro Stime" valori del pannello):

Puoi specificare il numero di campioni che desideri e correggere un seme casuale (se desideri risultati riproducibili):

4. Dopo aver cliccato su “OK”, il modello viene fittato 100 volte variando i set di training e validazione (secondo la formula del campionamento stratificato), e si ha direttamente una tabella riassuntiva (vedi esempio allegato) con i 100 risultati dei modelli , dove è poi possibile visualizzare graficamente i risultati con le piattaforme Distributions (script generato automaticamente in questa tabella) o Graph Builder (esempio qui con la piattaforma Distributions, sulle stime dei parametri per intercetta e peso):

È possibile creare questi passaggi molto facilmente e quindi utilizzare il registro per copiare gli script generati al fine di automatizzare i passaggi/l'analisi.
Spero che questa risposta ti possa aiutare,
Ri: Come posso automatizzare e riassumere molte convalide ripetute in una tabella di output?Grazie Vittorio.
Penso che avrei dovuto essere più chiaro nella mia risposta.Ho risolto il mio problema e la codifica è completa.
Sarebbe meglio aggiungere solo le 100 colonne (estratte dai report) che mi servono, piuttosto che estrarre tabelle complete (400 colonne) e dover selezionare ogni quarta colonna a partire dalla terza.
Per me è ora di interesse intellettuale, potrei estrarre colonne specifiche da una tabella all'interno di un report?Potrebbe non essere possibile o potrebbe essere utile ad altri membri della comunità se lo è.
Grazie sia a Byron che a te stesso per aver dedicato del tempo a pubblicare opzioni utili.
Ri: Come posso automatizzare e riassumere molte convalide ripetute in una tabella di output?CIAO @TDF ,
Scusa per il malinteso, pensavo che il caso fosse ancora aperto.
Poiché la discussione era incentrata sulla creazione di 100 singole colonne di convalida, ho pensato che una soluzione più semplice (e probabilmente più elegante) potesse essere quella di utilizzare la funzionalità "Simula" disponibile in qualsiasi piattaforma con la formula della colonna di convalida, al fine di ripetere automaticamente il modello che si adatta a vari set di addestramento e convalida, consente di accedere a una tabella di riepilogo che mostra i risultati di queste ripetizioni, senza espandere il datatable con molte colonne di convalida e dover concatenare manualmente ogni singolo risultato.
Sono contento che tu abbia trovato una soluzione alternativa con lo scripting.
Per quanto riguarda la tua domanda, è possibile estrarre parti del report come tabella dati: fai clic con il pulsante destro del mouse nel pannello/sezione che ti interessa e quindi seleziona "Crea tabella dati" o "Crea tabella dati combinati" (se hai più risposte Per esempio). Lo script ha questo aspetto su Big Class Dataset:
// 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;
)
Ma non vedo un'opzione per selezionare in modo specifico alcune colonne da questo rapporto del pannello. Guardando le proprietà, dovrei chiedere espressamente di non visualizzare ed esportare nel nuovo datatable un certo NumberColBox, ad esempio:

Forse un utente di Scripter più avanzato può aiutare per questa domanda (se l'ho capito bene). Oppure potrebbe essere più semplice nello script aggiungere direttamente del codice per rimuovere colonne non utili basate su una proprietà specifica (nome, indice, ...). Ci sono anche risposte interessanti su questo argomento qui: Risolto: Script per esportare AIC in una nuova tabella dati - Comunità utenti JMP
Spero che questo ti aiuti,
Ti auguro il meglio,
Come posso automatizzare e riassumere molte convalide ripetute in una tabella di output?Sto eseguendo analisi discriminanti e utilizzo una colonna di convalida stratificata per verificare la qualità del mio modello.
Data la natura del lavoro (classificazione delle origini di campioni sconosciuti) voglio assicurarmi che il modello sia robusto.Idealmente, desidero creare 100 colonne di convalida, eseguire l'analisi una volta su ciascuna, quindi creare un'unica tabella di classificazione riepilogativa: non desidero aprire e copiare manualmente 100 tabelle.
Qui sto guardando Classification Counts, ma la soluzione potrebbe essere quella di combinare qualsiasi gruppo di tabelle di output identiche.
Sto eseguendo Pro v16 (posso aggiornare a v17 se renderà l'attività più semplice)
Molte grazie in anticipo, 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 )
)
Miscelazione e pulizia dei datiModellazione predittiva e Machine Learning