public enum DoubleFVComparison extends Enum<DoubleFVComparison> implements DoubleFVComparator
Enum Constant and Description |
---|
ARCCOS
The arccosine of the cosine similarity
|
BHATTACHARYYA
Bhattacharyya distance
d(H1,H2) = sqrt( 1 - (1 / sqrt(sumI(H1(I)) * sumI(H2(I))) ) * sumI( sqrt(H1(I) * H2(I)) ) )
|
CHI_SQUARE
Chi-squared distance
d(H1,H2) = 0.5 * sumI[(H1(I)-H2(I))^2 / (H1(I)+H2(I))]
|
CITY_BLOCK
City-block (L1) distance
d(H1,H2) = sumI( abs(H1(I)-H2(I)) )
|
CORRELATION
Correlation
s(H1,H2) = sumI( H'1(I) * H'2(I) ) / sqrt( sumI[H'1(I)2]^2 * sumI[H'2(I)^2] )
where
H'k(I) = Hk(I) - (1/N) * sumJ( Hk(J) ); N=number of FeatureVector bins
|
COSINE_DIST
Cosine distance (-COSINE_SIM)
|
COSINE_SIM
Cosine similarity (sim of 1 means identical)
s(H1,H2)=sumI(H1(I) * H2(I))) / (sumI(H1(I)^2) sumI(H2(I)^2))
|
EUCLIDEAN
Euclidean distance
d(H1,H2) = Math.sqrt( sumI( (H1(I)-H2(I))^2 ) )
|
HAMMING
Hamming Distance
d(H1,H2) = sumI(H1(I) == H2(I) ? 1 : 0)
|
INNER_PRODUCT
Inner product
s(H1,H2)=sumI(H1(I) * H2(I))
|
INTERSECTION
Histogram intersection
s(H1,H2) = sumI( min(H1(I), H2(I)) )
|
JACCARD_DISTANCE
Jaccard distance.
|
PACKED_HAMMING
Hamming Distance for packed bit strings
d(H1,H2) = sumI(H1(I) == H2(I) ? 1 : 0)
|
SUM_SQUARE
Sum-square distance
d(H1,H2) = sumI( (H1(I)-H2(I))^2 )
|
SYMMETRIC_KL_DIVERGENCE
The symmetric Kullback-Leibler divergence.
|
Modifier and Type | Method and Description |
---|---|
abstract double |
compare(double[] h1,
double[] h2)
Compare two feature vectors in the form of native arrays,
returning a score or distance.
|
double |
compare(DoubleFV h1,
DoubleFV h2)
Compare two objects, returning a score
or distance.
|
boolean |
isDistance() |
static DoubleFVComparison |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static DoubleFVComparison[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final DoubleFVComparison EUCLIDEAN
public static final DoubleFVComparison SUM_SQUARE
public static final DoubleFVComparison CORRELATION
public static final DoubleFVComparison CHI_SQUARE
public static final DoubleFVComparison INTERSECTION
public static final DoubleFVComparison BHATTACHARYYA
public static final DoubleFVComparison HAMMING
public static final DoubleFVComparison PACKED_HAMMING
public static final DoubleFVComparison CITY_BLOCK
public static final DoubleFVComparison COSINE_SIM
public static final DoubleFVComparison COSINE_DIST
public static final DoubleFVComparison ARCCOS
public static final DoubleFVComparison SYMMETRIC_KL_DIVERGENCE
public static final DoubleFVComparison JACCARD_DISTANCE
public static final DoubleFVComparison INNER_PRODUCT
public static DoubleFVComparison[] values()
for (DoubleFVComparison c : DoubleFVComparison.values()) System.out.println(c);
public static DoubleFVComparison valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic boolean isDistance()
isDistance
in interface DistanceComparator<DoubleFV>
public double compare(DoubleFV h1, DoubleFV h2)
DistanceComparator
compare
in interface DistanceComparator<DoubleFV>
h1
- the first objecth2
- the second objectpublic abstract double compare(double[] h1, double[] h2)
compare
in interface DoubleFVComparator
h1
- the first feature arrayh2
- the second feature array