weka.filters.supervised.instance

## Class ClassBalancer

- java.lang.Object
- - weka.filters.Filter
  - - weka.filters.SimpleFilter
    - - weka.filters.SimpleBatchFilter
      - - weka.filters.supervised.instance.ClassBalancer

- All Implemented Interfaces:
    java.io.Serializable, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, WeightedAttributesHandler, WeightedInstancesHandler, SupervisedFilter

      public class ClassBalancer
      extends SimpleBatchFilter
      implements SupervisedFilter, WeightedInstancesHandler, WeightedAttributesHandler

  Reweights the instances in the data so that each class has the same total weight. The total sum of weights accross all instances will be maintained. Only the weights in the first batch of data received by this filter are changed, so it can be used with the FilteredClassifier. If the class is numeric, it is discretized using equal-width discretization to establish pseudo classes for weighting.

  Valid options are:

       -num-intervals <positive integer>
        The number of discretization intervals to use when the class is numeric (default of weka.attribute.unsupervised.Discretize).

       -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 when input format is set
        (use with caution).

  Version:
    $Revision: 10215 $
  Author:
    Eibe Frank
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassBalancer()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Capabilities` | `getCapabilities()` Returns the Capabilities of this filter.
    `int` | `getNumIntervals()` Gets the number of discretization intervals to use when the class is numeric.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `java.lang.String` | `globalInfo()` Returns a string describing this filter.
    `static void` | `main(java.lang.String[] args)` runs the filter with the given arguments
    `void` | `setNumIntervals(int num)` Sets the number of discretization intervals to use.

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

      `allowAccessToFullInputFormat, 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, getOptions, getOutputFormat, isFirstBatchDone, isNewBatch, isOutputFormatDefined, listOptions, makeCopies, makeCopy, mayRemoveInstanceAfterFirstBatchDone, numPendingOutput, output, outputPeek, postExecution, preExecution, run, runFilter, setDebug, setDoNotCheckCapabilities, setOptions, toString, useFilter, wekaStaticWrapper`

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

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

- - ### Constructor Detail

    - #### ClassBalancer

          public ClassBalancer()

  - ### Method Detail

    - #### getNumIntervals

          @OptionMetadata(displayName="Number of discretization intervals",
                          description="The number of discretization intervals to use when the class is numeric.",
                          displayOrder=1,
                          commandLineParamName="num-intervals",
                          commandLineParamSynopsis="-num-intervals <int>",
                          commandLineParamIsFlag=false)
          public int getNumIntervals()

      Gets the number of discretization intervals to use when the class is numeric.
      Returns:
        the number of discretization intervals

    - #### setNumIntervals

          public void setNumIntervals(int num)

      Sets the number of discretization intervals to use.
      Parameters:
        `num` - the number of discretization intervals to use.

    - #### globalInfo

          public java.lang.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

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

    - #### getRevision

          public java.lang.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(java.lang.String[] args)

      runs the filter with the given arguments
      Parameters:
        `args` - the commandline arguments