JSL - Repeticiones dentro de una función de plataformaNames Default To Here( 1 );
// Create an Example data table
dt = currentdatatable();
// Get the names of the columns in the data table
colNames = dt << get column group( "WLS" );
nIters = 2;
Neural(
Y( :Type ),
X(eval(colNames)),
Validation Method( "KFold", 5 ),
Set Random Seed( 2 ),
for( k=1, k <= nIters, k++, Fit( NTanH ( 2 ) ) ),
);
Estoy intentando ajustar más de un modelo neuronal usando el script adjunto. Si en lugar del bucle for escribo varias veces Fit(NTanH(2)) funciona bien, pero con un bucle for no puedo lograr que funcione. ¿Alguna sugerencia? ¡Gracias!
Automatización y scriptingExploración y visualización de datosRe: JSL - Repeticiones dentro de una función de plataformaPuede mover Fit(NTanH()) fuera de Neural(). A continuación se muestra un ejemplo del índice de secuencias de comandos:

Versión modificada del índice de secuencias de comandos con bucle for:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Boston Housing.jmp");
obj = Neural(
Y(:mvalue),
X(:crim, :indus, :chas, :nox, :rooms, :age, :distance, :radial),
Set Random Seed(2)
);
For(i = 1, i <= 2, i++,
obj << Fit(NTanH(4));
);

Re: JSL - Repeticiones dentro de una función de plataformaHola Jarmo, esa fue una opción que no probé y es una solución a mi problema. Funciona bien. ¡Gracias!
Re: JSL - Repeticiones dentro de una función de plataformaHola Jarmo, a continuación se muestra un script de trabajo:
Names Default To Here( 1 );
delete symbols();
dt = current data table();
colNames = dt << get column group("WLs");
exclColnames = dt << get excluded columns();
For( i = 1, i <= N Items( exclColnames ), i++,
Remove From( colNames, As List( Loc( colNames, exclColnames[i] ) ) )
);
rpt = New Window( "Neural of Type", dt <<
Neural(
Y( :Type ),
X( eval ( colNames ) ),
Informative Missing( 0 ),
Validation Method( "KFold", 5 ),
Set Random Seed( 2 ),
Fit( NTanH( 2 ) ),
Fit( NTanH( 2 ) ),
Fit( NTanH( 2 ) )
)
);
Wait( 0 );
rpt["Neural", Outline Box( 1 ), "Validation", "Type", Table Box( 1 )] <<
Make Combined Data Table;
rpt << Close Window;Sin embargo, quiero que Fit(NTanH(2)) sea flexible. La forma en que demostraste no funciona aquí, traté de resolverlo con el siguiente script (omitiendo la primera parte):
obj =Neural(
Y( :Type ),
X( eval ( colNames ) ),
Informative Missing( 0 ),
Validation Method( "KFold", 5 ),
Set Random Seed( 2 ),
);
for(i=1, i<=3, i++, obj << Fit( NTanH(2)));
rpt = current window();<BR />
Wait( 0 );
rpt["Neural", Outline Box( 1 ), "Validation", "Type", Table Box( 1 )] <<
Make Combined Data Table;
rpt << Close Window;
Pero ahora aparece el mensaje de error: "No se puede subíndice Display Box en acceso o evaluación de 'rpt[ /*###*/"Neural",Outline Box(1),"Validation","Type",Table Box(1 )]' , rpt[/*###*/"Neural", Cuadro de esquema( 1 ), "Validación", "Tipo", Cuadro de tabla( 1 )]". No entiendo por qué me sale este mensaje, porque el primer script funciona bien.
¿Tiene una solución para este problema y puede explicar por qué tengo este problema, para entender JSL un poco mejor? ¡Gracias!
Re: JSL - Repeticiones dentro de una función de plataformaGracias, Jarmo, eso era lo que buscaba. ¡Línea simple, pero difícil de entender para alguien nuevo en JSL!
Re: JSL - Repeticiones dentro de una función de plataformaEl código no está encontrando las referencias correctas, podría ser que cambiando rpt = Ventana actual(); to rpt = Informe actual () es suficiente, pero recomendaría encarecidamente usar la referencia que (puede) tener (en mi ejemplo obj)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Boston Housing.jmp");
obj = Neural(
Y(:mvalue),
X(:crim, :indus, :chas, :nox, :rooms, :age, :distance, :radial),
Set Random Seed(2),
<< Fit(NTanH(4)),
<< Fit(NTanH(4)),
<< Fit(NTanH(4))
);
For(i = 1, i <= 2, i++,
obj << Fit(NTanH(4));
);
Report(obj)[Outline Box("Neural")][Outline Box("Training")][Table Box(1)] << Make Combined Data Table;