Print

Print


Actually my intention was to demostrate that the fix worked since I got the
same results 20 times in one java invocation, I know about the seed.
Can we say that the ECJ can run multiple times now?


-----Mensaje original-----
De: ECJ Evolutionary Computation Toolkit
[mailto:[log in to unmask]] En nombre de Sean Luke
Enviado el: Martes, 25 de Mayo de 2004 08:47 p.m.
Para: [log in to unmask]
Asunto: Re: RV: 10 fold cross validation

Jesus, ECJ has guaranteed duplicability.  If you load from the same
parameters, you'll get the same results.  So it's not unexpected that
the same parameter file will give you the same results.  Ordinarily you
run ECJ ten times on the command line, something like this in tcsh
(we'll use the numbers 1 through 10 as our seeds):

foreach i (1 2 3 4 5 6 7 8 9 10)
        java ec.Evolve \
                -file ec/app/regression/erc.params \
                -p seed.0=$i \
                -p stat.file=stat.${i}.out
end

If you've chosen to try to get ECJ to run ten times inside a single
Java process, you'll still need to change the random number generator
seed.  If you're doing this via make(), you should be able to do
something like this:

make(new String[] {"-file", "ec/app/regression/erc.params", "-p",
"seed.0="+seed, "-p", "stat.file=stat."+seed+"out"});

...etc.

Alternatively if you're setting everything up in your own version of
make(), you just after you load the parameter file into the parameter
database, physically set the seed.0 parameter, something along these
lines:

parameters.set("seed.0", ""+seed);

Programmatically-set parameters override all others in the database.

Sean