|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--weka.classifiers.Classifier | +--weka.classifiers.functions.MultilayerPerceptron
A Classifier that uses backpropagation to classify instances. This network can be built by hand, created by an algorithm or both. The network can also be monitored and modified during training time. The nodes in this network are all sigmoid (except for when the class is numeric in which case the the output nodes become unthresholded linear units).
Constructor Summary | |
MultilayerPerceptron()
The constructor. |
Method Summary | |
java.lang.String |
autoBuildTipText()
|
void |
blocker(boolean tf)
A function used to stop the code that called buildclassifier from continuing on before the user has finished the decision tree. |
void |
buildClassifier(Instances i)
Call this function to build and train a neural network for the training data provided. |
java.lang.String |
decayTipText()
|
double[] |
distributionForInstance(Instance i)
Call this function to predict the class of an instance once a classification model has been built with the buildClassifier call. |
boolean |
getAutoBuild()
|
boolean |
getDecay()
|
boolean |
getGUI()
|
java.lang.String |
getHiddenLayers()
|
double |
getLearningRate()
|
double |
getMomentum()
|
boolean |
getNominalToBinaryFilter()
|
boolean |
getNormalizeAttributes()
|
boolean |
getNormalizeNumericClass()
|
java.lang.String[] |
getOptions()
Gets the current settings of NeuralNet. |
long |
getRandomSeed()
|
boolean |
getReset()
|
int |
getTrainingTime()
|
int |
getValidationSetSize()
|
int |
getValidationThreshold()
|
java.lang.String |
globalInfo()
This will return a string describing the classifier. |
java.lang.String |
GUITipText()
|
java.lang.String |
hiddenLayersTipText()
|
java.lang.String |
learningRateTipText()
|
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
java.lang.String |
momentumTipText()
|
java.lang.String |
nominalToBinaryFilterTipText()
|
java.lang.String |
normalizeAttributesTipText()
|
java.lang.String |
normalizeNumericClassTipText()
|
java.lang.String |
randomSeedTipText()
|
java.lang.String |
resetTipText()
|
void |
setAutoBuild(boolean a)
This will set whether the network is automatically built or if it is left up to the user. |
void |
setDecay(boolean d)
|
void |
setGUI(boolean a)
This will set whether A GUI is brought up to allow interaction by the user with the neural network during training. |
void |
setHiddenLayers(java.lang.String h)
This will set what the hidden layers are made up of when auto build is enabled. |
void |
setLearningRate(double l)
The learning rate can be set using this command. |
void |
setMomentum(double m)
The momentum can be set using this command. |
void |
setNominalToBinaryFilter(boolean f)
|
void |
setNormalizeAttributes(boolean a)
|
void |
setNormalizeNumericClass(boolean c)
|
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setRandomSeed(long l)
This seeds the random number generator, that is used when a random number is needed for the network. |
void |
setReset(boolean r)
This sets the network up to be able to reset itself with the current settings and the learning rate at half of what it is currently. |
void |
setTrainingTime(int n)
Set the number of training epochs to perform. |
void |
setValidationSetSize(int a)
This will set the size of the validation set. |
void |
setValidationThreshold(int t)
This sets the threshold to use for when validation testing is being done. |
java.lang.String |
toString()
|
java.lang.String |
trainingTimeTipText()
|
java.lang.String |
validationSetSizeTipText()
|
java.lang.String |
validationThresholdTipText()
|
Methods inherited from class weka.classifiers.Classifier |
classifyInstance, debugTipText, forName, getDebug, makeCopies, setDebug |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public MultilayerPerceptron()
Method Detail |
public static void main(java.lang.String[] argv)
argv
- should contain command line options (see setOptions)public void setDecay(boolean d)
d
- True if the learning rate should decay.public boolean getDecay()
public void setReset(boolean r)
r
- True if the network should restart with it's current options
and set the learning rate to half what it currently is.public boolean getReset()
public void setNormalizeNumericClass(boolean c)
c
- True if the class should be normalized (the class will only ever
be normalized if it is numeric). (Normalization puts the range between
-1 - 1).public boolean getNormalizeNumericClass()
public void setNormalizeAttributes(boolean a)
a
- True if the attributes should be normalized (even nominal
attributes will get normalized here) (range goes between -1 - 1).public boolean getNormalizeAttributes()
public void setNominalToBinaryFilter(boolean f)
f
- True if a nominalToBinary filter should be used on the
data.public boolean getNominalToBinaryFilter()
public void setRandomSeed(long l)
l
- The seed.public long getRandomSeed()
public void setValidationThreshold(int t)
t
- The threshold to use for this.public int getValidationThreshold()
public void setLearningRate(double l)
l
- The New learning rate.public double getLearningRate()
public void setMomentum(double m)
m
- The new Momentum.public double getMomentum()
public void setAutoBuild(boolean a)
a
- True if the network should be auto built.public boolean getAutoBuild()
public void setHiddenLayers(java.lang.String h)
h
- A string with a comma seperated list of numbers. Each number is
the number of nodes to be on a hidden layer.public java.lang.String getHiddenLayers()
public void setGUI(boolean a)
a
- True if gui should be created.public boolean getGUI()
public void setValidationSetSize(int a)
a
- The size of the validation set, as a percentage of the whole.public int getValidationSetSize()
public void setTrainingTime(int n)
n
- The number of epochs to train through.public int getTrainingTime()
public void blocker(boolean tf)
tf
- True to stop the thread, False to release the thread that is
waiting there (if one).public void buildClassifier(Instances i) throws java.lang.Exception
buildClassifier
in class Classifier
i
- The training data.
Throws
- exception if can't build classification properly.
java.lang.Exception
- if the classifier has not been
generated successfullypublic double[] distributionForInstance(Instance i) throws java.lang.Exception
distributionForInstance
in class Classifier
i
- The instance to classify.
if
- can't classify instance.
java.lang.Exception
- if distribution could not be
computed successfullypublic java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class Classifier
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-L num
Set the learning rate.
(default 0.3)
-M num
Set the momentum
(default 0.2)
-N num
Set the number of epochs to train through.
(default 500)
-V num
Set the percentage size of the validation set from the training to use.
(default 0 (no validation set is used, instead num of epochs is used)
-S num
Set the seed for the random number generator.
(default 0)
-E num
Set the threshold for the number of consequetive errors allowed during
validation testing.
(default 20)
-G
Bring up a GUI for the neural net.
-A
Do not automatically create the connections in the net.
(can only be used if -G is specified)
-B
Do Not automatically Preprocess the instances with a nominal to binary
filter.
-H str
Set the number of nodes to be used on each layer. Each number represents
its own layer and the num of nodes on that layer. Each number should be
comma seperated. There are also the wildcards 'a', 'i', 'o', 't'
(default 4)
-C
Do not automatically Normalize the class if it's numeric.
-I
Do not automatically Normalize the attributes.
-R
Do not allow the network to be automatically reset.
-D
Cause the learning rate to decay as training is done.
setOptions
in interface OptionHandler
setOptions
in class Classifier
options
- the list of options as an array of strings
java.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class Classifier
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String globalInfo()
public java.lang.String learningRateTipText()
public java.lang.String momentumTipText()
public java.lang.String autoBuildTipText()
public java.lang.String randomSeedTipText()
public java.lang.String validationThresholdTipText()
public java.lang.String GUITipText()
public java.lang.String validationSetSizeTipText()
public java.lang.String trainingTimeTipText()
public java.lang.String nominalToBinaryFilterTipText()
public java.lang.String hiddenLayersTipText()
public java.lang.String normalizeNumericClassTipText()
public java.lang.String normalizeAttributesTipText()
public java.lang.String resetTipText()
public java.lang.String decayTipText()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright (c) 2003 David Lindsay, Computer Learning Research Centre, Dept. Computer Science, Royal Holloway, University of London