Class OuterProductAnalysis

  • All Implemented Interfaces:
    Serializable, weka.core.CapabilitiesHandler, weka.core.CapabilitiesIgnorer, weka.core.CommandlineRunnable, weka.core.OptionHandler, weka.core.RevisionHandler, weka.core.TechnicalInformationHandler, weka.filters.StreamableFilter, weka.filters.UnsupervisedFilter

    public class OuterProductAnalysis
    extends weka.filters.SimpleStreamFilter
    implements weka.filters.UnsupervisedFilter, weka.core.TechnicalInformationHandler
    Performs Outer Product Analysis (OPA).

    For more information, see:
    Fabricio S.Terra, Raphael A.Viscarra Rossel, Jose A.M.Dematte (2019). Spectral fusion by Outer Product Analysis (OPA) to improve predictions of soil organic C. Geoderma. 335:35-46. URL https://doi.org/10.1016/j.geoderma.2018.08.005.

    Valid options are:

     -first <regexp>
      The first attribute range to use.
      (default: amplitude-.*)
     -second <regexp>
      The second attribute range to use.
      (default: amplitude-.*)
     -prefix <string>
      The prefix to use for the generated attributes.
      (default: opa-)
     -output-debug-info
      If set, filter is run in debug mode and
      may output additional info to the console
     -do-not-check-capabilities
      If set, filter capabilities are not checked before filter is built
      (use with caution).
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String DEFAULT_PREFIX  
      static String DEFAULT_REGEXP  
      protected String m_AttributePrefix
      the prefix to use for the generated attributes.
      protected int[] m_First
      the positions of the first range.
      protected adams.core.base.BaseRegExp m_FirstRange
      the first range of the attributes to use.
      protected int[] m_Positions
      the new positions for the attributes.
      protected int[] m_Second
      the positions of the second range.
      protected adams.core.base.BaseRegExp m_SecondRange
      the second range of the attributes to use.
      protected int[] m_Types
      the types of the attributes.
      • Fields inherited from class weka.filters.Filter

        m_Debug, m_DoNotCheckCapabilities, m_FirstBatchDone, m_InputRelAtts, m_InputStringAtts, m_NewBatch, m_OutputRelAtts, m_OutputStringAtts
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      String attributePrefixTipText()
      Returns the tip text for this property.
      protected weka.core.Instances determineOutputFormat​(weka.core.Instances inputFormat)
      Determines the output format based on the input format and returns this.
      String firstRangeTipText()
      Returns the tip text for this property.
      String getAttributePrefix()
      Returns the prefix to use for the generated attributes.
      weka.core.Capabilities getCapabilities()
      Returns the Capabilities of this filter.
      adams.core.base.BaseRegExp getFirstRange()
      Returns the first attribute range to use (regular expression on attribute names).
      String[] getOptions()
      Gets the current settings of the Classifier.
      String getRevision()
      Returns the revision string.
      adams.core.base.BaseRegExp getSecondRange()
      Returns the second attribute range to use (regular expression on attribute names).
      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 this classifier.
      Enumeration<weka.core.Option> listOptions()
      Returns an enumeration describing the available options.
      static void main​(String[] args)
      Main method for testing this class.
      protected weka.core.Instance process​(weka.core.Instance instance)
      processes the given instance (may change the provided instance) and returns the modified version.
      String secondRangeTipText()
      Returns the tip text for this property.
      void setAttributePrefix​(String value)
      Sets the second attribute range to use (regular expression on attribute names).
      void setFirstRange​(adams.core.base.BaseRegExp value)
      Sets the first attribute range to use (regular expression on attribute names).
      void setOptions​(String[] options)
      Parses a given list of options.
      void setSecondRange​(adams.core.base.BaseRegExp value)
      Sets the prefix to use for the generated attributes.
      • Methods inherited from class weka.filters.SimpleStreamFilter

        batchFinished, hasImmediateOutputFormat, input, preprocess, process
      • Methods inherited from class weka.filters.SimpleFilter

        reset, setInputFormat
      • Methods inherited from class weka.filters.Filter

        batchFilterFile, bufferInput, copyValues, copyValues, debugTipText, doNotCheckCapabilitiesTipText, filterFile, flushInput, getCapabilities, getDebug, getDoNotCheckCapabilities, getInputFormat, getOutputFormat, initInputLocators, initOutputLocators, inputFormatPeek, isFirstBatchDone, isNewBatch, isOutputFormatDefined, makeCopies, makeCopy, mayRemoveInstanceAfterFirstBatchDone, numPendingOutput, output, outputFormatPeek, outputPeek, postExecution, preExecution, push, push, resetQueue, run, runFilter, setDebug, setDoNotCheckCapabilities, setOutputFormat, testInputFormat, toString, useFilter, wekaStaticWrapper
    • Field Detail

      • m_FirstRange

        protected adams.core.base.BaseRegExp m_FirstRange
        the first range of the attributes to use.
      • m_SecondRange

        protected adams.core.base.BaseRegExp m_SecondRange
        the second range of the attributes to use.
      • m_AttributePrefix

        protected String m_AttributePrefix
        the prefix to use for the generated attributes.
      • m_First

        protected int[] m_First
        the positions of the first range.
      • m_Second

        protected int[] m_Second
        the positions of the second range.
      • m_Positions

        protected int[] m_Positions
        the new positions for the attributes.
      • m_Types

        protected int[] m_Types
        the types of the attributes.
    • Constructor Detail

      • OuterProductAnalysis

        public OuterProductAnalysis()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing this classifier.
        Specified by:
        globalInfo in class weka.filters.SimpleFilter
        Returns:
        a description of the classifier 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
      • 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.filters.Filter
        Returns:
        an enumeration of all the available options.
      • setOptions

        public void setOptions​(String[] options)
                        throws Exception
        Parses a given list of options.
        Specified by:
        setOptions in interface weka.core.OptionHandler
        Overrides:
        setOptions in class weka.filters.Filter
        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.filters.Filter
        Returns:
        an array of strings suitable for passing to setOptions
      • setFirstRange

        public void setFirstRange​(adams.core.base.BaseRegExp value)
        Sets the first attribute range to use (regular expression on attribute names).
        Parameters:
        value - the expression
      • getFirstRange

        public adams.core.base.BaseRegExp getFirstRange()
        Returns the first attribute range to use (regular expression on attribute names).
        Returns:
        the expression
      • firstRangeTipText

        public String firstRangeTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setSecondRange

        public void setSecondRange​(adams.core.base.BaseRegExp value)
        Sets the prefix to use for the generated attributes.
        Parameters:
        value - the expression
      • getSecondRange

        public adams.core.base.BaseRegExp getSecondRange()
        Returns the second attribute range to use (regular expression on attribute names).
        Returns:
        the expression
      • secondRangeTipText

        public String secondRangeTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setAttributePrefix

        public void setAttributePrefix​(String value)
        Sets the second attribute range to use (regular expression on attribute names).
        Parameters:
        value - the prefix
      • getAttributePrefix

        public String getAttributePrefix()
        Returns the prefix to use for the generated attributes.
        Returns:
        the prefix
      • attributePrefixTipText

        public String attributePrefixTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getCapabilities

        public weka.core.Capabilities getCapabilities()
        Returns the Capabilities of this filter. Derived filters have to override this method to enable capabilities.
        Specified by:
        getCapabilities in interface weka.core.CapabilitiesHandler
        Overrides:
        getCapabilities in class weka.filters.Filter
        Returns:
        the capabilities of this object
        See Also:
        Capabilities
      • determineOutputFormat

        protected weka.core.Instances determineOutputFormat​(weka.core.Instances inputFormat)
                                                     throws Exception
        Determines the output format based on the input format and returns this. In case the output format cannot be returned immediately, i.e., hasImmediateOutputFormat() returns false, then this method will called from batchFinished() after the call of preprocess(Instances), in which, e.g., statistics for the actual processing step can be gathered.
        Specified by:
        determineOutputFormat in class weka.filters.SimpleStreamFilter
        Parameters:
        inputFormat - the input format to base the output format on
        Returns:
        the output format
        Throws:
        Exception - in case the determination goes wrong
      • process

        protected weka.core.Instance process​(weka.core.Instance instance)
                                      throws Exception
        processes the given instance (may change the provided instance) and returns the modified version.
        Specified by:
        process in class weka.filters.SimpleStreamFilter
        Parameters:
        instance - the instance to process
        Returns:
        the modified data
        Throws:
        Exception - in case the processing goes wrong
      • getRevision

        public String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface weka.core.RevisionHandler
        Overrides:
        getRevision in class weka.filters.Filter
        Returns:
        the revision
      • main

        public static void main​(String[] args)
        Main method for testing this class.
        Parameters:
        args - should contain arguments to the filter: use -h for help