public class MultilayerPerceptron extends AbstractClassifier implements OptionHandler, WeightedInstancesHandler, Randomizable
-L <learning rate> Learning Rate for the backpropagation algorithm. (Value should be between 0 - 1, Default = 0.3).
-M <momentum> Momentum Rate for the backpropagation algorithm. (Value should be between 0 - 1, Default = 0.2).
-N <number of epochs> Number of epochs to train through. (Default = 500).
-V <percentage size of validation set> Percentage size of validation set to use to terminate training (if this is non zero it can pre-empt num of epochs. (Value should be between 0 - 100, Default = 0).
-S <seed> The value used to seed the random number generator (Value should be >= 0 and and a long, Default = 0).
-E <threshold for number of consequetive errors> The consequetive number of errors allowed for validation testing before the netwrok terminates. (Value should be > 0, Default = 20).
-G GUI will be opened. (Use this to bring up a GUI).
-A Autocreation of the network connections will NOT be done. (This will be ignored if -G is NOT set)
-B A NominalToBinary filter will NOT automatically be used. (Set this to not use a NominalToBinary filter).
-H <comma seperated numbers for nodes on each layer> The hidden layers to be created for the network. (Value should be a list of comma separated Natural numbers or the letters 'a' = (attribs + classes) / 2, 'i' = attribs, 'o' = classes, 't' = attribs .+ classes) for wildcard values, Default = a).
-C Normalizing a numeric class will NOT be done. (Set this to not normalize the class if it's numeric).
-I Normalizing the attributes will NOT be done. (Set this to not normalize the attributes).
-R Reseting the network will NOT be allowed. (Set this to not allow the network to reset).
-D Learning rate decay will occur. (Set this to cause the learning rate to decay).
Constructor and Description |
---|
MultilayerPerceptron()
The constructor.
|
Modifier and Type | Method and Description |
---|---|
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.
|
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() |
Capabilities |
getCapabilities()
Returns default capabilities of the classifier.
|
boolean |
getDecay() |
boolean |
getGUI() |
String |
getHiddenLayers() |
double |
getLearningRate() |
double |
getMomentum() |
boolean |
getNominalToBinaryFilter() |
boolean |
getNormalizeAttributes() |
boolean |
getNormalizeNumericClass() |
String[] |
getOptions()
Gets the current settings of NeuralNet.
|
boolean |
getReset() |
String |
getRevision()
Returns the revision string.
|
int |
getSeed()
Gets the seed for the random number generations
|
int |
getTrainingTime() |
int |
getValidationSetSize() |
int |
getValidationThreshold() |
String |
globalInfo()
This will return a string describing the classifier.
|
String |
GUITipText() |
String |
hiddenLayersTipText() |
String |
learningRateTipText() |
Enumeration |
listOptions()
Returns an enumeration describing the available options.
|
static void |
main(String[] argv)
Main method for testing this class.
|
String |
momentumTipText() |
String |
nominalToBinaryFilterTipText() |
String |
normalizeAttributesTipText() |
String |
normalizeNumericClassTipText() |
String |
resetTipText() |
String |
seedTipText() |
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(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(String[] options)
Parses a given list of options.
|
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 |
setSeed(int l)
This seeds the random number generator, that is used when a random
number is needed for the network.
|
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.
|
String |
toString() |
String |
trainingTimeTipText() |
String |
validationSetSizeTipText() |
String |
validationThresholdTipText() |
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, runClassifier, setDebug
public static void main(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 setSeed(int l)
setSeed
in interface Randomizable
l
- The seed.public int getSeed()
Randomizable
getSeed
in interface Randomizable
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(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 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 Capabilities getCapabilities()
getCapabilities
in interface Classifier
getCapabilities
in interface CapabilitiesHandler
getCapabilities
in class AbstractClassifier
Capabilities
public void buildClassifier(Instances i) throws Exception
buildClassifier
in interface Classifier
i
- The training data.Exception
- if can't build classification properly.public double[] distributionForInstance(Instance i) throws Exception
distributionForInstance
in interface Classifier
distributionForInstance
in class AbstractClassifier
i
- The instance to classify.Exception
- if can't classify instance.public Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class AbstractClassifier
public void setOptions(String[] options) throws Exception
-L <learning rate> Learning Rate for the backpropagation algorithm. (Value should be between 0 - 1, Default = 0.3).
-M <momentum> Momentum Rate for the backpropagation algorithm. (Value should be between 0 - 1, Default = 0.2).
-N <number of epochs> Number of epochs to train through. (Default = 500).
-V <percentage size of validation set> Percentage size of validation set to use to terminate training (if this is non zero it can pre-empt num of epochs. (Value should be between 0 - 100, Default = 0).
-S <seed> The value used to seed the random number generator (Value should be >= 0 and and a long, Default = 0).
-E <threshold for number of consequetive errors> The consequetive number of errors allowed for validation testing before the netwrok terminates. (Value should be > 0, Default = 20).
-G GUI will be opened. (Use this to bring up a GUI).
-A Autocreation of the network connections will NOT be done. (This will be ignored if -G is NOT set)
-B A NominalToBinary filter will NOT automatically be used. (Set this to not use a NominalToBinary filter).
-H <comma seperated numbers for nodes on each layer> The hidden layers to be created for the network. (Value should be a list of comma separated Natural numbers or the letters 'a' = (attribs + classes) / 2, 'i' = attribs, 'o' = classes, 't' = attribs .+ classes) for wildcard values, Default = a).
-C Normalizing a numeric class will NOT be done. (Set this to not normalize the class if it's numeric).
-I Normalizing the attributes will NOT be done. (Set this to not normalize the attributes).
-R Reseting the network will NOT be allowed. (Set this to not allow the network to reset).
-D Learning rate decay will occur. (Set this to cause the learning rate to decay).
setOptions
in interface OptionHandler
setOptions
in class AbstractClassifier
options
- the list of options as an array of stringsException
- if an option is not supportedpublic String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class AbstractClassifier
public String toString()
public String globalInfo()
public String learningRateTipText()
public String momentumTipText()
public String autoBuildTipText()
public String seedTipText()
public String validationThresholdTipText()
public String GUITipText()
public String validationSetSizeTipText()
public String trainingTimeTipText()
public String nominalToBinaryFilterTipText()
public String hiddenLayersTipText()
public String normalizeNumericClassTipText()
public String normalizeAttributesTipText()
public String resetTipText()
public String decayTipText()
public String getRevision()
getRevision
in interface RevisionHandler
getRevision
in class AbstractClassifier
Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.