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

工具条

开发平台:

Others

  1. =====================================================================
  2.                                                                        
  3.                               ======                                   
  4.                               README                                   
  5.                               ======                                   
  6.                                                                        
  7.                             WEKA 3.4.12
  8.                             19 Dec 2007
  9.                                                                        
  10.                  Java Programs for Machine Learning 
  11.            Copyright (C) 1998-2007  University of Waikato
  12.               web: http://www.cs.waikato.ac.nz/~ml/weka            
  13.                                                                        
  14. =====================================================================
  15. Contents:
  16. ---------
  17. 1. Using one of the graphical user interfaces in Weka
  18. 2. The Weka data format (ARFF)
  19. 3. Using Weka from the command line
  20.    - Classifiers
  21.    - Association rules
  22.    - Filters
  23. 4. Database access
  24. 5. The Experiment package (and tutorial)
  25. 6. Explorer guide
  26. 7. Source code
  27. 8. Credits
  28. 9. Submission of code and bug reports
  29. 10. Copyright
  30. ----------------------------------------------------------------------
  31. 1. Using one of the graphical user interfaces in Weka:
  32. ------------------------------------------------------
  33. This assumes that the Weka archive that you have downloaded has been
  34. extracted into a directory containing this README and that you haven't
  35. used an automatic installer (e.g. the one provided for Windows).
  36. Weka 3.4 requires Java 1.4 or higher. Depending on your platform you
  37. may be able to just double-click on the weka.jar icon to run the
  38. graphical user interfaces for Weka. Otherwise, from a command-line
  39. (assuming you are in the directory containing weka.jar), type
  40. java -jar weka.jar
  41. or if you are using Windows use
  42. javaw -jar weka.jar
  43. Note:
  44. Using "-jar" overrides your CLASSPATH variable! If you need to
  45. use classes specified in the CLASSPATH, use the following command
  46. instead:
  47. java -classpath $CLASSPATH:weka.jar weka.gui.Main
  48. or if you are using Windows use
  49. javaw -classpath "%CLASSPATH%;weka.jar" weka.gui.Main
  50. This will start a small graphical user interface (GUIChooser) from
  51. which you can select the SimpleCLI interface or the more sophisticated
  52. Explorer, Experimenter, and Knowledge Flow interfaces. SimpleCLI just
  53. acts like a simple command shell. The Explorer is currently the main
  54. interface for data analysis using Weka. The Experimenter can be used
  55. to compare the performance of different learning algorithms across
  56. various datasets. The Knowledge Flow provides a component-based
  57. alternative to the Explorer interface.
  58. Example datasets that can be used with Weka are in the sub-directory
  59. called "data", which should be located in the same directory as this
  60. README file.
  61. The Weka user interfaces provide extensive built-in help facilities
  62. (tool tips, etc.). Documentation for the Explorer can be found in
  63. ExplorerGuide.pdf (also in the same directory as this
  64. README).
  65. You can also start the GUIChooser from within weka.jar:
  66. java -classpath weka.jar:$CLASSPATH weka.gui.GUIChooser
  67. or if you are using Windows use
  68. javaw -classpath weka.jar;$CLASSPATH weka.gui.GUIChooser
  69. ----------------------------------------------------------------------
  70. 2. The Weka data format (ARFF):
  71. -------------------------------
  72. Datasets for WEKA should be formatted according to the ARFF
  73. format. (However, there are several converters included in WEKA that
  74. can convert other file formats to ARFF. The Weka Explorer will use
  75. these automatically if it doesn't recognize a given file as an ARFF
  76. file.) Examples of ARFF files can be found in the "data" subdirectory.
  77. What follows is a short description of the file format. A more
  78. complete description is available from the Weka web page.
  79. A dataset has to start with a declaration of its name:
  80. @relation name
  81. followed by a list of all the attributes in the dataset (including 
  82. the class attribute). These declarations have the form
  83. @attribute attribute_name specification
  84. If an attribute is nominal, specification contains a list of the 
  85. possible attribute values in curly brackets:
  86. @attribute nominal_attribute {first_value, second_value, third_value}
  87. If an attribute is numeric, specification is replaced by the keyword 
  88. numeric: (Integer values are treated as real numbers in WEKA.)
  89. @attribute numeric_attribute numeric
  90. In addition to these two types of attributes, there also exists a
  91. string attribute type. This attribute provides the possibility to
  92. store a comment or ID field for each of the instances in a dataset:
  93. @attribute string_attribute string
  94. After the attribute declarations, the actual data is introduced by a 
  95. @data
  96. tag, which is followed by a list of all the instances. The instances 
  97. are listed in comma-separated format, with a question mark 
  98. representing a missing value. 
  99. Comments are lines starting with % and are ignored by Weka.
  100. ----------------------------------------------------------------------
  101. 3. Using Weka from the command line:
  102. ------------------------------------
  103. If you want to use Weka from your standard command-line interface
  104. (e.g. bash under Linux):
  105. a) Set WEKAHOME to be the directory which contains this README.
  106. b) Add $WEKAHOME/weka.jar to your CLASSPATH environment variable.
  107. c) Bookmark $WEKAHOME/doc/packages.html in your web browser.
  108. Alternatively you can try using the SimpleCLI user interface available
  109. from the GUI chooser discussed above.
  110. In the following, the names of files assume use of a unix command-line
  111. with environment variables. For other command-lines (including
  112. SimpleCLI) you should substitute the name of the directory where
  113. weka.jar lives for $WEKAHOME. If your platform uses something other
  114. character than / as the path separator, also make the appropriate
  115. substitutions.
  116. ===========
  117. Classifiers
  118. ===========
  119. Try:
  120. java weka.classifiers.trees.J48 -t $WEKAHOME/data/iris.arff
  121. This prints out a decision tree classifier for the iris dataset 
  122. and ten-fold cross-validation estimates of its performance. If you
  123. don't pass any options to the classifier, WEKA will list all the 
  124. available options. Try:
  125. java weka.classifiers.trees.J48
  126. The options are divided into "general" options that apply to most
  127. classification schemes in WEKA, and scheme-specific options that only
  128. apply to the current scheme---in this case J48. WEKA has a common
  129. interface to all classification methods. Any class that implements a
  130. classifier can be used in the same way as J48 is used above. WEKA
  131. knows that a class implements a classifier if it extends the
  132. Classifier class in weka.classifiers. Almost all classes in
  133. weka.classifiers fall into this category. Try, for example:
  134. java weka.classifiers.bayes.NaiveBayes -t $WEKAHOME/data/labor.arff
  135. Here is a list of some of the classifiers currently implemented in
  136. weka.classifiers:
  137. a) Classifiers for categorical prediction:
  138. weka.classifiers.lazy.IBk: k-nearest neighbour learner
  139. weka.classifiers.trees.J48: C4.5 decision trees 
  140. weka.classifiers.rules.PART: rule learner 
  141. weka.classifiers.bayes.NaiveBayes: naive Bayes with/without kernels
  142. weka.classifiers.rules.OneR: Holte's OneR
  143. weka.classifiers.functions.SMO: support vector machines
  144. weka.classifiers.functions.Logistic: logistic regression
  145. weka.classifiers.meta.AdaBoostM1: AdaBoost
  146. weka.classifiers.meta.LogitBoost: logit boost
  147. weka.classifiers.trees.DecisionStump: decision stumps (for boosting)
  148. etc.
  149. b) Classifiers for numeric prediction:
  150. weka.classifiers.functions.LinearRegression: linear regression
  151. weka.classifiers.trees.M5P: model trees
  152. weka.classifiers.rules.M5Rules: model rules
  153. weka.classifiers.lazy.IBk: k-nearest neighbour learner
  154. weka.classifiers.lazy.LWL: locally weighted learning
  155. =================
  156. Association rules
  157. =================
  158. Next to classification schemes, there is some other useful stuff in 
  159. WEKA. Association rules, for example, can be extracted using the 
  160. Apriori algorithm. Try
  161. java weka.associations.Apriori -t $WEKAHOME/data/weather.nominal.arff
  162. =======
  163. Filters
  164. =======
  165. There are also a number of tools that allow you to manipulate a
  166. dataset. These tools are called filters in WEKA and can be found
  167. in weka.filters.
  168. weka.filters.unsupervised.attribute.Discretize: discretizes numeric data
  169. weka.filters.unsupervised.attribute.Remove: deletes/selects attributes
  170. etc.
  171. Try:
  172. java weka.filters.supervised.attribute.Discretize -i
  173.   $WEKAHOME/data/iris.arff -c last
  174. ----------------------------------------------------------------------
  175. 4. Database access:
  176. -------------------
  177. In terms of database connectivity, you should be able to use any
  178. database with a Java JDBC driver. When using classes that access a
  179. database (e.g. the Explorer), you will probably want to create a
  180. properties file that specifies which JDBC drivers to use, where to
  181. find the database, and specify a mapping for the data types. This file
  182. should reside in your home directory or the current directory and be
  183. called "DatabaseUtils.props". An example is provided in
  184. weka/experiment (you need to expand wek.jar to be able to look a this
  185. file). Note that the settings in this file are used unless they are
  186. overidden by settings in the DatabaseUtils.props file in your home
  187. directory or the current directory (in that order).
  188. There are also example DatabaseUtils.props files for several common
  189. databases available (also in weka/experiment):
  190. * HSQLDB: DatabaseUtils.props.hsql
  191. * MS SQL Server 2000: DatabaseUtils.props.mssqlserver
  192. * MS SQL Server 2005 Express Edition: DatabaseUtils.props.mssqlserver2005
  193. * MySQL: DatabaseUtils.props.mysql
  194. * ODBC: DatabaseUtils.props.odbc
  195. * Oracle: DatabaseUtils.props.oracle
  196. * PostgreSQL: DatabaseUtils.props.postgresql
  197. ----------------------------------------------------------------------
  198. 5. The Experiment package (and tutorial):
  199. -----------------------------------------
  200. There is support for running experiments that involve evaluating
  201. classifiers on repeated randomizations of datasets, over multiple
  202. datasets (you can do much more than this, besides). The classes for
  203. this reside in the weka.experiment package. The basic architecture is
  204. that a ResultProducer (which generates results on some randomization
  205. of a dataset) sends results to a ResultListener (which is responsible
  206. for stating whether it already has the result, and otherwise storing
  207. results).
  208. Example ResultListeners include:
  209. weka.experiment.CSVResultListener: outputs results as
  210. comma-separated-value files.
  211. weka.experiment.InstancesResultListener: converts results into a set
  212. of Instances.
  213. weka.experiment.DatabaseResultListener: sends results to a database
  214. via JDBC. 
  215. Example ResultProducers include:
  216. weka.experiment.RandomSplitResultProducer: train/test on a % split
  217. weka.experiment.CrossValidationResultProducer: n-fold cross-validation
  218. weka.experiment.AveragingResultProducer: averages results from another
  219. ResultPoducer 
  220. weka.experiment.DatabaseResultProducer: acts as a cache for results,
  221. storing them in a database.
  222. The RandomSplitResultProducer and CrossValidationResultProducer make
  223. use of a SplitEvaluator to obtain actual results for a particular
  224. split, provided are ClassifierSplitEvaluator (for nominal
  225. classification) and RegressionSplitEvaluator (for numeric
  226. classification). Each of these uses a Classifier for actual results
  227. generation. 
  228. So, you might have a DatabaseResultListener, that is sent results from
  229. an AveragingResultProducer, which produces averages over the n results
  230. produced for each run of an n-fold CrossValidationResultProducer,
  231. which in turn is doing nominal classification through a
  232. ClassifierSplitEvaluator, which uses OneR for prediction. Whew. But
  233. you can combine these things together to do pretty much whatever you
  234. want. You might want to write a LearningRateResultProducer that splits
  235. a dataset into increasing numbers of training instances.
  236. To run a simple experiment from the command line, try:
  237. java weka.experiment.Experiment -r -T datasets/UCI/iris.arff  
  238.   -D weka.experiment.InstancesResultListener 
  239.   -P weka.experiment.RandomSplitResultProducer -- 
  240.   -W weka.experiment.ClassifierSplitEvaluator -- 
  241.   -W weka.classifiers.rules.OneR
  242. (Try "java weka.experiment.Experiment -h" to find out what these
  243. options mean)
  244. If you have your results as a set of instances, you can perform paired
  245. t-tests using weka.experiment.PairedTTester (use the -h option to find
  246. out what options it needs).
  247. However, all this is much easier if you use the Experimenter GUI.
  248. Check out the tutorial at: $WEKAHOME/ExperimenterTutorial.pdf
  249. ----------------------------------------------------------------------
  250. 6. Explorer guide:
  251. ------------------
  252. A guide on how to use the WEKA Explorer is in
  253. $WEKAHOME/ExplorerGuide.pdf.  For an explanation on how to use the
  254. other user interfaces in WEKA you might want to take a look at the
  255. book "Data Mining" by Witten and Frank (2005) (see our web page).
  256. ----------------------------------------------------------------------
  257. 7. Source code:
  258. ---------------
  259. The source code for WEKA is in $WEKAHOME/weka-src.jar. To expand it, 
  260. use the jar utility that's in every Java distribution.
  261. ----------------------------------------------------------------------
  262. 8. Credits:
  263. -----------
  264. Refer to the web page for a list of contributors:
  265. http://www.cs.waikato.ac.nz/~ml/weka/
  266. ----------------------------------------------------------------------
  267. 9. Call for code and bug reports:
  268. ---------------------------------
  269. If you have implemented a learning scheme, filter, application,
  270. visualization tool, etc., using the WEKA classes, and you think it 
  271. should be included in WEKA, send us the code, and we can potentially
  272. put it in the next WEKA distribution.
  273. The conditions for new classifiers (schemes in general) are that, 
  274. firstly, they have to be published in the proceedings of a renowned 
  275. conference (e.g., ICML) or as an article of respected journal (e.g., 
  276. Machine Learning) and, secondly, that they outperform other standard 
  277. schemes (e.g., J48/C4.5).
  278. If you find any bugs, send a bug report to the wekalist mailing list.
  279. -----------------------------------------------------------------------
  280. 10. Copyright:
  281. --------------
  282. WEKA is distributed under the GNU public license. Please read
  283. the file COPYING.
  284. -----------------------------------------------------------------------
  285. $Revision: 1.2.2.10 $