Package elki.distance.probabilistic
Class KullbackLeiblerDivergenceAsymmetricDistance
- java.lang.Object
-
- elki.distance.AbstractNumberVectorDistance
-
- elki.distance.probabilistic.KullbackLeiblerDivergenceAsymmetricDistance
-
- All Implemented Interfaces:
Distance<NumberVector>,NumberVectorDistance<NumberVector>,PrimitiveDistance<NumberVector>
@Reference(authors="S. Kullback", title="Information theory and statistics", booktitle="", bibkey="books/dover/Kullback59") @Alias("kl") public class KullbackLeiblerDivergenceAsymmetricDistance extends AbstractNumberVectorDistance
Kullback-Leibler divergence, also known as relative entropy, information deviation, or just KL-distance (albeit asymmetric).\[KL(\vec{x},\vec{y}):=\sum\nolimits_i x_i\log\tfrac{x_i}{y_i}\]
For a version with the arguments reversed, see
KullbackLeiblerDivergenceReverseAsymmetricDistance.For a symmetric version, see
JeffreyDivergenceDistance.Reference:
S. Kullback
Information theory and statistics- Since:
- 0.6.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classKullbackLeiblerDivergenceAsymmetricDistance.ParParameterization class, using the static instance.
-
Field Summary
Fields Modifier and Type Field Description static KullbackLeiblerDivergenceAsymmetricDistanceSTATICStatic instance.
-
Constructor Summary
Constructors Constructor Description KullbackLeiblerDivergenceAsymmetricDistance()Deprecated.Use static instance!
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubledistance(NumberVector v1, NumberVector v2)Computes the distance between two given vectors according to this distance function.booleanequals(java.lang.Object obj)inthashCode()booleanisSymmetric()Is this function symmetric?java.lang.StringtoString()-
Methods inherited from class elki.distance.AbstractNumberVectorDistance
dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, getInputTypeRestriction
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface elki.distance.PrimitiveDistance
instantiate
-
-
-
-
Field Detail
-
STATIC
public static final KullbackLeiblerDivergenceAsymmetricDistance STATIC
Static instance. Use this!
-
-
Method Detail
-
distance
public double distance(NumberVector v1, NumberVector v2)
Description copied from interface:NumberVectorDistanceComputes the distance between two given vectors according to this distance function.- Parameters:
v1- first vectorv2- second vector- Returns:
- the distance between two given vectors according to this distance function
-
isSymmetric
public boolean isSymmetric()
Description copied from interface:DistanceIs this function symmetric?- Returns:
truewhen symmetric
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-