Distance metrics¶
Distance metrics¶
Several distance metrics not available in scipy are provided below.
-
metrics.
hellinger
(x, y)[source]¶ Computes the Hellinger distance between two sum-normalized vectors
\(d_h(x,y) = \frac{1}{2} \sqrt{\sum_{i} \left(\sqrt{x_i} - \sqrt{y_i}\right)^2}\)
Equivalently, for sum-normalized vectors
\(d_h(x,y) = 1 - \sum_{i} \left(\sqrt{x_i} - \sqrt{y_i}\right)\)
Parameters: - x (ndarray) – The first vector
- y (ndarray) – The second vector
Returns: hellinger(x,y) = np.sqrt( 1 - np.dot(np.sqrt(x),np.sqrt(y)) )
-
metrics.
hellinger_hyp
(x, y)[source]¶ Computes the hyperbolic Hellinger distance metric between two vectors
\[d_{hy} = \log \left(\frac{1 + d_h}{1 - d_h}\right)\]Parameters: - x (ndarray) – The first vector
- y (ndarray) – The second vector
Returns: hellinger_hyp(x,y) = math.log( (1+hellinger(x,y))/(1 - hellinger(x,y)) )
-
metrics.
jeffries
(x, y)[source]¶ Computes the Jeffries divergence between two vectors
\[d_{SKL}(x,y) = \frac{1}{2} \left( \sum_{i} \left( x_i - y_i \right) \log \frac{x_i}{y_i} \right)\]Parameters: - x (ndarray) – The first vector
- y (ndarray) – The second vector
Returns: jeffries(x,y) = (1/2) * ( entropy(x,y) + entropy(y,x) )
-
metrics.
jensen
(x, y)[source]¶ Computes the Jensen-Shannon metric between two vectors
\[d^2_j = \sum_{i} \left( x_i \log_2 \frac{2x_i}{x_i + y_i} + y_i \log_2 \frac{2y_i}{x_i + y_i} \right) \]Parameters: - x (ndarray) – The first vector
- y (ndarray) – The second vector
Returns: jensen(x,y) = entropy(x,m) + entropy(y,m)
wherem = (1/2) * (x + y)
-
metrics.
jensen_hyp
(x, y)[source]¶ Computes the hyperbolic Jensen-Shannon metric between two vectors
\[d_{hy} = \log \left(\frac{1 + d_j}{1 - d_j}\right)\]Parameters: - x (ndarray) – The first vector
- y (ndarray) – The second vector
Returns: jensen_hyp(x,y) = math.log( (1+jensen_distance(x,y))/(1 - jensen_distance(x,y)) )