JSL - Répétitions dans une fonction de plate-formeNames 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 ) ) ),
);
J'essaie d'adapter plus d'un modèle neuronal à l'aide du script ci-joint. Si au lieu de la boucle for j'écris plusieurs fois Fit( NTanH(2)) cela fonctionne bien, mais avec une boucle for je n'arrive pas à le faire fonctionner. Des suggestions ? Merci !
Automatisation et scriptsExploration et visualisation des donnéesRe : JSL - Répétitions dans une fonction de plate-formeVous pouvez déplacer Fit(NTanH()) en dehors de Neural(). Vous trouverez ci-dessous un exemple tiré de l'index de script :

Version modifiée de l'index de script avec boucle 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 - Répétitions dans une fonction de plate-formeSalut Jarmo, c'était une option que je n'ai pas essayée et c'est une solution à mon problème. Fonctionne bien. Merci!
Re : JSL - Répétitions dans une fonction de plate-formeSalut Jarmo, Ci-dessous est un script de travail:
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;Cependant, je veux rendre le Fit( NTanH(2)) flexible. La façon dont vous avez démontré ne fonctionne pas ici, j'ai essayé de le résoudre par le script suivant (en omettant la première partie):
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;
Mais maintenant, je reçois le message d'erreur : "Impossible d'indiquer la boîte d'affichage dans l'accès ou l'évaluation de 'rpt[/*###*/"Neural",Outline Box(1),"Validation","Type",Table Box(1 )]' , rpt[/*###*/"Neural", Outline Box( 1 ), "Validation", "Type", Table Box( 1 )]". Je ne comprends pas pourquoi je reçois ce message, car le premier script fonctionne bien.
Avez-vous une solution à ce problème et pouvez-vous expliquer pourquoi j'ai ce problème, afin de comprendre un peu mieux JSL. Merci!
Re : JSL - Répétitions dans une fonction de plate-formeMerci, Jarmo, c'était là que je cherchais. Ligne simple, mais difficile à comprendre pour quelqu'un qui découvre JSL !
Re : JSL - Répétitions dans une fonction de plate-formeLe code ne trouve pas les références correctes, il se peut que le changement rpt = Current Window(); to rpt = Current Report() est suffisant, mais je suggérerais fortement d'utiliser la référence que vous (pouvez) avoir (dans mon exemple 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;