Package weka.classifiers.trees.j48
Class Distribution
- java.lang.Object
-
- weka.classifiers.trees.j48.Distribution
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,RevisionHandler
public class Distribution extends java.lang.Object implements java.lang.Cloneable, java.io.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
actualNumBags()
Returns number of non-empty bags of distribution.int
actualNumClasses()
Returns number of classes actually occuring in distribution.int
actualNumClasses(int bagIndex)
Returns number of classes actually occuring in given bag.void
add(int bagIndex, double[] counts)
Adds counts to given bag.void
add(int bagIndex, Instance instance)
Adds given instance to given bag.void
addInstWithUnknown(Instances source, int attIndex)
Adds all instances with unknown values for given attribute, weighted according to frequency of instances in each bag.void
addRange(int bagIndex, Instances source, int startIndex, int lastPlusOne)
Adds all instances in given range to given bag.void
addWeights(Instance instance, double[] weights)
Adds given instance to all bags weighting it according to given weights.boolean
check(double minNoObj)
Checks if at least two bags contain a minimum number of instances.java.lang.Object
clone()
Clones distribution (Deep copy of distribution).void
del(int bagIndex, Instance instance)
Deletes given instance from given bag.void
delRange(int bagIndex, Instances source, int startIndex, int lastPlusOne)
Deletes all instances in given range from given bag.java.lang.String
dumpDistribution()
Prints distribution.java.lang.String
getRevision()
Returns the revision string.void
initialize()
Sets all counts to zero.double
laplaceProb(int classIndex)
Returns relative frequency of class over all bags with Laplace correction.double
laplaceProb(int classIndex, int intIndex)
Returns relative frequency of class for given bag.double[][]
matrix()
Returns matrix with distribution of class values.int
maxBag()
Returns index of bag containing maximum number of instances.int
maxClass()
Returns class with highest frequency over all bags.int
maxClass(int index)
Returns class with highest frequency for given bag.int
numBags()
Returns number of bags.int
numClasses()
Returns number of classes.double
numCorrect()
Returns perClass(maxClass()).double
numCorrect(int index)
Returns perClassPerBag(index,maxClass(index)).double
numIncorrect()
Returns total-numCorrect().double
numIncorrect(int index)
Returns perBag(index)-numCorrect(index).double
perBag(int bagIndex)
Returns number of (possibly fractional) instances in given bag.double
perClass(int classIndex)
Returns number of (possibly fractional) instances of given class.double
perClassPerBag(int bagIndex, int classIndex)
Returns number of (possibly fractional) instances of given class in given bag.double
prob(int classIndex)
Returns relative frequency of class over all bags.double
prob(int classIndex, int intIndex)
Returns relative frequency of class for given bag.void
shift(int from, int to, Instance instance)
Shifts given instance from one bag to another one.void
shiftRange(int from, int to, Instances source, int startIndex, int lastPlusOne)
Shifts all instances in given range from one bag to another one.void
sub(int bagIndex, Instance instance)
Subtracts given instance from given bag.Distribution
subtract(Distribution toSubstract)
Subtracts the given distribution from this one.double
total()
Returns total number of (possibly fractional) instances.
-
-
-
Constructor Detail
-
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 java.lang.Exception
Creates a distribution with only one bag according to instances in source.- Throws:
java.lang.Exception
- if something goes wrong
-
Distribution
public Distribution(Instances source, ClassifierSplitModel modelToUse) throws java.lang.Exception
Creates a distribution according to given instances and split model.- Throws:
java.lang.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 Detail
-
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 java.lang.Exception
Adds given instance to given bag.- Throws:
java.lang.Exception
- if something goes wrong
-
sub
public final void sub(int bagIndex, Instance instance) throws java.lang.Exception
Subtracts given instance from given bag.- Throws:
java.lang.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 java.lang.Exception
Adds all instances with unknown values for given attribute, weighted according to frequency of instances in each bag.- Throws:
java.lang.Exception
- if something goes wrong
-
addRange
public final void addRange(int bagIndex, Instances source, int startIndex, int lastPlusOne) throws java.lang.Exception
Adds all instances in given range to given bag.- Throws:
java.lang.Exception
- if something goes wrong
-
addWeights
public final void addWeights(Instance instance, double[] weights) throws java.lang.Exception
Adds given instance to all bags weighting it according to given weights.- Throws:
java.lang.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 java.lang.Object clone()
Clones distribution (Deep copy of distribution).
-
del
public final void del(int bagIndex, Instance instance) throws java.lang.Exception
Deletes given instance from given bag.- Throws:
java.lang.Exception
- if something goes wrong
-
delRange
public final void delRange(int bagIndex, Instances source, int startIndex, int lastPlusOne) throws java.lang.Exception
Deletes all instances in given range from given bag.- Throws:
java.lang.Exception
- if something goes wrong
-
dumpDistribution
public final java.lang.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 java.lang.Exception
Shifts given instance from one bag to another one.- Throws:
java.lang.Exception
- if something goes wrong
-
shiftRange
public final void shiftRange(int from, int to, Instances source, int startIndex, int lastPlusOne) throws java.lang.Exception
Shifts all instances in given range from one bag to another one.- Throws:
java.lang.Exception
- if something goes wrong
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-
-