Class ClassOrder

java.lang.Object
weka.filters.Filter
weka.filters.supervised.attribute.ClassOrder
All Implemented Interfaces:
Serializable, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, WeightedAttributesHandler, WeightedInstancesHandler, SupervisedFilter

Changes the order of the classes so that the class values are no longer of in the order specified in the header. The values will be in the order specified by the user -- it could be either in ascending/descending order by the class frequency or in random order.

Valid options are:

 -R <seed>
  Specify the seed of randomization
  used to randomize the class
  order (default: 1)
 
 -C <order>
  Specify the class order to be
  sorted, could be 0: ascending
  1: descending and 2: random.(default: 0)
 
Version:
$Revision: 14508 $
Author:
Xin Xu (xx5@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  • Field Details

    • FREQ_ASCEND

      public static final int FREQ_ASCEND
      The class values are sorted in ascending order based on their frequencies
      See Also:
    • FREQ_DESCEND

      public static final int FREQ_DESCEND
      The class values are sorted in descending order based on their frequencies
      See Also:
    • RANDOM

      public static final int RANDOM
      The class values are sorted in random order
      See Also:
  • Constructor Details

    • ClassOrder

      public ClassOrder()
  • Method Details

    • globalInfo

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

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class Filter
      Returns:
      an enumeration of all the available options.
    • setOptions

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

      Valid options are:

       -R <seed>
        Specify the seed of randomization
        used to randomize the class
        order (default: 1)
       
       -C <order>
        Specify the class order to be
        sorted, could be 0: ascending
        1: descending and 2: random.(default: 0)
       
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class 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 filter.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class Filter
      Returns:
      an array of strings suitable for passing to setOptions
    • seedTipText

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

      public long getSeed()
      Get the current randomization seed
      Returns:
      a seed
    • setSeed

      public void setSeed(long seed)
      Set randomization seed
      Parameters:
      seed - the set seed
    • classOrderTipText

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

      public int getClassOrder()
      Get the wanted class order
      Returns:
      class order
    • setClassOrder

      public void setClassOrder(int order)
      Set the wanted class order
      Parameters:
      order - the class order
    • getCapabilities

      public Capabilities getCapabilities()
      Returns the Capabilities of this filter.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Overrides:
      getCapabilities in class Filter
      Returns:
      the capabilities of this object
      See Also:
    • setInputFormat

      public boolean setInputFormat(Instances instanceInfo) throws 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:
      Exception - if no class index set or class not nominal
    • 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:
      IllegalStateException - if no input format has been defined.
    • batchFinished

      public boolean batchFinished() throws Exception
      Signify that this batch of input to the filter is finished. If the filter requires all instances prior to filtering, output() may now be called to retrieve the filtered instances. Any subsequent instances filtered should be filtered based on setting obtained from the first batch (unless the inputFormat has been re-assigned or new options have been set). This implementation sorts the class values and provide class counts in the output format
      Overrides:
      batchFinished in class Filter
      Returns:
      true if there are instances pending output
      Throws:
      IllegalStateException - if no input structure has been defined,
      Exception - if there was a problem finishing the batch.
    • getClassCounts

      public double[] getClassCounts()
      Get the class distribution of the sorted class values. If class is numeric it returns null
      Returns:
      the class counts
    • distributionsByOriginalIndex

      public double[] distributionsByOriginalIndex(double[] before)
      Convert the given class distribution back to the distributions with the original internal class index
      Parameters:
      before - the given class distribution
      Returns:
      the distribution converted back
    • originalValue

      public double originalValue(double value) throws Exception
      Return the original internal class value given the randomized class value, i.e. the string presentations of the two indices are the same. It's useful when the filter is used within a classifier so that the filtering procedure should be transparent to the evaluation
      Parameters:
      value - the given value
      Returns:
      the original internal value, -1 if not found
      Throws:
      Exception - if the coverter table is not set yet
    • getRevision

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

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