Class GaussianProcesses

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Classifier, ConditionalDensityEstimator, IntervalEstimator, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

    public class GaussianProcesses
    extends RandomizableClassifier
    implements IntervalEstimator, ConditionalDensityEstimator, TechnicalInformationHandler, WeightedInstancesHandler
    * Implements Gaussian processes for regression without hyperparameter-tuning. To make choosing an appropriate noise level easier, this implementation applies normalization/standardization to the target attribute as well as the other attributes (if normalization/standardizaton is turned on). Missing values are replaced by the global mean/mode. Nominal attributes are converted to binary ones. Note that kernel caching is turned off if the kernel used implements CachedKernel. *

    * BibTeX: *
     * @misc{Mackay1998,
     *    address = {Dept. of Physics, Cambridge University, UK},
     *    author = {David J.C. Mackay},
     *    title = {Introduction to Gaussian Processes},
     *    year = {1998},
     *    PS = {http://wol.ra.phy.cam.ac.uk/mackay/gpB.ps.gz}
     * }
     * 
    *

    * Valid options are:

    * *

     -L <double>
     *  Level of Gaussian Noise wrt transformed target. (default 1)
    * *
     -N
     *  Whether to 0=normalize/1=standardize/2=neither. (default 0=normalize)
    * *
     -K <classname and parameters>
     *  The Kernel to use.
     *  (default: weka.classifiers.functions.supportVector.PolyKernel)
    * *
     -S <num>
     *  Random number seed.
     *  (default 1)
    * *
     -output-debug-info
     *  If set, classifier is run in debug mode and
     *  may output additional info to the console
    * *
     -do-not-check-capabilities
     *  If set, classifier capabilities are not checked before classifier is built
     *  (use with caution).
    * *
     -num-decimal-places
     *  The number of decimal places for the output of numbers in the model (default 2).
    * *
     
     * Options specific to kernel weka.classifiers.functions.supportVector.PolyKernel:
     * 
    * *
     -E <num>
     *  The Exponent to use.
     *  (default: 1.0)
    * *
     -L
     *  Use lower-order terms.
     *  (default: no)
    * *
     -C <num>
     *  The size of the cache (a prime number), 0 for full cache and 
     *  -1 to turn it off.
     *  (default: 250007)
    * *
     -output-debug-info
     *  Enables debugging output (if available) to be printed.
     *  (default: off)
    * *
     -no-checks
     *  Turns off all checks - use with caution!
     *  (default: checks on)
    *
    Version:
    $Revision: 12745 $
    Author:
    Kurt Driessens (kurtd@cs.waikato.ac.nz), Remco Bouckaert (remco@cs.waikato.ac.nz), Eibe Frank, University of Waikato
    See Also:
    Serialized Form
    • Field Detail

      • FILTER_NORMALIZE

        public static final int FILTER_NORMALIZE
        normalizes the data
        See Also:
        Constant Field Values
      • FILTER_STANDARDIZE

        public static final int FILTER_STANDARDIZE
        standardizes the data
        See Also:
        Constant Field Values
      • TAGS_FILTER

        public static final Tag[] TAGS_FILTER
        The filter to apply to the training data
      • m_L

        public no.uib.cipr.matrix.Matrix m_L
        (negative) covariance matrix in symmetric matrix representation
    • Constructor Detail

      • GaussianProcesses

        public GaussianProcesses()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing classifier
        Returns:
        a description suitable for displaying in the explorer/experimenter gui
      • getTechnicalInformation

        public TechnicalInformation getTechnicalInformation()
        Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
        Specified by:
        getTechnicalInformation in interface TechnicalInformationHandler
        Returns:
        the technical information about this class
      • buildClassifier

        public void buildClassifier​(Instances insts)
                             throws java.lang.Exception
        Method for building the classifier.
        Specified by:
        buildClassifier in interface Classifier
        Parameters:
        insts - the set of training instances
        Throws:
        java.lang.Exception - if the classifier can't be built successfully
      • classifyInstance

        public double classifyInstance​(Instance inst)
                                throws java.lang.Exception
        Classifies a given instance.
        Specified by:
        classifyInstance in interface Classifier
        Overrides:
        classifyInstance in class AbstractClassifier
        Parameters:
        inst - the instance to be classified
        Returns:
        the classification
        Throws:
        java.lang.Exception - if instance could not be classified successfully
      • predictIntervals

        public double[][] predictIntervals​(Instance inst,
                                           double confidenceLevel)
                                    throws java.lang.Exception
        Computes a prediction interval for the given instance and confidence level.
        Specified by:
        predictIntervals in interface IntervalEstimator
        Parameters:
        inst - the instance to make the prediction for
        confidenceLevel - the percentage of cases the interval should cover
        Returns:
        a 1*2 array that contains the boundaries of the interval
        Throws:
        java.lang.Exception - if interval could not be estimated successfully
      • getStandardDeviation

        public double getStandardDeviation​(Instance inst)
                                    throws java.lang.Exception
        Gives standard deviation of the prediction at the given instance.
        Parameters:
        inst - the instance to get the standard deviation for
        Returns:
        the standard deviation
        Throws:
        java.lang.Exception - if computation fails
      • logDensity

        public double logDensity​(Instance inst,
                                 double value)
                          throws java.lang.Exception
        Returns natural logarithm of density estimate for given value based on given instance.
        Specified by:
        logDensity in interface ConditionalDensityEstimator
        Parameters:
        inst - the instance to make the prediction for.
        value - the value to make the prediction for.
        Returns:
        the natural logarithm of the density estimate
        Throws:
        java.lang.Exception - if the density cannot be computed
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.Exception
        Parses a given list of options.

        * Valid options are:

        * *

         -L <double>
         *  Level of Gaussian Noise wrt transformed target. (default 1)
        * *
         -N
         *  Whether to 0=normalize/1=standardize/2=neither. (default 0=normalize)
        * *
         -K <classname and parameters>
         *  The Kernel to use.
         *  (default: weka.classifiers.functions.supportVector.PolyKernel)
        * *
         -S <num>
         *  Random number seed.
         *  (default 1)
        * *
         -output-debug-info
         *  If set, classifier is run in debug mode and
         *  may output additional info to the console
        * *
         -do-not-check-capabilities
         *  If set, classifier capabilities are not checked before classifier is built
         *  (use with caution).
        * *
         -num-decimal-places
         *  The number of decimal places for the output of numbers in the model (default 2).
        * *
         
         * Options specific to kernel weka.classifiers.functions.supportVector.PolyKernel:
         * 
        * *
         -E <num>
         *  The Exponent to use.
         *  (default: 1.0)
        * *
         -L
         *  Use lower-order terms.
         *  (default: no)
        * *
         -C <num>
         *  The size of the cache (a prime number), 0 for full cache and 
         *  -1 to turn it off.
         *  (default: 250007)
        * *
         -output-debug-info
         *  Enables debugging output (if available) to be printed.
         *  (default: off)
        * *
         -no-checks
         *  Turns off all checks - use with caution!
         *  (default: checks on)
        *
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class RandomizableClassifier
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • kernelTipText

        public java.lang.String kernelTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getKernel

        public Kernel getKernel()
        Gets the kernel to use.
        Returns:
        the kernel
      • setKernel

        public void setKernel​(Kernel value)
        Sets the kernel to use.
        Parameters:
        value - the new kernel
      • filterTypeTipText

        public java.lang.String filterTypeTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getFilterType

        public SelectedTag getFilterType()
        Gets how the training data will be transformed. Will be one of FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.
        Returns:
        the filtering mode
      • setFilterType

        public void setFilterType​(SelectedTag newType)
        Sets how the training data will be transformed. Should be one of FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.
        Parameters:
        newType - the new filtering mode
      • noiseTipText

        public java.lang.String noiseTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getNoise

        public double getNoise()
        Get the value of noise.
        Returns:
        Value of noise.
      • setNoise

        public void setNoise​(double v)
        Set the level of Gaussian Noise.
        Parameters:
        v - Value to assign to noise.
      • toString

        public java.lang.String toString()
        Prints out the classifier.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a description of the classifier as a string
      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - the commandline parameters