Class RandomSubset

All Implemented Interfaces:
Serializable, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, Randomizable, RevisionHandler, WeightedAttributesHandler, WeightedInstancesHandler

Chooses a random subset of non-class attributes, either an absolute number or a percentage. Attributes are included in the order in which they occur in the input data. The class attribute (if present) is always included in the output.

Valid options are:

 -N <double>
  The number of attributes to randomly select.
  If < 1 then percentage, >= 1 absolute number.
  (default: 0.5)
 -V
  Invert selection - i.e. randomly remove rather than select.
 -S <int>
  The seed value.
  (default: 1)
 -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).
Version:
$Revision: 15073 $
Author:
fracpete (fracpete at waikato dot ac dot nz), eibe@cs.waikato.ac.nz
See Also:
  • Constructor Details

    • RandomSubset

      public RandomSubset()
  • Method Details

    • globalInfo

      public String globalInfo()
      Returns a string describing this filter.
      Specified by:
      globalInfo in class SimpleFilter
      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.
    • 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
    • setOptions

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

      Valid options are:

       -N <double>
        The number of attributes to randomly select.
        If < 1 then percentage, >= 1 absolute number.
        (default: 0.5)
       -V
        Invert selection - i.e. randomly remove rather than select.
       -S <int>
        The seed value.
        (default: 1)
       -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).
      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
    • numAttributesTipText

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

      public double getNumAttributes()
      Get the number of attributes (< 1 percentage, >= 1 absolute number).
      Returns:
      the number of attributes.
    • setNumAttributes

      public void setNumAttributes(double value)
      Set the number of attributes.
      Parameters:
      value - the number of attributes to use.
    • invertSelectionTipText

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

      public void setInvertSelection(boolean inv)
      Set whether to invert the selection - i.e. randomly remove rather than select attributes.
      Parameters:
      inv - true if the selection should be inverted
    • getInvertSelection

      public boolean getInvertSelection()
      Get whether to invert the selection - i.e. randomly remove rather than select attributes.
      Returns:
      true if the selection should be inverted
    • 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 int getSeed()
      Get the seed value for the random number generator.
      Specified by:
      getSeed in interface Randomizable
      Returns:
      the seed value.
    • setSeed

      public void setSeed(int value)
      Set the seed value for the random number generator.
      Specified by:
      setSeed in interface Randomizable
      Parameters:
      value - the seed value.
    • 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:
    • allowAccessToFullInputFormat

      public boolean allowAccessToFullInputFormat()
      Returns whether to allow the determineOutputFormat(Instances) method access to the full dataset rather than just the header.

      Overrides:
      allowAccessToFullInputFormat in class SimpleBatchFilter
      Returns:
      true for this filter so that input data can affect subset of attributes that is selected
    • 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[] args)
      Runs the filter with the given parameters. Use -h to list options.
      Parameters:
      args - the commandline options