weka.classifiers.functions
Class RBFNetwork

java.lang.Object
  extended by weka.classifiers.Classifier
      extended by 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
RBFNetwork()
           
 
Method Summary
 void buildClassifier(Instances instances)
          Builds the classifier
 java.lang.String clusteringSeedTipText()
          Returns the tip text for this property
 double[] distributionForInstance(Instance instance)
          Computes the distribution for a given instance
 Capabilities 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 classifier
 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 maxItsTipText()
          Returns the tip text for this property
 java.lang.String minStdDevTipText()
          Returns the tip text for this property
 java.lang.String numClustersTipText()
          Returns the tip text for this property
 java.lang.String ridgeTipText()
          Returns the tip text for this property
 void 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
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RBFNetwork

public RBFNetwork()
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 interface CapabilitiesHandler
Overrides:
getCapabilities in class Classifier
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 class Classifier
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 class Classifier
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 class java.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 interface OptionHandler
Overrides:
listOptions in class Classifier
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 interface OptionHandler
Overrides:
setOptions in class Classifier
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 interface OptionHandler
Overrides:
getOptions in class Classifier
Returns:
an array of strings suitable for passing to setOptions

getRevision

public java.lang.String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
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)