Class ClassificationViaPLS

  • All Implemented Interfaces:
    Serializable, Cloneable, weka.classifiers.Classifier, weka.core.BatchPredictor, weka.core.CapabilitiesHandler, weka.core.CapabilitiesIgnorer, weka.core.CommandlineRunnable, weka.core.OptionHandler, PLSMatrixAccess, weka.core.RevisionHandler

    public class ClassificationViaPLS
    extends weka.classifiers.AbstractClassifier
    implements PLSMatrixAccess
    Performs ClassificationViaRegression using PLSClassifierWeightedWithLoadings as base classifier, allowing access to the PLS matrices.

    Valid options are:

     -filter <filter specification>
      The PLS filter to use. Full classname of filter to include,  followed by scheme options.
      (default: weka.filters.supervised.attribute.PLSFilterWithLoadings)
     -label-index <num>
      The label index (of the class attribute) to return the PLS matrices for.
      'first' and 'last' are accepted as well.
      (default: first)
     -label-string <label>
      The label string (of the class attribute) to return the PLS matrices for.
      Overrides the '-label-index' option if non-empty.
      (default: '')
     -D
      If set, classifier is run in debug mode and
      may output additional info to the console
     
     Options specific to filter weka.filters.supervised.attribute.PLSFilterWithLoadings ('-filter'):
     
     -D
      Turns on output of debugging information.
     -C <num>
      The number of components to compute.
      (default: 20)
     -U
      Updates the class attribute as well.
      (default: off)
     -M
      Turns replacing of missing values on.
      (default: off)
     -A <SIMPLS|PLS1>
      The algorithm to use.
      (default: PLS1)
     -P <none|center|standardize>
      The type of preprocessing that is applied to the data.
      (default: center)
    Version:
    $Revision$
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected ClassificationViaRegressionD m_CVR
      the ClassificationViaRegression used internally.
      protected weka.core.Instances m_Header
      the header of the training set.
      protected weka.core.SingleIndex m_LabelIndex
      The label index to get the PLS matrices for.
      protected String m_LabelString
      the label string to get the PLS matrices for (overrides the label index).
      • Fields inherited from class weka.classifiers.AbstractClassifier

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

      Constructors 
      Constructor Description
      ClassificationViaPLS()
      Initializes the classifier.
    • Field Detail

      • m_Header

        protected weka.core.Instances m_Header
        the header of the training set.
      • m_LabelIndex

        protected weka.core.SingleIndex m_LabelIndex
        The label index to get the PLS matrices for.
      • m_LabelString

        protected String m_LabelString
        the label string to get the PLS matrices for (overrides the label index).
    • Constructor Detail

      • ClassificationViaPLS

        public ClassificationViaPLS()
        Initializes the classifier.
    • Method Detail

      • globalInfo

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

        public Enumeration listOptions()
        Gets an enumeration describing the available options.
        Specified by:
        listOptions in interface weka.core.OptionHandler
        Overrides:
        listOptions in class weka.classifiers.AbstractClassifier
        Returns:
        an enumeration of all the available options.
      • getOptions

        public String[] getOptions()
        returns the options of the current setup
        Specified by:
        getOptions in interface weka.core.OptionHandler
        Overrides:
        getOptions in class weka.classifiers.AbstractClassifier
        Returns:
        the current options
      • setOptions

        public void setOptions​(String[] options)
                        throws Exception
        Parses the options for this object.

        Valid options are:

         -filter <filter specification>
          The PLS filter to use. Full classname of filter to include,  followed by scheme options.
          (default: weka.filters.supervised.attribute.PLSFilterWithLoadings)
         -label-index <num>
          The label index (of the class attribute) to return the PLS matrices for.
          'first' and 'last' are accepted as well.
          (default: first)
         -label-string <label>
          The label string (of the class attribute) to return the PLS matrices for.
          Overrides the '-label-index' option if non-empty.
          (default: '')
         -D
          If set, classifier is run in debug mode and
          may output additional info to the console
         
         Options specific to filter weka.filters.supervised.attribute.PLSFilterWithLoadings ('-filter'):
         
         -D
          Turns on output of debugging information.
         -C <num>
          The number of components to compute.
          (default: 20)
         -U
          Updates the class attribute as well.
          (default: off)
         -M
          Turns replacing of missing values on.
          (default: off)
         -A <SIMPLS|PLS1>
          The algorithm to use.
          (default: PLS1)
         -P <none|center|standardize>
          The type of preprocessing that is applied to the data.
          (default: center)
        Specified by:
        setOptions in interface weka.core.OptionHandler
        Overrides:
        setOptions in class weka.classifiers.AbstractClassifier
        Parameters:
        options - the options to use
        Throws:
        Exception - if setting of options fails
      • setFilter

        public void setFilter​(weka.filters.Filter value)
                       throws Exception
        Set the PLS filter (only used for setup).
        Parameters:
        value - the kernel filter.
        Throws:
        Exception - if not PLSFilter
      • getFilter

        public weka.filters.Filter getFilter()
        Get the PLS filter.
        Returns:
        the PLS filter
      • filterTipText

        public String filterTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setLabelIndex

        public void setLabelIndex​(String value)
        Set the label index to get the PLS matrices for.
        Parameters:
        value - the label index of the class attribute
      • getLabelIndex

        public String getLabelIndex()
        Get the label index of the class attribute to get the PLS matrices for.
        Returns:
        the label index of the class attribute
      • labelIndexTipText

        public String labelIndexTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setLabelString

        public void setLabelString​(String value)
        Set the class attribute's label to get the PLS matrices for. Overrides m_LabelIndex if non-empty.
        Parameters:
        value - the label string of the class attribute
      • getLabelString

        public String getLabelString()
        Get the class attribute's label to get the PLS matrices for. Overrides m_LabelIndex if non-empty.
        Returns:
        the label string of the class attribute
      • labelStringTipText

        public String labelStringTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getCapabilities

        public weka.core.Capabilities getCapabilities()
        Returns the Capabilities of this classifier. Maximally permissive capabilities are allowed by default. Derived classifiers should override this method and first disable all capabilities and then enable just those capabilities that make sense for the scheme.
        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 object
        See Also:
        Capabilities
      • buildClassifier

        public void buildClassifier​(weka.core.Instances data)
                             throws Exception
        Generates a classifier.
        Specified by:
        buildClassifier in interface weka.classifiers.Classifier
        Parameters:
        data - set of instances serving as training data
        Throws:
        Exception - if the classifier has not been generated successfully
      • classifyInstance

        public double classifyInstance​(weka.core.Instance instance)
                                throws Exception
        Classifies the given test instance. The instance has to belong to a dataset when it's being classified.
        Specified by:
        classifyInstance in interface weka.classifiers.Classifier
        Overrides:
        classifyInstance in class weka.classifiers.AbstractClassifier
        Parameters:
        instance - the instance to be classified
        Returns:
        the predicted most likely class for the instance or Instance.missingValue() if no prediction is made
        Throws:
        Exception - if an error occurred during the prediction
      • distributionForInstance

        public double[] distributionForInstance​(weka.core.Instance instance)
                                         throws Exception
        Predicts the class memberships for a given instance. If an instance is unclassified, the returned array elements must be all zero. If the class is numeric, the array must consist of only one element, which contains the predicted value.
        Specified by:
        distributionForInstance in interface weka.classifiers.Classifier
        Overrides:
        distributionForInstance in class weka.classifiers.AbstractClassifier
        Parameters:
        instance - the instance to be classified
        Returns:
        an array containing the estimated membership probabilities of the test instance in each class or the numeric prediction
        Throws:
        Exception - if distribution could not be computed successfully
      • getSelectedClassifier

        protected PLSClassifierWeightedWithLoadings getSelectedClassifier()
        Returns the specified base classifier. Either using the label index or the class label string to identify the classifier.
        Returns:
        the specified classifier, the default classifier if failed to locate
      • getPLS1RegVector

        public weka.core.matrix.Matrix getPLS1RegVector()
        Returns the reg vector.
        Specified by:
        getPLS1RegVector in interface PLSMatrixAccess
        Returns:
        the vector
      • getPLS1P

        public weka.core.matrix.Matrix getPLS1P()
        Returns the PLS1 P matrix.
        Specified by:
        getPLS1P in interface PLSMatrixAccess
        Returns:
        the matrix
      • getPLS1W

        public weka.core.matrix.Matrix getPLS1W()
        Returns the PLS1 W matrix.
        Specified by:
        getPLS1W in interface PLSMatrixAccess
        Returns:
        the matrix
      • getPLS1bHat

        public weka.core.matrix.Matrix getPLS1bHat()
        Returns the PLS1 b "hat" matrix.
        Specified by:
        getPLS1bHat in interface PLSMatrixAccess
        Returns:
        the matrix
      • getSimplsW

        public weka.core.matrix.Matrix getSimplsW()
        Returns the SIMPLS W matrix.
        Specified by:
        getSimplsW in interface PLSMatrixAccess
        Returns:
        the matrix
      • getSimplsB

        public weka.core.matrix.Matrix getSimplsB()
        Returns the SIMPLS B matrix.
        Specified by:
        getSimplsB in interface PLSMatrixAccess
        Returns:
        the matrix
      • getRevision

        public String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface weka.core.RevisionHandler
        Overrides:
        getRevision in class weka.classifiers.AbstractClassifier
        Returns:
        the revision
      • toString

        public String toString()
        Returns a string representation of the built model.
        Overrides:
        toString in class Object
        Returns:
        the model string
      • main

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