|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object edu.uci.ics.jung.algorithms.util.DiscreteDistribution
public class DiscreteDistribution
A utility class for calculating properties of discrete distributions.
Generally, these distributions are represented as arrays of
double
values, which are assumed to be normalized
such that the entries in a single array sum to 1.
Constructor Summary | |
---|---|
DiscreteDistribution()
|
Method Summary | |
---|---|
protected static void |
checkLengths(double[] dist,
double[] reference)
Throws an IllegalArgumentException if the two arrays are not of the same length. |
static double |
cosine(double[] dist,
double[] reference)
Returns the cosine distance between the two specified distributions, which must have the same number of elements. |
static double |
entropy(double[] dist)
Returns the entropy of this distribution. |
static double |
KullbackLeibler(double[] dist,
double[] reference)
Returns the Kullback-Leibler divergence between the two specified distributions, which must have the same number of elements. |
static double[] |
mean(Collection<double[]> distributions)
Returns the mean of the specified Collection of
distributions, which are assumed to be normalized arrays of
double values. |
static double[] |
mean(double[][] distributions)
Returns the mean of the specified array of distributions, represented as normalized arrays of double values. |
static void |
normalize(double[] counts,
double alpha)
Normalizes, with Lagrangian smoothing, the specified double
array, so that the values sum to 1 (i.e., can be treated as probabilities). |
static double |
squaredError(double[] dist,
double[] reference)
Returns the squared difference between the two specified distributions, which must have the same number of elements. |
static double |
symmetricKL(double[] dist,
double[] reference)
Returns KullbackLeibler(dist, reference) + KullbackLeibler(reference, dist) . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DiscreteDistribution()
Method Detail |
---|
public static double KullbackLeibler(double[] dist, double[] reference)
i
of
dist[i] * Math.log(dist[i] / reference[i])
.
Note that this value is not symmetric; see
symmetricKL
for a symmetric variant.
symmetricKL(double[], double[])
public static double symmetricKL(double[] dist, double[] reference)
KullbackLeibler(dist, reference) + KullbackLeibler(reference, dist)
.
KullbackLeibler(double[], double[])
public static double squaredError(double[] dist, double[] reference)
i
of the square of
(dist[i] - reference[i])
.
public static double cosine(double[] dist, double[] reference)
dist.length
-dimensional space.
Given the following definitions
v
= the sum over all i
of dist[i] * dist[i]
w
= the sum over all i
of reference[i] * reference[i]
vw
= the sum over all i
of dist[i] * reference[i]
vw / (Math.sqrt(v) * Math.sqrt(w))
.
public static double entropy(double[] dist)
i
of
-(dist[i] * Math.log(dist[i]))
protected static void checkLengths(double[] dist, double[] reference)
IllegalArgumentException
if the two arrays are not of the same length.
public static void normalize(double[] counts, double alpha)
double
array, so that the values sum to 1 (i.e., can be treated as probabilities).
The effect of the Lagrangian smoothing is to ensure that all entries
are nonzero; effectively, a value of alpha
is added to each
entry in the original array prior to normalization.
counts
- alpha
- public static double[] mean(Collection<double[]> distributions)
Collection
of
distributions, which are assumed to be normalized arrays of
double
values.
mean(double[][])
public static double[] mean(double[][] distributions)
double
values.
Will throw an "index out of bounds" exception if the
distribution arrays are not all of the same length.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |