Class PLSFilter

  • All Implemented Interfaces:
    java.io.Serializable, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler, SupervisedFilter

    public class PLSFilter
    extends SimpleBatchFilter
    implements SupervisedFilter, TechnicalInformationHandler
    Runs Partial Least Square Regression over the given instances and computes the resulting beta matrix for prediction.
    By default it replaces missing values and centers the data.

    For more information see:

    Tormod Naes, Tomas Isaksson, Tom Fearn, Tony Davies (2002). A User Friendly Guide to Multivariate Calibration and Classification. NIR Publications.

    StatSoft, Inc.. Partial Least Squares (PLS).

    Bent Jorgensen, Yuri Goegebeur. Module 7: Partial least squares regression I.

    S. de Jong (1993). SIMPLS: an alternative approach to partial least squares regression. Chemometrics and Intelligent Laboratory Systems. 18:251-263.

    BibTeX:

     @book{Naes2002,
        author = {Tormod Naes and Tomas Isaksson and Tom Fearn and Tony Davies},
        publisher = {NIR Publications},
        title = {A User Friendly Guide to Multivariate Calibration and Classification},
        year = {2002},
        ISBN = {0-9528666-2-5}
     }
     
     @misc{missing_id,
        author = {StatSoft, Inc.},
        booktitle = {Electronic Textbook StatSoft},
        title = {Partial Least Squares (PLS)},
        HTTP = {http://www.statsoft.com/textbook/stpls.html}
     }
     
     @misc{missing_id,
        author = {Bent Jorgensen and Yuri Goegebeur},
        booktitle = {ST02: Multivariate Data Analysis and Chemometrics},
        title = {Module 7: Partial least squares regression I},
        HTTP = {http://statmaster.sdu.dk/courses/ST02/module07/}
     }
     
     @article{Jong1993,
        author = {S. de Jong},
        journal = {Chemometrics and Intelligent Laboratory Systems},
        pages = {251-263},
        title = {SIMPLS: an alternative approach to partial least squares regression},
        volume = {18},
        year = {1993}
     }
     

    Valid options are:

     -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: 5541 $
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • ALGORITHM_SIMPLS

        public static final int ALGORITHM_SIMPLS
        the type of algorithm: SIMPLS
        See Also:
        Constant Field Values
      • ALGORITHM_PLS1

        public static final int ALGORITHM_PLS1
        the type of algorithm: PLS1
        See Also:
        Constant Field Values
      • TAGS_ALGORITHM

        public static final Tag[] TAGS_ALGORITHM
        the types of algorithm
      • PREPROCESSING_NONE

        public static final int PREPROCESSING_NONE
        the type of preprocessing: None
        See Also:
        Constant Field Values
      • PREPROCESSING_CENTER

        public static final int PREPROCESSING_CENTER
        the type of preprocessing: Center
        See Also:
        Constant Field Values
      • PREPROCESSING_STANDARDIZE

        public static final int PREPROCESSING_STANDARDIZE
        the type of preprocessing: Standardize
        See Also:
        Constant Field Values
      • TAGS_PREPROCESSING

        public static final Tag[] TAGS_PREPROCESSING
        the types of preprocessing
    • Constructor Detail

      • PLSFilter

        public PLSFilter()
        default constructor
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing this classifier.
        Specified by:
        globalInfo in class SimpleFilter
        Returns:
        a description of the classifier 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
      • listOptions

        public java.util.Enumeration listOptions()
        Gets an enumeration describing the available options.
        Specified by:
        listOptions in interface OptionHandler
        Overrides:
        listOptions in class SimpleFilter
        Returns:
        an enumeration of all the available options.
      • setOptions

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

        Valid options are:

         -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 OptionHandler
        Overrides:
        setOptions in class SimpleFilter
        Parameters:
        options - the options to use
        Throws:
        java.lang.Exception - if the option setting fails
        See Also:
        SimpleFilter.reset()
      • numComponentsTipText

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

        public void setNumComponents​(int value)
        sets the maximum number of attributes to use.
        Parameters:
        value - the maximum number of attributes
      • getNumComponents

        public int getNumComponents()
        returns the maximum number of attributes to use.
        Returns:
        the current maximum number of attributes
      • performPredictionTipText

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

        public void setPerformPrediction​(boolean value)
        Sets whether to update the class attribute with the predicted value.
        Parameters:
        value - if true the class value will be replaced by the predicted value.
      • getPerformPrediction

        public boolean getPerformPrediction()
        Gets whether the class attribute is updated with the predicted value.
        Returns:
        true if the class attribute is updated
      • algorithmTipText

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

        public void setAlgorithm​(SelectedTag value)
        Sets the type of algorithm to use
        Parameters:
        value - the algorithm type
      • getAlgorithm

        public SelectedTag getAlgorithm()
        Gets the type of algorithm to use
        Returns:
        the current algorithm type.
      • replaceMissingTipText

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

        public void setReplaceMissing​(boolean value)
        Sets whether to replace missing values.
        Parameters:
        value - if true missing values are replaced with the ReplaceMissingValues filter.
      • getReplaceMissing

        public boolean getReplaceMissing()
        Gets whether missing values are replace.
        Returns:
        true if missing values are replaced with the ReplaceMissingValues filter
      • preprocessingTipText

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

        public void setPreprocessing​(SelectedTag value)
        Sets the type of preprocessing to use
        Parameters:
        value - the preprocessing type
      • getPreprocessing

        public SelectedTag getPreprocessing()
        Gets the type of preprocessing to use
        Returns:
        the current preprocessing type.
      • main

        public static void main​(java.lang.String[] args)
        runs the filter with the given arguments.
        Parameters:
        args - the commandline arguments