Class OuterProductAnalysis
- java.lang.Object
-
- weka.filters.Filter
-
- weka.filters.SimpleFilter
-
- weka.filters.SimpleStreamFilter
-
- weka.filters.unsupervised.attribute.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.
-
Constructor Summary
Constructors Constructor Description OuterProductAnalysis()
-
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.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
-
DEFAULT_REGEXP
public static final String DEFAULT_REGEXP
- See Also:
- Constant Field Values
-
DEFAULT_PREFIX
public static final String DEFAULT_PREFIX
- See Also:
- Constant Field Values
-
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.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing this classifier.- Specified by:
globalInfo
in classweka.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 interfaceweka.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 interfaceweka.core.OptionHandler
- Overrides:
listOptions
in classweka.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 interfaceweka.core.OptionHandler
- Overrides:
setOptions
in classweka.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 interfaceweka.core.OptionHandler
- Overrides:
getOptions
in classweka.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 interfaceweka.core.CapabilitiesHandler
- Overrides:
getCapabilities
in classweka.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 classweka.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 classweka.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 interfaceweka.core.RevisionHandler
- Overrides:
getRevision
in classweka.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
-
-