Package weka.filters.unsupervised.attribute

# Class RandomSubset

java.lang.Object
weka.filters.Filter
weka.filters.SimpleFilter
weka.filters.SimpleBatchFilter
weka.filters.unsupervised.attribute.RandomSubset

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

public class RandomSubset extends SimpleBatchFilter implements Randomizable, WeightedInstancesHandler, WeightedAttributesHandler
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: 15074 $
Author:
  fracpete (fracpete at waikato dot ac dot nz), eibe@cs.waikato.ac.nz
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RandomSubset()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `allowAccessToFullInputFormat()`
  Returns whether to allow the determineOutputFormat(Instances) method access to the full dataset rather than just the header.
  `Capabilities`
  `getCapabilities()`
  Returns the Capabilities of this filter.
  `boolean`
  `getInvertSelection()`
  Get whether to invert the selection - i.e.
  `double`
  `getNumAttributes()`
  Get the number of attributes (< 1 percentage, >= 1 absolute number).
  `String[]`
  `getOptions()`
  Gets the current settings of the filter.
  `String`
  `getRevision()`
  Returns the revision string.
  `int`
  `getSeed()`
  Get the seed value for the random number generator.
  `String`
  `globalInfo()`
  Returns a string describing this filter.
  `String`
  `invertSelectionTipText()`
  Returns the tip text for this property.
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] args)`
  Runs the filter with the given parameters.
  `String`
  `numAttributesTipText()`
  Returns the tip text for this property.
  `String`
  `seedTipText()`
  Returns the tip text for this property.
  `void`
  `setInvertSelection(boolean inv)`
  Set whether to invert the selection - i.e.
  `void`
  `setNumAttributes(double value)`
  Set the number of attributes.
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `void`
  `setSeed(int value)`
  Set the seed value for the random number generator.

  ### Methods inherited from class weka.filters.SimpleBatchFilter

  `batchFinished, input, input`

  ### Methods inherited from class weka.filters.SimpleFilter

  `setInputFormat`

  ### Methods inherited from class weka.filters.Filter

  `batchFilterFile, debugTipText, doNotCheckCapabilitiesTipText, filterFile, getCapabilities, getCopyOfInputFormat, getDebug, getDoNotCheckCapabilities, getOutputFormat, isFirstBatchDone, isNewBatch, isOutputFormatDefined, makeCopies, makeCopy, mayRemoveInstanceAfterFirstBatchDone, numPendingOutput, output, outputPeek, postExecution, preExecution, run, runFilter, setDebug, setDoNotCheckCapabilities, toString, useFilter, wekaStaticWrapper`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## 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:
      - `Capabilities`

  - ### 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