Class FirstOrder

  • All Implemented Interfaces:
    java.io.Serializable, CapabilitiesHandler, OptionHandler, RevisionHandler, StreamableFilter, UnsupervisedFilter

    public class FirstOrder
    extends Filter
    implements UnsupervisedFilter, StreamableFilter, OptionHandler
    This instance filter takes a range of N numeric attributes and replaces them with N-1 numeric attributes, the values of which are the difference between consecutive attribute values from the original instance. eg:

    Original attribute values

    0.1, 0.2, 0.3, 0.1, 0.3

    New attribute values

    0.1, 0.1, -0.2, 0.2

    The range of attributes used is taken in numeric order. That is, a range spec of 7-11,3-5 will use the attribute ordering 3,4,5,7,8,9,10,11 for the differences, NOT 7,8,9,10,11,3,4,5.

    Valid options are:

     -R <index1,index2-index4,...>
      Specify list of columns to take the differences between.
      First and last are valid indexes.
      (default none)
    Version:
    $Revision: 5543 $
    Author:
    Len Trigg (trigg@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Constructor Detail

      • FirstOrder

        public FirstOrder()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing this filter
        Returns:
        a description of the filter suitable for displaying in the explorer/experimenter gui
      • listOptions

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

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.Exception
        Parses a given list of options.

        Valid options are:

         -R <index1,index2-index4,...>
          Specify list of columns to take the differences between.
          First and last are valid indexes.
          (default none)
        Specified by:
        setOptions in interface OptionHandler
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • getOptions

        public java.lang.String[] getOptions()
        Gets the current settings of the filter.
        Specified by:
        getOptions in interface OptionHandler
        Returns:
        an array of strings suitable for passing to setOptions
      • setInputFormat

        public boolean setInputFormat​(Instances instanceInfo)
                               throws java.lang.Exception
        Sets the format of the input instances.
        Overrides:
        setInputFormat in class Filter
        Parameters:
        instanceInfo - an Instances object containing the input instance structure (any instances contained in the object are ignored - only the structure is required).
        Returns:
        true if the outputFormat may be collected immediately
        Throws:
        UnsupportedAttributeTypeException - if any of the selected attributes are not numeric
        java.lang.Exception - if only one attribute has been selected.
      • input

        public boolean input​(Instance instance)
        Input an instance for filtering. Ordinarily the instance is processed and made available for output immediately. Some filters require all instances be read before producing output.
        Overrides:
        input in class Filter
        Parameters:
        instance - the input instance
        Returns:
        true if the filtered instance may now be collected with output().
        Throws:
        java.lang.IllegalStateException - if no input format has been defined.
      • attributeIndicesTipText

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

        public java.lang.String getAttributeIndices()
        Get the current range selection
        Returns:
        a string containing a comma separated list of ranges
      • setAttributeIndices

        public void setAttributeIndices​(java.lang.String rangeList)
                                 throws java.lang.Exception
        Set which attributes are to be deleted (or kept if invert is true)
        Parameters:
        rangeList - a string representing the list of attributes. Since the string will typically come from a user, attributes are indexed from 1.
        eg: first-3,5,6-last
        Throws:
        java.lang.Exception - if an invalid range list is supplied
      • setAttributeIndicesArray

        public void setAttributeIndicesArray​(int[] attributes)
                                      throws java.lang.Exception
        Set which attributes are to be deleted (or kept if invert is true)
        Parameters:
        attributes - an array containing indexes of attributes to select. Since the array will typically come from a program, attributes are indexed from 0.
        Throws:
        java.lang.Exception - if an invalid set of ranges is supplied
      • main

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