@Reference(authors="H. Jeffreys",title="An invariant form for the prior probability in estimation problems",booktitle="Proc. Royal Society A: Mathematical, Physical and Engineering Sciences 186(1007)",url="https://doi.org/10.1098/rspa.1946.0056",bibkey="doi:10.1098/rspa.1946.0056") @Reference(authors="J. Puzicha, J. M. Buhmann, Y. Rubner, C. Tomasi",title="Empirical evaluation of dissimilarity measures for color and texture",booktitle="Proc. 7th IEEE International Conference on Computer Vision",url="https://doi.org/10.1109/ICCV.1999.790412",bibkey="DBLP:conf/iccv/PuzichaRTB99") @Reference(authors="F. Tops\u00f8e",title="Some inequalities for information divergence and related measures of discrimination",booktitle="IEEE Transactions on information theory, 46(4)",url="https://doi.org/10.1109/18.850703",bibkey="DBLP:journals/tit/Topsoe00") @Reference(authors="D. M. Endres, J. E. Schindelin",title="A new metric for probability distributions",booktitle="IEEE Transactions on Information Theory 49(7)",url="https://doi.org/10.1109/TIT.2003.813506",bibkey="DBLP:journals/tit/EndresS03") @Alias(value="j-divergence") public class JeffreyDivergenceDistanceFunction extends AbstractNumberVectorDistanceFunction implements SpatialPrimitiveDistanceFunction<NumberVector>
NumberVector
s is a symmetric, smoothened
version of the KullbackLeiblerDivergenceAsymmetricDistanceFunction
.
Topsøe called this "capacitory discrimination".
\[JD(\vec{x},\vec{y}):= \sum\nolimits_i x_i\log\tfrac{2x_i}{x_i+y_i}+y_i\log\tfrac{2y_i}{x_i+y_i} = KL(\vec{x},\tfrac12(\vec{x}+\vec{y})) + KL(\vec{y},\tfrac12(\vec{x}+\vec{y}))\]
Reference:
H. Jeffreys
An invariant form for the prior probability in estimation problems
Proc. Royal Society A: Mathematical, Physical and Engineering Sciences
186(1007)
J. Puzicha, J. M. Buhmann, Y. Rubner, C. Tomasi
Empirical evaluation of dissimilarity measures for color and texture
Proc. 7th IEEE International Conference on Computer Vision
F. Topsøe
Some inequalities for information divergence and related measures of
discrimination
IEEE Transactions on information theory, 46(4)
D. M. Endres, J. E. Schindelin
A new metric for probability distributions
IEEE Transactions on Information Theory 49(7)
TODO: add support for sparse vectors + varying length
Modifier and Type | Class and Description |
---|---|
static class |
JeffreyDivergenceDistanceFunction.Parameterizer
Parameterization class, using the static instance.
|
Modifier and Type | Field and Description |
---|---|
static JeffreyDivergenceDistanceFunction |
STATIC
Static instance.
|
Constructor and Description |
---|
JeffreyDivergenceDistanceFunction()
Deprecated.
Use static instance!
|
Modifier and Type | Method and Description |
---|---|
double |
distance(NumberVector v1,
NumberVector v2)
Computes the distance between two given DatabaseObjects according to this
distance function.
|
boolean |
equals(java.lang.Object obj) |
int |
hashCode() |
boolean |
isSquared()
Squared distances, that would become metric after square root.
|
double |
minDist(SpatialComparable mbr1,
SpatialComparable mbr2)
Computes the distance between the two given MBRs according to this distance
function.
|
java.lang.String |
toString() |
dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, getInputTypeRestriction
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
instantiate
getInputTypeRestriction
isMetric, isSymmetric
public static final JeffreyDivergenceDistanceFunction STATIC
@Deprecated public JeffreyDivergenceDistanceFunction()
STATIC
instead.public double distance(NumberVector v1, NumberVector v2)
PrimitiveDistanceFunction
distance
in interface NumberVectorDistanceFunction<NumberVector>
distance
in interface PrimitiveDistanceFunction<NumberVector>
v1
- first DatabaseObjectv2
- second DatabaseObjectpublic double minDist(SpatialComparable mbr1, SpatialComparable mbr2)
SpatialPrimitiveDistanceFunction
minDist
in interface SpatialPrimitiveDistanceFunction<NumberVector>
mbr1
- the first MBR objectmbr2
- the second MBR objectpublic boolean isSquared()
DistanceFunction
isSquared
in interface DistanceFunction<NumberVector>
true
when squared.public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
Copyright © 2019 ELKI Development Team. License information.