Package weka.classifiers.functions
Class RBFNetwork
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.functions.RBFNetwork
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,CapabilitiesHandler
,OptionHandler
,RevisionHandler
public class RBFNetwork extends Classifier implements OptionHandler
Class that implements a normalized Gaussian radial basisbasis function network.
It uses the k-means clustering algorithm to provide the basis functions and learns either a logistic regression (discrete class problems) or linear regression (numeric class problems) on top of that. Symmetric multivariate Gaussians are fit to the data from each cluster. If the class is nominal it uses the given number of clusters per class.It standardizes all numeric attributes to zero mean and unit variance. Valid options are:-B <number> Set the number of clusters (basis functions) to generate. (default = 2).
-S <seed> Set the random seed to be used by K-means. (default = 1).
-R <ridge> Set the ridge value for the logistic or linear regression.
-M <number> Set the maximum number of iterations for the logistic regression. (default -1, until convergence).
-W <number> Set the minimum standard deviation for the clusters. (default 0.1).
- Version:
- $Revision: 1.10 $
- Author:
- Mark Hall, Eibe Frank
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description RBFNetwork()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildClassifier(Instances instances)
Builds the classifierjava.lang.String
clusteringSeedTipText()
Returns the tip text for this propertydouble[]
distributionForInstance(Instance instance)
Computes the distribution for a given instanceCapabilities
getCapabilities()
Returns default capabilities of the classifier, i.e., and "or" of Logistic and LinearRegression.int
getClusteringSeed()
Get the random seed used by K-means.int
getMaxIts()
Get the value of MaxIts.double
getMinStdDev()
Get the MinStdDev value.int
getNumClusters()
Return the number of clusters to generate.java.lang.String[]
getOptions()
Gets the current settings of the classifier.java.lang.String
getRevision()
Returns the revision string.double
getRidge()
Gets the ridge value.java.lang.String
globalInfo()
Returns a string describing this classifierjava.util.Enumeration
listOptions()
Returns an enumeration describing the available optionsstatic void
main(java.lang.String[] argv)
Main method for testing this class.java.lang.String
maxItsTipText()
Returns the tip text for this propertyjava.lang.String
minStdDevTipText()
Returns the tip text for this propertyjava.lang.String
numClustersTipText()
Returns the tip text for this propertyjava.lang.String
ridgeTipText()
Returns the tip text for this propertyvoid
setClusteringSeed(int seed)
Set the random seed to be passed on to K-means.void
setMaxIts(int newMaxIts)
Set the value of MaxIts.void
setMinStdDev(double newMinStdDev)
Set the MinStdDev value.void
setNumClusters(int numClusters)
Set the number of clusters for K-means to generate.void
setOptions(java.lang.String[] options)
Parses a given list of options.void
setRidge(double ridge)
Sets the ridge value for logistic or linear regression.java.lang.String
toString()
Returns a description of this classifier as a String-
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
-
-
-
-
Method Detail
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing this classifier- Returns:
- a description of the classifier suitable for displaying in the explorer/experimenter gui
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier, i.e., and "or" of Logistic and LinearRegression.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classClassifier
- Returns:
- the capabilities of this classifier
- See Also:
Logistic
,LinearRegression
-
buildClassifier
public void buildClassifier(Instances instances) throws java.lang.Exception
Builds the classifier- Specified by:
buildClassifier
in classClassifier
- Parameters:
instances
- the training data- Throws:
java.lang.Exception
- if the classifier could not be built successfully
-
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Computes the distribution for a given instance- Overrides:
distributionForInstance
in classClassifier
- Parameters:
instance
- the instance for which distribution is computed- Returns:
- the distribution
- Throws:
java.lang.Exception
- if the distribution can't be computed successfully
-
toString
public java.lang.String toString()
Returns a description of this classifier as a String- Overrides:
toString
in classjava.lang.Object
- Returns:
- a description of this classifier
-
maxItsTipText
public java.lang.String maxItsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getMaxIts
public int getMaxIts()
Get the value of MaxIts.- Returns:
- Value of MaxIts.
-
setMaxIts
public void setMaxIts(int newMaxIts)
Set the value of MaxIts.- Parameters:
newMaxIts
- Value to assign to MaxIts.
-
ridgeTipText
public java.lang.String ridgeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setRidge
public void setRidge(double ridge)
Sets the ridge value for logistic or linear regression.- Parameters:
ridge
- the ridge
-
getRidge
public double getRidge()
Gets the ridge value.- Returns:
- the ridge
-
numClustersTipText
public java.lang.String numClustersTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setNumClusters
public void setNumClusters(int numClusters)
Set the number of clusters for K-means to generate.- Parameters:
numClusters
- the number of clusters to generate.
-
getNumClusters
public int getNumClusters()
Return the number of clusters to generate.- Returns:
- the number of clusters to generate.
-
clusteringSeedTipText
public java.lang.String clusteringSeedTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setClusteringSeed
public void setClusteringSeed(int seed)
Set the random seed to be passed on to K-means.- Parameters:
seed
- a seed value.
-
getClusteringSeed
public int getClusteringSeed()
Get the random seed used by K-means.- Returns:
- the seed value.
-
minStdDevTipText
public java.lang.String minStdDevTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getMinStdDev
public double getMinStdDev()
Get the MinStdDev value.- Returns:
- the MinStdDev value.
-
setMinStdDev
public void setMinStdDev(double newMinStdDev)
Set the MinStdDev value.- Parameters:
newMinStdDev
- The new MinStdDev value.
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- Returns:
- an enumeration of all the available options
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Parses a given list of options. Valid options are:-B <number> Set the number of clusters (basis functions) to generate. (default = 2).
-S <seed> Set the random seed to be used by K-means. (default = 1).
-R <ridge> Set the ridge value for the logistic or linear regression.
-M <number> Set the maximum number of iterations for the logistic regression. (default -1, until convergence).
-W <number> Set the minimum standard deviation for the clusters. (default 0.1).
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classClassifier
- Parameters:
options
- the list of options as an array of strings- Throws:
java.lang.Exception
- if an option is not supported
-
getOptions
public java.lang.String[] getOptions()
Gets the current settings of the classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- an array of strings suitable for passing to setOptions
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
Main method for testing this class.- Parameters:
argv
- should contain the command line arguments to the scheme (see Evaluation)
-
-