Package weka.classifiers.trees.j48

# Class Distribution

java.lang.Object
weka.classifiers.trees.j48.Distribution

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `RevisionHandler`

public class Distribution extends Object implements Cloneable, Serializable, RevisionHandler
Class for handling a distribution of class values.

Version:
  $Revision: 1.12 $
Author:
  Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`Distribution(double[][] table)`
Creates and initializes a new distribution using the given array.
`Distribution(int numBags, int numClasses)`
Creates and initializes a new distribution.
`Distribution(Distribution toMerge)`
Creates distribution with only one bag by merging all bags of given distribution.
`Distribution(Distribution toMerge, int index)`
Creates distribution with two bags by merging all bags apart of the indicated one.
`Distribution(Instances source)`
Creates a distribution with only one bag according to instances in source.
`Distribution(Instances source, ClassifierSplitModel modelToUse)`
Creates a distribution according to given instances and split model.

## Method Summary

Modifier and Type
Method
Description
`final int`
`actualNumBags()`
Returns number of non-empty bags of distribution.
`final int`
`actualNumClasses()`
Returns number of classes actually occuring in distribution.
`final int`
`actualNumClasses(int bagIndex)`
Returns number of classes actually occuring in given bag.
`final void`
`add(int bagIndex, double[] counts)`
Adds counts to given bag.
`final void`
`add(int bagIndex, Instance instance)`
Adds given instance to given bag.
`final void`
`addInstWithUnknown(Instances source, int attIndex)`
Adds all instances with unknown values for given attribute, weighted according to frequency of instances in each bag.
`final void`
`addRange(int bagIndex, Instances source, int startIndex, int lastPlusOne)`
Adds all instances in given range to given bag.
`final void`
`addWeights(Instance instance, double[] weights)`
Adds given instance to all bags weighting it according to given weights.
`final boolean`
`check(double minNoObj)`
Checks if at least two bags contain a minimum number of instances.
`final Object`
`clone()`
Clones distribution (Deep copy of distribution).
`final void`
`del(int bagIndex, Instance instance)`
Deletes given instance from given bag.
`final void`
`delRange(int bagIndex, Instances source, int startIndex, int lastPlusOne)`
Deletes all instances in given range from given bag.
`final String`
`dumpDistribution()`
Prints distribution.
`String`
`getRevision()`
Returns the revision string.
`final void`
`initialize()`
Sets all counts to zero.
`final double`
`laplaceProb(int classIndex)`
Returns relative frequency of class over all bags with Laplace correction.
`final double`
`laplaceProb(int classIndex, int intIndex)`
Returns relative frequency of class for given bag.
`final double[][]`
`matrix()`
Returns matrix with distribution of class values.
`final int`
`maxBag()`
Returns index of bag containing maximum number of instances.
`final int`
`maxClass()`
Returns class with highest frequency over all bags.
`final int`
`maxClass(int index)`
Returns class with highest frequency for given bag.
`final int`
`numBags()`
Returns number of bags.
`final int`
`numClasses()`
Returns number of classes.
`final double`
`numCorrect()`
Returns perClass(maxClass()).
`final double`
`numCorrect(int index)`
Returns perClassPerBag(index,maxClass(index)).
`final double`
`numIncorrect()`
Returns total-numCorrect().
`final double`
`numIncorrect(int index)`
Returns perBag(index)-numCorrect(index).
`final double`
`perBag(int bagIndex)`
Returns number of (possibly fractional) instances in given bag.
`final double`
`perClass(int classIndex)`
Returns number of (possibly fractional) instances of given class.
`final double`
`perClassPerBag(int bagIndex, int classIndex)`
Returns number of (possibly fractional) instances of given class in given bag.
`final double`
`prob(int classIndex)`
Returns relative frequency of class over all bags.
`final double`
`prob(int classIndex, int intIndex)`
Returns relative frequency of class for given bag.
`final void`
`shift(int from, int to, Instance instance)`
Shifts given instance from one bag to another one.
`final void`
`shiftRange(int from, int to, Instances source, int startIndex, int lastPlusOne)`
Shifts all instances in given range from one bag to another one.
`final void`
`sub(int bagIndex, Instance instance)`
Subtracts given instance from given bag.
`final Distribution`
`subtract(Distribution toSubstract)`
Subtracts the given distribution from this one.
`final double`
`total()`
Returns total number of (possibly fractional) instances.

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

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

## Constructor Details

### Distribution

public Distribution(int numBags, int numClasses)
Creates and initializes a new distribution.

### Distribution

public Distribution(double[][] table)
Creates and initializes a new distribution using the given array. WARNING: it just copies a reference to this array.

### Distribution

public Distribution(Instances source) throws Exception
Creates a distribution with only one bag according to instances in source.

Throws:
  `Exception` - if something goes wrong

### Distribution

public Distribution(Instances source, ClassifierSplitModel modelToUse) throws Exception
Creates a distribution according to given instances and split model.

Throws:
  `Exception` - if something goes wrong

### Distribution

public Distribution(Distribution toMerge)
Creates distribution with only one bag by merging all bags of given distribution.

### Distribution

public Distribution(Distribution toMerge, int index)
Creates distribution with two bags by merging all bags apart of the indicated one.

## Method Details

### actualNumBags

public final int actualNumBags()
Returns number of non-empty bags of distribution.

### actualNumClasses

public final int actualNumClasses()
Returns number of classes actually occuring in distribution.

### actualNumClasses

public final int actualNumClasses(int bagIndex)
Returns number of classes actually occuring in given bag.

### add

public final void add(int bagIndex, Instance instance) throws Exception
Adds given instance to given bag.

Throws:
  `Exception` - if something goes wrong

### sub

public final void sub(int bagIndex, Instance instance) throws Exception
Subtracts given instance from given bag.

Throws:
  `Exception` - if something goes wrong

### add

public final void add(int bagIndex, double[] counts)
Adds counts to given bag.

### addInstWithUnknown

public final void addInstWithUnknown(Instances source, int attIndex) throws Exception
Adds all instances with unknown values for given attribute, weighted according to frequency of instances in each bag.

Throws:
  `Exception` - if something goes wrong

### addRange

public final void addRange(int bagIndex, Instances source, int startIndex, int lastPlusOne) throws Exception
Adds all instances in given range to given bag.

Throws:
  `Exception` - if something goes wrong

### addWeights

public final void addWeights(Instance instance, double[] weights) throws Exception
Adds given instance to all bags weighting it according to given weights.

Throws:
  `Exception` - if something goes wrong

### check

public final boolean check(double minNoObj)
Checks if at least two bags contain a minimum number of instances.

### clone

public final Object clone()
Clones distribution (Deep copy of distribution).

### del

public final void del(int bagIndex, Instance instance) throws Exception
Deletes given instance from given bag.

Throws:
  `Exception` - if something goes wrong

### delRange

public final void delRange(int bagIndex, Instances source, int startIndex, int lastPlusOne) throws Exception
Deletes all instances in given range from given bag.

Throws:
  `Exception` - if something goes wrong

### dumpDistribution

public final String dumpDistribution()
Prints distribution.

### initialize

public final void initialize()
Sets all counts to zero.

### matrix

public final double[][] matrix()
Returns matrix with distribution of class values.

### maxBag

public final int maxBag()
Returns index of bag containing maximum number of instances.

### maxClass

public final int maxClass()
Returns class with highest frequency over all bags.

### maxClass

public final int maxClass(int index)
Returns class with highest frequency for given bag.

### numBags

public final int numBags()
Returns number of bags.

### numClasses

public final int numClasses()
Returns number of classes.

### numCorrect

public final double numCorrect()
Returns perClass(maxClass()).

### numCorrect

public final double numCorrect(int index)
Returns perClassPerBag(index,maxClass(index)).

### numIncorrect

public final double numIncorrect()
Returns total-numCorrect().

### numIncorrect

public final double numIncorrect(int index)
Returns perBag(index)-numCorrect(index).

### perClassPerBag

public final double perClassPerBag(int bagIndex, int classIndex)
Returns number of (possibly fractional) instances of given class in given bag.

### perBag

public final double perBag(int bagIndex)
Returns number of (possibly fractional) instances in given bag.

### perClass

public final double perClass(int classIndex)
Returns number of (possibly fractional) instances of given class.

### laplaceProb

public final double laplaceProb(int classIndex)
Returns relative frequency of class over all bags with Laplace correction.

### laplaceProb

public final double laplaceProb(int classIndex, int intIndex)
Returns relative frequency of class for given bag.

### prob

public final double prob(int classIndex)
Returns relative frequency of class over all bags.

### prob

public final double prob(int classIndex, int intIndex)
Returns relative frequency of class for given bag.

### subtract

public final Distribution subtract(Distribution toSubstract)
Subtracts the given distribution from this one. The results has only one bag.

### total

public final double total()
Returns total number of (possibly fractional) instances.

### shift

public final void shift(int from, int to, Instance instance) throws Exception
Shifts given instance from one bag to another one.

Throws:
  `Exception` - if something goes wrong

### shiftRange

public final void shiftRange(int from, int to, Instances source, int startIndex, int lastPlusOne) throws Exception
Shifts all instances in given range from one bag to another one.

Throws:
  `Exception` - if something goes wrong

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Returns:
  the revision