README_Experiment_Gui
上传用户:wellsales
上传日期:2021-03-11
资源大小:10607k
文件大小:9k
源码类别:

工具条

开发平台:

Others

  1. ===================================================================
  2. Experiment Gui Quick Primer
  3. ===================================================================
  4. NOTE THAT THIS README IS FOR THE "ADVANCED" MODE OF THE EXPERIMENTER
  5. (however, some of it may be useful for the "simple" mode as well).
  6. For a more in-depth documentation, please refer to the 
  7. ExperimenterTutorial.pdf.
  8. The basic philosophy of the Experiment package is described briefly in
  9. the main README file. Please read this first before continuing.
  10. The Experimenter provides a graphical front end to the classes in the
  11. Experiment package. However, the Experimenter can be bewildering for
  12. the new user. Here is a quick rundown on how to set it up for doing a
  13. standard 10x10 fold cross-validation experiment (that is, 10 runs of
  14. 10 fold cross validation on a bunch of data sets using several
  15. classifiers).
  16. Setting up and running the experiment:
  17. First start the Experimenter:
  18. java weka.gui.experiment.Experimenter.
  19. Next click "New" for a new experiment.
  20. Next choose a destination for results:
  21. click on the destination panel and choose InstancesResultListener.
  22. Set the output file for the InstancesResultListener (all results
  23. will be saved in an arff file so that you can load them again
  24. later and perform the t-test again etc.)
  25. Now choose a ResultProducer: click on the Result generator panel and
  26. select AveragingResultProducer (this result producer takes results
  27. from a CrossValidationResultProducer and averages them----this will
  28. give you the 10 averaged results I mentioned above). Do not set the
  29. "calculateStdDevs" option to true for the
  30. AveragingResultProducer---this calculates the standard deviation for a
  31. SINGLE run of cross-validation. The standard deviation that you are
  32. most likely to be interested in is the standard deviation of the
  33. AVERAGES from the 10 runs of 10-fold cross validation.
  34. Next changed "Disabled" to "Enabled" under Generator properties (on
  35. the right hand side of the Setup panel. This will pop-up a list-view.
  36. Now expand the "resultProducer" entry in the list-view---this should
  37. show a property called "splitEvaluator". Expand the splitEvaluator
  38. entry.  This should show an entry called "classifier"---click on this
  39. to highlight it and press the "Select" button at the bottom of the
  40. list-view.
  41. Now you should see that the generator panel has become active and
  42. shows "ZeroR" as a single entry in a list. Here is where you can add
  43. (or delete) classifiers that will be involved in the experiment. Now
  44. add the classifers you are interested in comparing.
  45. Last step (whew!). Add datasets to compare the schemes on in the
  46. Datasets panel on the left of the Setup panel (Note that the last
  47. column is treated as the class column for all datasets---if this is
  48. not the case in a particular dataset of yours you will have to reorder
  49. the columns using an AttributeFilter).
  50. Now you are ready to run your experiment. Change to the "Run" panel
  51. and press start. If all goes well you will see the status of your
  52. experiment as it proceeds and will be informed in the Log panel of any
  53. errors.
  54. Analysing the results:
  55. Click on the Analyse panel of the Experimenter. If you've saved your
  56. results to an arff file you can load them into the Analyse panel
  57. either by pressing the experiment button (which goes and grabs the
  58. most recently run experiment's results) or by pressing the file
  59. button.
  60. You won't need to adjust the Row Key fields, Run fields or Column key
  61. fields. If you are just interested in percent correct as your accuracy
  62. measure you needn't change the Comparison field either. Significance
  63. allows you to change the statistical significance for the (corrected
  64. resampled) t-test (0.05 and 0.01 are standard levels of significance
  65. that you see used all the time in scientific papers). Test base allows
  66. you to set the scheme against which the other schemes are compared.
  67. Press Perform test to see a results table with significances.  The
  68. left hand column of the table shows the scheme which is being compared
  69. against. The figures are percent correct accuracies for each
  70. dataset/scheme. A 'v' indicates that a result is significantly higher
  71. at the chosen significance level; A '*' indicates that it is
  72. significantly lower; if no symbol is present it means that there is no
  73. significant difference at the chosen significance level.
  74. Click the Show std. deviations check box and press Perform test again
  75. to get the results with standard deviations.
  76. A couple of other summaries are available. If you choose
  77. "Summary" in the Test base drop-down list and press Perform
  78. test you will see a kind of wins vs losses table---it should
  79. be relatively self explaining. If you choose "Ranking" from
  80. the Test base drop-down you will get a kind of league-table.
  81. This ranks the schemes according to the total wins-losses
  82. against all other schemes.
  83. ===================================================================
  84. Distributed Experiments 
  85. ===================================================================
  86. This is very much experimental (no pun intended). The Experimenter
  87. includes the ability to split an experiment up and distribute it to
  88. multiple hosts. This works best when all results are being sent to a
  89. central data base, although you could have each host save its results
  90. to a distinct arff file and then merge the files afterwards.
  91. Distributed experiments have been tested using InstantDB (with the RMI
  92. bridge) and MySQL under Linux.
  93. Each host *must* have Java installed, access to whatever data
  94. sets you are using, and an experiment server running
  95. (weka.experiment.RemoteEngine).
  96. If results are being sent to a central data base, then the appropriate
  97. JDBC data base drivers must also be installed on each host and be
  98. listed in a DatabaseUtils.props file which is accessable to the
  99. RemoteEngine running on that host.
  100. To start a RemoteEngine experiment server on a host--- first copy the
  101. remoteExperimentServer.jar from weka-3-x-y to a directory on a host
  102. machine. Next unpack the jar with jar xvf remoteExperimentServer.jar.
  103. This will expand to three files: remoteEngine.jar, remote.policy, and
  104. DatabaseUtils.props. You will need to edit the DatabaseUtils.props
  105. file in order to list the names of the jdbc data base driver(s) you
  106. are using. The entry for the url to the data base is not needed by the
  107. remoteEngine server - this will be supplied by clients when they start
  108. a remote experiment on the server. The remoteEngine server will
  109. download code from clients on as needed basis. The remote.policy file
  110. grants permissions to downloaded code to perform certain operations,
  111. such as connect to ports etc. You will need to edit this file in order
  112. to specify correct paths in some of the permissions. This should be
  113. self explanitory when you look at the file. By default the policy file
  114. specifies that code can be downloaded from places accessable on the
  115. web via the http port (80). If you have a network accessable shared
  116. file system that your remoteEngines and clients will all be using,
  117. then you can also have remoteEngines obtain downloaded code from file
  118. urls - just uncomment the examples and replace the paths with
  119. something sensible. It is actually *necessary* to have a shared file
  120. system as data sets need to be accessable to tasks running on
  121. remoteEngines (see the first entry in remote.policy).
  122. To start the remoteEngine server first make sure that the CLASSPATH
  123. environment variable is unset and then type (from the directory
  124. containing remoteEngine.jar):
  125. java -classpath remoteEngine.jar:/path_to_any_jdbc_drivers 
  126. -Djava.security.policy=remote.policy 
  127. -Djava.rmi.server.codebase=file:/path_to_this_directory/remoteEngine.jar 
  128. weka.experiment.RemoteEngine
  129. If all goes well, you should see a message similar to:
  130. ml@kiwi:remote_engine>Host name : kiwi.cs.waikato.ac.nz
  131. RemoteEngine exception: Connection refused to host: kiwi.cs.waikato.ac.nz; nested exception is: 
  132.         java.net.ConnectException: Connection refused
  133. Attempting to start rmi registry...
  134. RemoteEngine bound in RMI registry
  135. Now you can repeat this process on all hosts that you want to use.
  136. The SetUp panel of the Experimenter works exactly as before, but there
  137. is now a small panel next to the Runs panel which controls whether an
  138. experiment will be distributed or not. By default, this panel is
  139. inactive indicating that the experiment is a default (single machine)
  140. experiment. Clicking the checkbox will enable a remote (distributed)
  141. experiment and activates the "Hosts" button. Clicking the Hosts button
  142. will popup a window into which you can enter the names of the machines
  143. that you want to distribute the experiment to. Enter fully qualified
  144. names here, eg. blackbird.cs.waikato.ac.nz.
  145. Once host names have been entered configure the rest of the experiment
  146. as you would normally. When you go to the Run panel and start the
  147. experiment progress on sub-experiments running on the different hosts
  148. will be displayed along with any error messages.
  149. Remote experiments work by splitting a standard experiment into a
  150. number of sub-experiments which get sent by RMI to remote hosts for
  151. execution. By default, an experiment is split up on the basis of data
  152. set, so each sub-experiment is self contained with all schemes applied
  153. to the single data set. This allows you to specify, at most, as many
  154. remote hosts as there are data sets in your experiment. If you only
  155. have a few data sets, you can split your experiment up by run instead.
  156. For example, a 10 x 10 fold cross validation experiment will get split
  157. into 10 sub-experiments - one for each run.