Hi,
I think you need to specify the matrix in your last New Column statement (see below). I could not test it because your script has other errors.
nrun=10;
nTraining = 0.75;
nVal = 0.25;
mat = J(1,3);
mat [1,1] = nTraining;
mat [1,2] = nVal;
mat [1,3] = 0;
//getting this error
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <<ST... for=""></ST...>
SOrry for the typo in the JSL script. Here is the correct syntax.
nrun=10;
nTraining = 0.75;
nVal = 0.25;
mat = J(1,3);
mat [1,1] = nTraining;
mat [1,2] = nVal;
mat [1,3] = 0;
//getting this error
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <<ST... for=""></ST...>
Sorry again, I tried to answer too quickly. I do not have the right version of JMP to test the issue, but I think I solved the problem.
nrun=10;
nTraining = 0.75;
nVal = 0.25;
mat = J(1,3);
mat [1,1] = nTraining;
mat [1,2] = nVal;
mat [1,3] = 0;
//getting this error
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <<ST... for=""></ST...>
Hi,
For the sake of exploring all avenues, have you tried to generate transposed matrix?
nTraining = 0.75;
nVal = 0.25;
mat = J(3,1);
show (mat);
mat [1,1] = nTraining;
mat [2,1] = nVal;
mat [3,1] = 0;
show (mat);
//getting this error
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <<ST... for=""></ST...>
I cannot tell if the formula will be accepted because I don't have JMP Pro available, but at least, it generates a Comma-delimited matrix in the Formula.
Sorry for not being of greater help.
Best,
TS
Hi Thierry,
Your suggestion was in fact very close. You suggested building a 1x3 matrix when it needed a 3x1 matrix
dtstub= data table("test");
nrun=3;
nTraining = 0.75;
nVal = 0.25;
// Create the matrix
mat = J(3,1, {.}); // 1x3 matrix with missing values
mat [1,1] = nTraining;
mat [2,1] = nVal;
mat [3,1] = 0;
show (mat);
For( i = 1, i <= nrun, i++,
data table("test") <<
New Column( "Val",
Numeric,
"Nominal",
Format( "Best", 12 ),
Formula(
EVal (Eval Expr (Make Validation Formula(
expr(mat),
// [0.75, 0.25, 0],
<<STRATIFICATION columns=""></STRATIFICATION>In the process of assessing the performance of ML model, I'm trying to create a UI that will specify the number of run the model will be doing and the specify the proportion of training and validation data.
I'm trying to pass that info into a for loop that will create the columns based on the number of run specified and also to pass in the proportions. The loop works fine when I specify the proportion (second example) but not when using variables (nTraining, nVal).
Some suggestions would be greatly appreciated.
Thanks.
S
dtsub=New Table( "test",
Add Rows( 34 ),
New Column( "test_article",
Character( 7 ),
"Nominal",
Set Values(
{"1269442", "1100729", "1269449", "1269448", "1100723", "1100728",
"1269456", "1269457", "1269458", "1269454", "1269468", "1269469",
"1269466", "1269471", "1100397", "1100405", "1100406", "1100407",
"1100528", "1100534", "1100535", "1100540", "1100542", "1100566",
"1100585", "1100590", "1100725", "1100873", "1100914", "1100915",
"1100920", "1100990", "1100991", "1101101"}
),
Set Display Width( 61 )
),
New Column( "basic_class",
Character,
"Nominal",
Set Values(
{"0_Active", "0_Active", "0_Active", "0_Active", "0_Active", "0_Active",
"0_Active", "0_Active", "0_Active", "0_Active", "0_Active", "0_Active",
"1_MarginalActive", "1_MarginalActive", "1_MarginalActive",
"1_MarginalActive", "1_MarginalActive", "1_MarginalActive", "2_Inactive",
"1_MarginalActive", "2_Inactive", "1_MarginalActive", "2_Inactive",
"1_MarginalActive", "1_MarginalActive", "1_MarginalActive", "0_Active",
"1_MarginalActive", "0_Active", "0_Active", "2_Inactive", "0_Active",
"0_Active", "0_Active"}
),
Set Display Width( 90 )
),
Set Row States(
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1,
1, 0, 1, 0, 0, 0, 0, 0, 0]
)
);
nrun=10;
//the proportion forthe valdation column are specified here
nTraining = 0.75;
nVal = 0.25;
//getting this error
//Invalid matrix token.
//Line 232 Column 38: ...ake Validation Formula( [►nTraining, nVal, 0], <<ST... for=""></ST...>