Source code for psiphy.utils.distances
import numpy as np
from scipy.spatial.distance import *
[docs]
def kl_divergence(p_probs, q_probs):
""""KL (p || q)"""
kl_div = p_probs * np.log(p_probs / q_probs)
return np.sum(kl_div[np.isfinite(kl_div)])
[docs]
def js_distance(p_probs, q_probs):
kl1 = kl_divergence(p_probs, q_probs)
kl2 = kl_divergence(q_probs, p_probs)
return (kl1+kl2)/2.