@Reference(authors="C. R. Rao",title="Information and the Accuracy Attainable in the Estimation of Statistical Parameters",booktitle="Bulletin of the Calcutta Mathematical Society 37(3)",bibkey="journals/bcalms/Rao45") @Reference(authors="M.-M. Deza, E. Deza",title="Dictionary of distances",booktitle="Dictionary of distances",url="https://doi.org/10.1007/978-3-642-00234-2",bibkey="doi:10.1007/978-3-642-00234-2") @Alias(value={"rao","fisher-rao","fisher"}) public class FisherRaoDistanceFunction extends AbstractNumberVectorDistanceFunction implements SpatialPrimitiveDistanceFunction<NumberVector>
\[ \text{Fisher-Rao}(\vec{x},\vec{y}) := 2 \arccos \sum\nolimits_i \sqrt{p_iq_i} \]
References:
The metric was theoretically introduced by Rao in 1945:
C. R. Rao
Information and the Accuracy Attainable in the Estimation of Statistical
Parameters
Bulletin of the Calcutta Mathematical Society 37(3)
here, we use a version for discrete distributions, from:
M.-M. Deza, E. Deza
Dictionary of distances
Modifier and Type | Class and Description |
---|---|
static class |
FisherRaoDistanceFunction.Parameterizer
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
static FisherRaoDistanceFunction |
STATIC
Static instance.
|
Constructor and Description |
---|
FisherRaoDistanceFunction()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
double |
distance(NumberVector fv1,
NumberVector fv2)
Computes the distance between two given DatabaseObjects according to this
distance function.
|
boolean |
equals(java.lang.Object obj) |
SimpleTypeInformation<? super NumberVector> |
getInputTypeRestriction()
Get the input data type of the function.
|
int |
hashCode() |
boolean |
isMetric()
Is this distance function metric (satisfy the triangle inequality)
|
double |
minDist(SpatialComparable mbr1,
SpatialComparable mbr2)
Computes the distance between the two given MBRs according to this distance
function.
|
dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality, dimensionality
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
instantiate
isSquared, isSymmetric
public static final FisherRaoDistanceFunction STATIC
@Deprecated public FisherRaoDistanceFunction()
STATIC
!public double distance(NumberVector fv1, NumberVector fv2)
PrimitiveDistanceFunction
distance
in interface NumberVectorDistanceFunction<NumberVector>
distance
in interface PrimitiveDistanceFunction<NumberVector>
fv1
- first DatabaseObjectfv2
- second DatabaseObjectpublic double minDist(SpatialComparable mbr1, SpatialComparable mbr2)
SpatialPrimitiveDistanceFunction
minDist
in interface SpatialPrimitiveDistanceFunction<NumberVector>
mbr1
- the first MBR objectmbr2
- the second MBR objectpublic boolean isMetric()
DistanceFunction
isMetric
in interface DistanceFunction<NumberVector>
true
when metric.public SimpleTypeInformation<? super NumberVector> getInputTypeRestriction()
DistanceFunction
getInputTypeRestriction
in interface DistanceFunction<NumberVector>
getInputTypeRestriction
in interface PrimitiveDistanceFunction<NumberVector>
getInputTypeRestriction
in class AbstractNumberVectorDistanceFunction
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.