public class Distributions
extends java.lang.Object
Distributions
s.
In general, if a method is operating on a pair of Distribution objects, we imagine that the
set of possible keys for each Distribution is the same.
Therefore we require that d1.numberOFKeys = d2.numberOfKeys and that the number of keys in the union
of the two key sets <= numKeysModifier and Type | Method and Description |
---|---|
static <K> Distribution<K> |
average(Distribution<K> d1,
Distribution<K> d2) |
protected static <K> java.util.Set<K> |
getSetOfAllKeys(Distribution<K> d1,
Distribution<K> d2) |
static <K> double |
informationRadius(Distribution<K> d1,
Distribution<K> d2)
Calculates the information radius (aka the Jensen-Shannon divergence)
between the two Distributions.
|
static <K> double |
jensenShannonDivergence(Distribution<K> d1,
Distribution<K> d2)
Calculates the Jensen-Shannon divergence between the two distributions.
|
static <K> double |
klDivergence(Distribution<K> from,
Distribution<K> to)
Calculates the KL divergence between the two distributions.
|
static <K> double |
overlap(Distribution<K> d1,
Distribution<K> d2)
Returns a double between 0 and 1 representing the overlap of d1 and d2.
|
static <K> double |
skewDivergence(Distribution<K> d1,
Distribution<K> d2,
double skew)
Calculates the skew divergence between the two distributions.
|
static <K> Distribution<K> |
weightedAverage(Distribution<K> d1,
double w1,
Distribution<K> d2)
Returns a new Distribution
|
protected static <K> java.util.Set<K> getSetOfAllKeys(Distribution<K> d1, Distribution<K> d2)
public static <K> double overlap(Distribution<K> d1, Distribution<K> d2)
public static <K> Distribution<K> weightedAverage(Distribution<K> d1, double w1, Distribution<K> d2)
public static <K> Distribution<K> average(Distribution<K> d1, Distribution<K> d2)
public static <K> double klDivergence(Distribution<K> from, Distribution<K> to)
public static <K> double jensenShannonDivergence(Distribution<K> d1, Distribution<K> d2)
public static <K> double skewDivergence(Distribution<K> d1, Distribution<K> d2, double skew)
public static <K> double informationRadius(Distribution<K> d1, Distribution<K> d2)
iRad(p,q) = D(p||(p+q)/2)+D(q,(p+q)/2)where p is one Distribution, q is the other distribution, and D(p||q) is the KL divergence bewteen p and q. Note that iRad(p,q) = iRad(q,p).