This class is experimental at present. Has been tested using CSVResultListener (sending results to standard out) and DatabaseResultListener (InstantDB + RmiJdbc bridge).
Getting started:
Start InstantDB (with the RMI bridge) on some machine. If using java2 then specify -Djava.security.policy=db.policy to the virtual machine. Where db.policy is as follows:
grant { permission java.security.AllPermission; };
Start RemoteEngine servers on x machines as per the instructons in the README_Experiment_Gui file. There must be a DatabaseUtils.props in either the HOME or current directory of each machine, listing all necessary jdbc drivers.
The machine where a RemoteExperiment is started must also have a copy of DatabaseUtils.props listing the URL to the machine where the database server is running (RmiJdbc + InstantDB).
Here is an example of starting a RemoteExperiment:
java -Djava.rmi.server.codebase=file:/path to weka classes/ \ weka.experiment.RemoteExperiment -L 1 -U 10 \ -T /home/ml/datasets/UCI/iris.arff \ -D "weka.experiment.DatabaseResultListener" \ -P "weka.experiment.RandomSplitResultProducer" \ -h rosebud.cs.waikato.ac.nz -h blackbird.cs.waikato.ac.nz -r -- \ -W weka.experiment.ClassifierSplitEvaluator -- \ -W weka.classifiers.bayes.NaiveBayes
The "codebase" property tells rmi where to serve up weka classes from. This can either be a file url (as long as a shared file system is being used that is accessable by the remoteEngine servers), or http url (which of course supposes that a web server is running and you have put your weka classes somewhere that is web accessable). If using a file url the trailing "/" is *most* important unless the weka classes are in a jar file.
Valid options are:
-L <num> The lower run number to start the experiment from. (default 1)
-U <num> The upper run number to end the experiment at (inclusive). (default 10)
-T <arff file> The dataset to run the experiment on. (required, may be specified multiple times)
-P <class name> The full class name of a ResultProducer (required). eg: weka.experiment.RandomSplitResultProducer
-D <class name> The full class name of a ResultListener (required). eg: weka.experiment.CSVResultListener
-N <string> A string containing any notes about the experiment. (default none)
Options specific to result producer weka.experiment.RandomSplitResultProducer:
-P <percent> The percentage of instances to use for training. (default 66)
-D Save raw split evaluator output.
-O <file/directory name/path> The filename where raw output will be stored. If a directory name is specified then then individual outputs will be gzipped, otherwise all output will be zipped to the named file. Use in conjuction with -D. (default splitEvalutorOut.zip)
-W <class name> The full class name of a SplitEvaluator. eg: weka.experiment.ClassifierSplitEvaluator
-R Set when data is not to be randomized and the data sets' size. Is not to be determined via probabilistic rounding.
Options specific to split evaluator weka.experiment.ClassifierSplitEvaluator:
-W <class name> The full class name of the classifier. eg: weka.classifiers.bayes.NaiveBayes
-C <index> The index of the class for which IR statistics are to be output. (default 1)
-I <index> The index of an attribute to output in the results. This attribute should identify an instance in order to know which instances are in the test set of a cross validation. if 0 no output (default 0).
-P Add target and prediction columns to the result for each fold.
Options specific to classifier weka.classifiers.rules.ZeroR:
-D If set, classifier is run in debug mode and may output additional info to the console@author Mark Hall (mhall@cs.waikato.ac.nz) @version $Revision: 1.16 $
|
|
|
|
|
|