Class RBFNetwork

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.functions.RBFNetwork
All Implemented Interfaces:
Serializable, 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:
  • Constructor Details

    • RBFNetwork

      public RBFNetwork()
  • Method Details

    • globalInfo

      public 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:
    • buildClassifier

      public void buildClassifier(Instances instances) throws Exception
      Builds the classifier
      Specified by:
      buildClassifier in class Classifier
      Parameters:
      instances - the training data
      Throws:
      Exception - if the classifier could not be built successfully
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws 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:
      Exception - if the distribution can't be computed successfully
    • toString

      public String toString()
      Returns a description of this classifier as a String
      Overrides:
      toString in class Object
      Returns:
      a description of this classifier
    • maxItsTipText

      public 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 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 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 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 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 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(String[] options) throws 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:
      Exception - if an option is not supported
    • getOptions

      public 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 String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class Classifier
      Returns:
      the revision
    • main

      public static void main(String[] argv)
      Main method for testing this class.
      Parameters:
      argv - should contain the command line arguments to the scheme (see Evaluation)