I feel like I'm missing something simple here, but is it possible to script the Make Validation Column platform without the window opening? I was trying trying to use it to create stratified validation columns with grouping via a script. Alternately, is there a column formula or function to create a stratified sample sample with groups?
If you create it interactively and choose "Formula" rather than "Fixed", you will see a formula like this:
Make Validation Formula( [0.75, 0.25, 0], <<Stratification Columns( :Y1 ) )
This is stratified by a column named Y1.
Is this the function you tried?
valid.PNG
I don't believe that formula includes stratification, so instead I was trying this:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Lipid Data.jmp" );
dt << Make Validation Column(
Stratification Columns( :Gender ),
Training Set( 0.50 ),
Validation Set( 0.25 ),
Test Set( 0.25 ),
New Column Name( "Valid1" ),
Random Seed( 1234 ),
Go
);
If you create it interactively and choose "Formula" rather than "Fixed", you will see a formula like this:
Make Validation Formula( [0.75, 0.25, 0], <<Stratification Columns( :Y1 ) )
This is stratified by a column named Y1.
Ah ha, okay I apologize as it was setting a Random Seed that I couldn't get working with the Make Validation Formula. The option to set a Random Seed disappears from the UI when selecting a formula. But, I just found that Random Reset can solve this:
Names default to here(1);
dt = Open("$Sample_data/iris.jmp");
//Make a grouping Column
dt << New Column("Group", Numeric, "Nominal", Format("Best", 12), Formula(Floor((Row() - 1) / 5)));
random reset(10);
vals = transform each({r}, 1::nrow(dt), row() = r;
Make Validation Formula(
[0.75, 0.25, 0],
<<Stratification Columns( :Sepal length ),
<<Grouping Columns( :Group )
)
);
New Column("Validation with Grouping", Numeric, "Nominal", Format("Best", 12), Set Values(vals), Value Labels({0 = "Training", 1 = "Validation", 2 = "Test"}), Use Value Labels(1));