Class GaussianProcessesNoWeights

  • All Implemented Interfaces:
    Serializable, Cloneable, weka.classifiers.Classifier, weka.classifiers.ConditionalDensityEstimator, weka.classifiers.IntervalEstimator, weka.core.BatchPredictor, weka.core.CapabilitiesHandler, weka.core.CapabilitiesIgnorer, weka.core.CommandlineRunnable, weka.core.OptionHandler, weka.core.Randomizable, weka.core.RevisionHandler, weka.core.TechnicalInformationHandler, weka.core.WeightedInstancesHandler

    public class GaussianProcessesNoWeights
    extends weka.classifiers.RandomizableClassifier
    implements weka.classifiers.IntervalEstimator, weka.classifiers.ConditionalDensityEstimator, weka.core.TechnicalInformationHandler, weka.core.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: 12227 $
    Author:
    Kurt Driessens (kurtd@cs.waikato.ac.nz), Remco Bouckaert (remco@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int FILTER_NONE
      no filter
      static int FILTER_NORMALIZE
      normalizes the data
      static int FILTER_STANDARDIZE
      standardizes the data
      protected double m_Alin
      The parameters of the linear transformation realized by the filter on the class attribute
      protected double m_avg_target
      The training data.
      protected double m_Blin  
      protected boolean m_checksTurnedOff
      Turn off all checks and conversions? Turning them off assumes that data is purely numeric, doesn't contain any missing values, and has a numeric class.
      protected double m_delta
      Gaussian Noise Value.
      protected double m_deltaSquared
      The squared noise value.
      protected weka.filters.Filter m_Filter
      The filter used to standardize/normalize all values.
      protected int m_filterType
      Whether to normalize/standardize/neither
      protected weka.classifiers.functions.supportVector.Kernel m_kernel
      Kernel to use *
      double[][] m_L
      (negative) covariance matrix in symmetric matrix representation
      protected weka.filters.unsupervised.attribute.ReplaceMissingValues m_Missing
      The filter used to get rid of missing values.
      protected weka.filters.unsupervised.attribute.NominalToBinary m_NominalToBinary
      The filter used to make attributes numeric.
      protected int m_NumTrain
      The number of training instances
      protected weka.core.matrix.Matrix m_t
      The vector of target values.
      static weka.core.Tag[] TAGS_FILTER
      The filter to apply to the training data
      • Fields inherited from class weka.classifiers.RandomizableClassifier

        m_Seed
      • Fields inherited from class weka.classifiers.AbstractClassifier

        BATCH_SIZE_DEFAULT, m_BatchSize, m_Debug, m_DoNotCheckCapabilities, m_numDecimalPlaces, NUM_DECIMAL_PLACES_DEFAULT
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void buildClassifier​(weka.core.Instances insts)
      Method for building the classifier.
      double classifyInstance​(weka.core.Instance inst)
      Classifies a given instance.
      protected double computeStdDev​(weka.core.Instance inst, weka.core.matrix.Matrix k)
      Computes standard deviation for given instance, without transforming target back into original space.
      protected weka.core.Instance filterInstance​(weka.core.Instance inst)
      Filters an instance.
      String filterTypeTipText()
      Returns the tip text for this property
      weka.core.Capabilities getCapabilities()
      Returns default capabilities of the classifier.
      weka.core.SelectedTag getFilterType()
      Gets how the training data will be transformed.
      weka.classifiers.functions.supportVector.Kernel getKernel()
      Gets the kernel to use.
      double getNoise()
      Get the value of noise.
      String[] getOptions()
      Gets the current settings of the classifier.
      double getStandardDeviation​(weka.core.Instance inst)
      Gives standard deviation of the prediction at the given instance.
      weka.core.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.
      String globalInfo()
      Returns a string describing classifier
      String kernelTipText()
      Returns the tip text for this property
      Enumeration<weka.core.Option> listOptions()
      Returns an enumeration describing the available options.
      double logDensity​(weka.core.Instance inst, double value)
      Returns natural logarithm of density estimate for given value based on given instance.
      static void main​(String[] argv)
      Main method for testing this class.
      String noiseTipText()
      Returns the tip text for this property
      double[][] predictIntervals​(weka.core.Instance inst, double confidenceLevel)
      Computes a prediction interval for the given instance and confidence level.
      void setFilterType​(weka.core.SelectedTag newType)
      Sets how the training data will be transformed.
      void setKernel​(weka.classifiers.functions.supportVector.Kernel value)
      Sets the kernel to use.
      void setNoise​(double v)
      Set the level of Gaussian Noise.
      void setOptions​(String[] options)
      Parses a given list of options.
      String toString()
      Prints out the classifier.
      • Methods inherited from class weka.classifiers.RandomizableClassifier

        getSeed, seedTipText, setSeed
      • Methods inherited from class weka.classifiers.AbstractClassifier

        batchSizeTipText, debugTipText, distributionForInstance, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, getRevision, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
    • Field Detail

      • m_NominalToBinary

        protected weka.filters.unsupervised.attribute.NominalToBinary m_NominalToBinary
        The filter used to make attributes numeric.
      • 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 weka.core.Tag[] TAGS_FILTER
        The filter to apply to the training data
      • m_Filter

        protected weka.filters.Filter m_Filter
        The filter used to standardize/normalize all values.
      • m_filterType

        protected int m_filterType
        Whether to normalize/standardize/neither
      • m_Missing

        protected weka.filters.unsupervised.attribute.ReplaceMissingValues m_Missing
        The filter used to get rid of missing values.
      • m_checksTurnedOff

        protected boolean m_checksTurnedOff
        Turn off all checks and conversions? Turning them off assumes that data is purely numeric, doesn't contain any missing values, and has a numeric class.
      • m_delta

        protected double m_delta
        Gaussian Noise Value.
      • m_deltaSquared

        protected double m_deltaSquared
        The squared noise value.
      • m_Alin

        protected double m_Alin
        The parameters of the linear transformation realized by the filter on the class attribute
      • m_Blin

        protected double m_Blin
      • m_kernel

        protected weka.classifiers.functions.supportVector.Kernel m_kernel
        Kernel to use *
      • m_NumTrain

        protected int m_NumTrain
        The number of training instances
      • m_avg_target

        protected double m_avg_target
        The training data.
      • m_L

        public double[][] m_L
        (negative) covariance matrix in symmetric matrix representation
      • m_t

        protected weka.core.matrix.Matrix m_t
        The vector of target values.
    • Constructor Detail

      • GaussianProcessesNoWeights

        public GaussianProcessesNoWeights()
    • Method Detail

      • globalInfo

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

        public weka.core.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 weka.core.TechnicalInformationHandler
        Returns:
        the technical information about this class
      • getCapabilities

        public weka.core.Capabilities getCapabilities()
        Returns default capabilities of the classifier.
        Specified by:
        getCapabilities in interface weka.core.CapabilitiesHandler
        Specified by:
        getCapabilities in interface weka.classifiers.Classifier
        Overrides:
        getCapabilities in class weka.classifiers.AbstractClassifier
        Returns:
        the capabilities of this classifier
      • buildClassifier

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

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

        protected weka.core.Instance filterInstance​(weka.core.Instance inst)
                                             throws Exception
        Filters an instance.
        Throws:
        Exception
      • computeStdDev

        protected double computeStdDev​(weka.core.Instance inst,
                                       weka.core.matrix.Matrix k)
                                throws Exception
        Computes standard deviation for given instance, without transforming target back into original space.
        Throws:
        Exception
      • predictIntervals

        public double[][] predictIntervals​(weka.core.Instance inst,
                                           double confidenceLevel)
                                    throws Exception
        Computes a prediction interval for the given instance and confidence level.
        Specified by:
        predictIntervals in interface weka.classifiers.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:
        Exception - if interval could not be estimated successfully
      • getStandardDeviation

        public double getStandardDeviation​(weka.core.Instance inst)
                                    throws 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:
        Exception - if computation fails
      • logDensity

        public double logDensity​(weka.core.Instance inst,
                                 double value)
                          throws Exception
        Returns natural logarithm of density estimate for given value based on given instance.
        Specified by:
        logDensity in interface weka.classifiers.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:
        Exception - if the density cannot be computed
      • listOptions

        public Enumeration<weka.core.Option> listOptions()
        Returns an enumeration describing the available options.
        Specified by:
        listOptions in interface weka.core.OptionHandler
        Overrides:
        listOptions in class weka.classifiers.RandomizableClassifier
        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:

        * *

         -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 weka.core.OptionHandler
        Overrides:
        setOptions in class weka.classifiers.RandomizableClassifier
        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 weka.core.OptionHandler
        Overrides:
        getOptions in class weka.classifiers.RandomizableClassifier
        Returns:
        an array of strings suitable for passing to setOptions
      • kernelTipText

        public 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 weka.classifiers.functions.supportVector.Kernel getKernel()
        Gets the kernel to use.
        Returns:
        the kernel
      • setKernel

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

        public 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 weka.core.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​(weka.core.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 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 String toString()
        Prints out the classifier.
        Overrides:
        toString in class Object
        Returns:
        a description of the classifier as a string
      • main

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