public enum FloatFVComparison extends Enum<FloatFVComparison> implements FloatFVComparator
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(float[] h1,
float[] h2)
Compare two feature vectors in the form of native arrays,
returning a score or distance.
|
double |
compare(FloatFV h1,
FloatFV h2)
Compare two objects, returning a score
or distance.
|
boolean |
isDistance() |
static FloatFVComparison |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static FloatFVComparison[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final FloatFVComparison EUCLIDEAN
public static final FloatFVComparison SUM_SQUARE
public static final FloatFVComparison CORRELATION
public static final FloatFVComparison CHI_SQUARE
public static final FloatFVComparison INTERSECTION
public static final FloatFVComparison BHATTACHARYYA
public static final FloatFVComparison HAMMING
public static final FloatFVComparison PACKED_HAMMING
public static final FloatFVComparison CITY_BLOCK
public static final FloatFVComparison COSINE_SIM
public static final FloatFVComparison COSINE_DIST
public static final FloatFVComparison ARCCOS
public static final FloatFVComparison SYMMETRIC_KL_DIVERGENCE
public static final FloatFVComparison JACCARD_DISTANCE
public static final FloatFVComparison INNER_PRODUCT
public static FloatFVComparison[] values()
for (FloatFVComparison c : FloatFVComparison.values()) System.out.println(c);
public static FloatFVComparison 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<FloatFV>
public double compare(FloatFV h1, FloatFV h2)
DistanceComparator
compare
in interface DistanceComparator<FloatFV>
h1
- the first objecth2
- the second objectpublic abstract double compare(float[] h1, float[] h2)
compare
in interface FloatFVComparator
h1
- the first feature arrayh2
- the second feature array