2333data-mining-Java_implement
所属分类:Java编程
开发工具:Java
文件大小:3893KB
下载次数:30
上传日期:2007-10-15 11:20:15
上 传 者:
鹰飞
说明: 这是一个由java实现的数据挖掘,以前收集。里面有英文技术文档
(This is a java achieved by data mining, previously collected. There are English technical documentation)
文件列表:
2333data-mining-Java_implement\CHANGELOG-3-1-4 (13106, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-1-5 (6938, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-1-6 (8222, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-1-7 (29256, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-1-8 (33326, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-1-9 (22553, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-2 (35645, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-2-1 (5225, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-2-2 (3075, 2002-06-24)
2333data-mining-Java_implement\CHANGELOG-3-2-3 (608, 2002-06-24)
2333data-mining-Java_implement\COPYING (17977, 2002-06-24)
2333data-mining-Java_implement\data\contact-lenses.arff (2890, 2002-09-13)
2333data-mining-Java_implement\data\cpu.arff (6938, 2002-09-13)
2333data-mining-Java_implement\data\iris.arff (7486, 2002-09-13)
2333data-mining-Java_implement\data\labor.arff (8255, 2002-09-13)
2333data-mining-Java_implement\data\soybean.arff (202935, 2002-09-13)
2333data-mining-Java_implement\data\weather.arff (489, 2002-09-13)
2333data-mining-Java_implement\data\weather.nominal.arff (587, 2002-09-13)
2333data-mining-Java_implement\doc\allclasses-frame.html (32116, 2002-09-04)
2333data-mining-Java_implement\doc\deprecated-list.html (4517, 2002-09-04)
2333data-mining-Java_implement\doc\help-doc.html (7205, 2002-09-04)
2333data-mining-Java_implement\doc\index-all.html (1397906, 2002-09-04)
2333data-mining-Java_implement\doc\index.html (760, 2002-09-04)
2333data-mining-Java_implement\doc\overview-frame.html (3517, 2002-09-04)
2333data-mining-Java_implement\doc\overview-summary.html (7361, 2002-09-04)
2333data-mining-Java_implement\doc\overview-tree.html (68686, 2002-09-04)
2333data-mining-Java_implement\doc\package-list (398, 2002-09-04)
2333data-mining-Java_implement\doc\packages.html (645, 2002-09-04)
2333data-mining-Java_implement\doc\serialized-form.html (375452, 2002-09-04)
2333data-mining-Java_implement\doc\stylesheet.css (1240, 2002-09-04)
2333data-mining-Java_implement\doc\weka\associations\Apriori.html (46723, 2002-09-04)
2333data-mining-Java_implement\doc\weka\associations\Associator.html (12289, 2002-09-04)
2333data-mining-Java_implement\doc\weka\associations\ItemSet.html (34713, 2002-09-04)
2333data-mining-Java_implement\doc\weka\associations\package-frame.html (870, 2002-09-04)
2333data-mining-Java_implement\doc\weka\associations\package-summary.html (4753, 2002-09-04)
2333data-mining-Java_implement\doc\weka\associations\package-tree.html (4767, 2002-09-04)
2333data-mining-Java_implement\doc\weka\attributeSelection\ASEvaluation.html (13338, 2002-09-04)
2333data-mining-Java_implement\doc\weka\attributeSelection\ASSearch.html (11494, 2002-09-04)
2333data-mining-Java_implement\doc\weka\attributeSelection\AttributeEvaluator.html (10682, 2002-09-04)
2333data-mining-Java_implement\doc\weka\attributeSelection\AttributeSelection.html (29179, 2002-09-04)
... ...
=====================================================================
======
README
======
WEKA 3.2.3
28 May 2002
Java Programs for Machine Learning
Copyright (C) 19***, 1999, 2000, 2001 Eibe Frank,
Leonard Trigg, Mark Hall, Richard Kirkby
email: wekasupport@cs.waikato.ac.nz
=====================================================================
NOTE: We are following the Linux model of releases, where, an even
second digit of a release number indicates a "stable" release and an
odd second digit indicates a "development" release (e.g. 3.0.x is a
stable release, and 3.1.x is a developmental release). If you are
using a developmental release, you might get to play with extra funky
features, but it is entirely possible that these features
come/go/transmogrify from one release to the next. If you require
stability (e.g. if you are using Weka for teaching), use a stable
release.
=====================================================================
Contents:
---------
1. Installation
2. Getting started
- Classifiers
- Association rules
- Filters
- Data format
- Experiment package
- GUIs
3. Tutorial
4. Source code
5. Credits
6. Submission of code and bug reports
7. Copyright
----------------------------------------------------------------------
1. Installation:
----------------
For people familiar with their command-line interface
-----------------------------------------------------
a) Set WEKAHOME to be the directory which contains this README.
b) Add $WEKAHOME/weka.jar to your CLASSPATH environment variable.
c) Bookmark $WEKAHOME/doc/packages.html in your web browser.
To start a simple GUI for using Weka
------------------------------------
If you are using Java 2 (JDK 1.2 or equivalent) or you have Swing
1.1.1 (or later installed for Java 1.1), you should be able to just
double-click on the weka.jar icon, or from a command-line (assuming
you are in the directory containing weka.jar) type
java -jar weka.jar
or if you are using Windows use
javaw -jar weka.jar
This will start a small GUI (GUIChooser) from which you can select the
SimpleCLI interface or the more sophisticated Explorer and
Experimenter interfaces (see below). SimpleCLI just acts like a simple
command shell and has been provided mainly for Mac users who don't
have their own shell :)
If you are using NT/Windows you may need to create a file association
before you can double click on the weka.jar icon. Open the file
Explorer or a file browser window. Select View (or perhaps
Tools)->Options. Click on File Types. Click on New Type. Fill in the
Type field (put something like "java jar files"). Fill in the
Associated Extension ("jar"). Add new Action, with Action name Open,
and application as "javaw.exe -jar" (you will probably need to browse
to the location of your JRE to get the path correct for javaw---you
will find javaw in the "bin" directory of wherever your JRE is
installed).
If you are using some other Java virtual machine you need to start
GUIChooser from within weka.jar. For JDK 1.1 users something
like the following:
java -classpath weka.jar:$CLASSPATH weka.gui.GUIChooser
or if you are using Windows use
javaw -classpath weka.jar;$CLASSPATH weka.gui.GUIChooser
----------------------------------------------------------------------
2. Getting started:
-------------------
In the following, the names of files assume use of a unix command-line
with environment variables. For other command-lines (including SimpleCLI)
you should substitute the name of the directory where weka.jar lives
where you see $WEKAHOME. If your platform uses something other than / as
the path separator, also make the appropriate substitutions.
===========
Classifiers
===========
Try:
java weka.classifiers.j48.J48 -t $WEKAHOME/data/iris.arff
This prints out a decision tree classifier for the iris dataset
and ten-fold cross-validation estimates of its performance. If you
don't pass any options to the classifier, WEKA will list all the
available options. Try:
java weka.classifiers.j48.J48
The options are divided into "general" options that apply to most
classification schemes in WEKA, and scheme-specific options that
only apply to the current scheme---in this case J48. WEKA has a
common interface to all classification methods. Any class that
implements a classifier can be used in the same way as J48 is used
above. WEKA knows that a class implements a classifier if it
extends the Classifier or DistributionClassifier classes in
weka.classifiers. Almost all classes in weka.classifiers fall into
this category. Try, for example:
java weka.classifiers.NaiveBayes -t $WEKAHOME/data/labor.arff
Here is a list of the most important classifiers currently
implemented in weka.classifiers:
a) Classifiers for categorical prediction:
weka.classifiers.IBk: k-nearest neighbour learner
weka.classifiers.j48.J48: C4.5 decision trees
weka.classifiers.j48.PART: rule learner
weka.classifiers.NaiveBayes: naive Bayes with/without kernels
weka.classifiers.OneR: Holte's OneR
weka.classifiers.KernelDensity: kernel density classifier
weka.classifiers.SMO: support vector machines
weka.classifiers.Logistic: logistic regression
weka.classifiers.AdaBoostM1: AdaBoost
weka.classifiers.LogitBoost: logit boost
weka.classifiers.DecisionStump: decision stumps (for boosting)
b) Classifiers for numeric prediction:
weka.classifiers.LinearRegression: linear regression
weka.classifiers.m5.M5Prime: model trees
weka.classifiers.IBk: k-nearest neighbour learner
weka.classifiers.LWR: locally weighted regression
weka.classifiers.RegressionByDiscretization: uses categorical classifiers
=================
Association rules
=================
Next to classification schemes, there is some other useful stuff in
WEKA. Association rules, for example, can be extracted using the
apriori algorithm. Try
java weka.associations.Apriori -t $WEKAHOME/data/weather.nominal.arff
=======
Filters
=======
There are also a number of tools that allow you to manipulate a
dataset. These tools are called filters in WEKA and can be found
in weka.filters.
weka.filters.DiscretizeFilter: discretizes numeric data
weka.filters.AttributeFilter: deletes/selects attributes
etc.
Try:
java weka.filters.DiscretizeFilter -i $WEKAHOME/data/iris.arff -c last
===========
Data format
===========
Datasets in WEKA have to be formatted according to the arff
format. Examples of arff files can be found in $WEKAHOME/data.
What follows is a short description of the file format.
A dataset has to start with a declaration of its name:
@relation name
followed by a list of all the attributes in the dataset (including
the class attribute). These declarations have the form
@attribute attribute_name specification
If an attribute is nominal, specification contains a list of the
possible attribute values in curly brackets:
@attribute nominal_attribute {first_value, second_value, third_value}
If an attribute is numeric, specification is replaced by the keyword
numeric: (Integer values are treated as real numbers in WEKA.)
@attribute numeric_attribute numeric
In addition to these two types of attributes, there also exists a
string attribute type. This attribute provides the possibility to
store a comment or ID field for each of the instances in a dataset:
@attribute string_attribute string
After the attribute declarations, the actual data is introduced by a
@data
tag, which is followed by a list of all the instances. The instances
are listed in comma-separated format, with a question mark
representing a missing value. Comments are lines starting with %
==================
Experiment package
==================
There is now support for running experiments that involve evaluating
classifiers on repeated randomizations of datasets, over multiple
datasets (you can do much more than this, besides). The classes for
this reside in the weka.experiment package. The basic architecture is
that a ResultProducer (which generates results on some randomization
of a dataset) sends results to a ResultListener (which is responsible
for stating whether it already has the result, and otherwise storing
results).
Example ResultListeners include:
weka.experiment.CSVResultListener: outputs results as
comma-separated-value files.
weka.experiment.InstancesResultListener: converts results into a set
of Instances.
weka.experiment.DatabaseResultListener: sends results to a database
via jdbc.
Example ResultProducers include:
weka.experiment.RandomSplitResultProducer: train/test on a % split
weka.experiment.CrossValidationResultProducer: n-fold cross-validation
weka.experiment.AveragingResultProducer: averages results from another
ResultPoducer
weka.experiment.DatabaseResultProducer: acts as a cache for results,
storing them in a database.
The RandomSplitResultProducer and CrossValidatioResultProducer make
use of a SplitEvaluator to obtain actual results for a particular
split, provided are ClassifierSplitEvaluator (for nominal
classification) and RegressionSplitEvaluator (for numeric
classification). Each of these uses a Classifier for actual results
generation.
So, you might have a DatabaseResultListener, that is sent results from
an AveragingResultProducer, which produces averages over the n results
produced for each run of an n-fold CrossValidationResultProducer,
which in turn is doing nominal classification through a
ClassifierSplitEvaluator, which uses OneR for prediction. Whew. But
you can combine these things together to do pretty much whatever you
want. You might want to write a LearningRateResultProducer that splits
a dataset into increasing numbers of training instances.
In terms of database connectivity, we use InstantDB, a free database
implemented entirely in Java. It is available from:
http://www.instantdb.co.uk/index.htm
From there you will also be able to find a RmiJdbc bridge which is
useful for running a server that just listens for experiment results
from other machines. When using classes that access a database, you
will probably want to create a properties file that specifies which
jdbc drivers to use, and where to find the database. This file should
reside in your home directory or the current directory and be called
"DatabaseUtils.props". An example is provided in weka/experiment, this
file is used unless it is overidden by one in your home directory or
the current directory (in that order).
To run a simple experiment from the command line, try:
java weka.experiment.Experiment -r -T datasets/UCI/iris.arff \
-D weka.experiment.InstancesResultListener \
-P weka.experiment.RandomSplitResultProducer -- \
-W weka.experiment.ClassifierSplitEvaluator -- \
-W weka.classifiers.OneR
(Try "java weka.experiment.Experiment -h" to find out what these options
mean)
If you have your results as a set of instances, you can perform paired
t-tests using weka.experiment.PairedTTester (use the -h option to find
out what options it needs).
This is all much easier from the Experiment Environment GUI :-)
====
GUIs
====
We now have two GUIs to make using Weka a little easier: one that acts
much as the original interface to the old Weka 2 system, and one for
conducting experiments (see README_Experiment_Gui). Both of these
interfaces use Swing, so you need to either be using Java 2 or have
downloaded Swing 1.1.1 or later for your JDK 1.1. One of the
components of the GUIs is a generic object editor that requires a
configuration "GenericObjectEditor.props". There is an example file in
weka/gui. This file will be used unless it is overidden by one in your
home directory or the current directory (in that order). This file
simply specifies for each superclass which subclasses to offer as
choices. For example, which Classifiers are available/wanted to be
used when an object requires a property of type Classifier. An example
file is provided.
To start the Explorer:
java weka.gui.explorer.Explorer
To start the experiment editor:
java weka.gui.experiment.Experimenter
These _really_ need more documentation, but that'll do to get you
started :)
----------------------------------------------------------------------
4. Tutorial:
------------
A tutorial on how to use WEKA is in $WEKAHOME/Tutorial.pdf. However,
not everything in WEKA is covered in the Tutorial. For a complete list
you have to look at the online documentation
$WEKAHOME/doc/packages.html.
In particular, Tutorial.pdf is a draft from the forthcoming book (see
our web page), and so only describes features in the stable 3.0
release.
----------------------------------------------------------------------
5. Source code:
---------------
The source code for WEKA is in $WEKAHOME/weka-src.jar. To expand it,
use the jar utility that's in every Java distribution.
----------------------------------------------------------------------
6. Credits:
-----------
Len Trigg - weka.experiment, weka.gui, weka.gui.experiment,
weka.gui.explorer, weka.filters, weka.estimators,
weka.classifiers, weka.core
Eibe Frank - weka.core, weka.classifiers,
weka.classifiers.j48, weka.filters,
weka.associations
Mark Hall - weka.clusterers, weka.attributeSelection,
weka.classifiers.DecisionTable, weka.gui,
weka.gui.explorer, weka.gui.experiment,
weka.gui.visualize, weka.converters
Richard Kirkby - weka.classifiers.adtree
Malcolm Ware - weka.classifiers.neural,
weka.classifiers.UserClassifier
Bernhard Pfahringer - weka.classifiers.adtree
Yong Wang - weka.classifiers.m5
Abdelaziz Mahoui - weka.classifiers.kstar
Ian H. Witten - weka.classifiers.OneR, weka.classifiers.Prism
Stuart Inglis - weka.classifiers.IB1
... and others!
----------------------------------------------------------------------
7. Call for code and bug reports:
---------------------------------
If you have implemented a learning scheme, filter, application,
visualization tool, etc., using the WEKA classes, and you think it
should be included in WEKA, send us the code, and we can put it
in the next WEKA distribution.
If you find any bugs, send a fix to wekasupport@cs.waikato.ac.nz.
If that's too hard, just send us a bug report.
-----------------------------------------------------------------------
8. Copyright:
-------------
WEKA is distributed under the GNU public license. Please read
the file COPYING.
-----------------------------------------------------------------------
近期下载者:
相关文件:
收藏者: