Ri: Assegna la categoria alla riga mantenendo fissa la probabilità totaleVorrei provare questa formula.
p = Random Uniform();
If( p <= 0.5, 0, p <= 0.8, 1, 2 );
Ho usato il 50% di training, il 30% di validazione e il 20% di test.
Ri: Assegna la categoria alla riga mantenendo fissa la probabilità totaleCiao @markbailey ,
Grazie per il suggerimento Funziona, tuttavia l'ho modificato leggermente perché non voglio avere un rapporto fisso di treno, convalida e prova, ma piuttosto modifica questo ogni bootstrap simula per vedere se esiste un rapporto ottimale di treno / convalida / prova, poiché le selezioni in una colonna di validazione possono avere un impatto sull'adattamento del modello, forse una semplice suddivisione 0.6, 0.2, 0.2 non è ottimale. Forse dovrebbe essere 0,72, 0,15, 0,13 per esempio.
p = Random Uniform();
If( p <= Random Uniform(x1,x2), 0,<BR /> p <= Random Uniform(X3,x4), 1,<BR /> p <= Random Uniform(x5,x6), 2 );
La regolazione di x1, x2, x3, x4, x5 e x6 può portare a un intervallo di rapporti diversi del treno / convalida / prova nella colonna formula.
Grazie!,
DS
Ri: Assegna la categoria alla riga mantenendo fissa la probabilità totaleDovresti usare solo una variabile casuale alla volta. Non è necessario chiamare Random Uniform () più di una volta, prima di chiamare la funzione If (). Usa le tue variabili per le espressioni booleane.
p = Random Uniform();
If( p <= x1, 0, p <= x2, 1, 2 );
Assegna la categoria alla riga mantenendo fissa la probabilità totaleCara JMP Community,
(WE10, 64 bit, JMP Pro 4.1.0)
Sto provando a generare una formula di colonna che esegue un'azione simile a "crea colonna di convalida" assegnando 0, 1 o 2 alla riga. Sto provando la funzione Categoria casuale come modo per farlo, e funziona, ma non nel modo che desidero. Assegna 0, 1 o 2 alle righe, ma quando sommi la frequenza di ciascuna categoria, ottieni un valore maggiore di 1, che non voglio.
In "Crea colonna di convalida", puoi assegnare una determinata percentuale della tabella di dati come "treno", "convalida" o "test" (0, 1, 2) e la somma di tali frazioni si aggiunge sempre a 1. Voglio farlo con una funzione, come Categoria casuale, in modo che la frazione di "0", "1" e "2" si sommino a 1. Per semplicità, voglio mantenere il numero di "1" uguale al numero di "2", ovvero il numero di dati di convalida e test sono uguali e aggiungere fino a 1 - numero di righe di dati di allenamento.
Lo scopo di tutto ciò è che mi piacerebbe testare la messa a punto di un modello modificando il numero di treni, convalidare e testare set di dati al fine di ridurre al minimo l'RMSE. Questo viene fatto facendo clic con il pulsante destro del mouse sulla statistica di interesse e quindi selezionando "Simula", che esegue l'avvio automatico ed esegue nuovamente il modello per valutare come cambia la statistica. MA, devi avere una funzione per scambiare il numero di righe in ciascuno dei set di dati di validazione.
Ogni volta che esegue una simulazione, "genera" una nuova colonna di convalida, ma con un diverso rapporto tra le righe "treno", "convalida", "test". L'output potrebbe quindi essere utilizzato per trovare il rapporto ottimale dei tre per avere un modello con prestazioni migliori.
Qualsiasi pensiero / feedback su questo è molto apprezzato.
Grazie!,
DS
Ri: Assegna la categoria alla riga mantenendo fissa la probabilità totaleLo schema è solido. Si comporta meglio con campioni più grandi, però. Ecco forse una versione migliore. (Di solito non uso formule.)
Names Default to Here( 1 );
n = 500;
dt = New Table( "Again and Again",
Add Rows( n ),
New Column( "Y", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "X1", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "X2", "Numeric", "Continuous", Values( J( n, 1, Random Normal() ) ) ),
New Column( "Validation", "Numeric", "Nominal" )
);
training proportion = 0.6;
valid threshold = 1 - ((1 - training proportion) / 2);
:Validation << Set Values(
J( n, 1, p = Random Uniform(); If( p <= training proportion, 0, p <= valid threshold, 1, 2 ) );
);
C'è un motivo per cui porteresti una proporzione così grande per i test?
Ri: Assegna la categoria alla riga mantenendo fissa la probabilità totaleCiao @markbailey ,
Se uso la versione modificata, ottengo una gamma più ampia di rapporti rispetto a quando utilizzo la forma condensata.
Al contrario, posso vedere una gamma più ampia per test set di formazione (circa il 65% -78%) con gli altri distribuiti di conseguenza - circa 50/50 validazione / test. Questo è davvero quello che sto cercando: cambiare la percentuale di test l'addestramento ha impostato tra un valore basso e un valore superiore e quindi ha diviso il resto 50/50: validazione / test.
Grazie!,
DS
Ri: Assegna la categoria alla riga mantenendo fissa la probabilità totaleGrazie ancora per i tuoi suggerimenti! Ho avuto un refuso nella mia precedente risposta e l'ho modificato. La parte più grande dovrebbe essere per il set di allenamento, non per il set di test.