scipyには距離を測るための手続きが用意されています(scipy.spatial.distance)。ユークリッド距離やcosine距離(cosine類似度)などもあるのですが、確率分布間の距離とも言うべきKLダイバージェンスやJensen-Shannonダイバージェンスなどは実装されていません。ということで、実装してみました。 実装コードだけ見たいという場合は、最後まで読み飛ばしてください。 KLダイバージェンスとJensen-Shannonダイバージェンスについて KLダイバージェンス(カルバック・ライブラー情報量; Kullback–Leibler divergence; 相対エントロピー)とは、分布と分布の差異の大きさ(≠距離)を測るものです。分布と分布があったとき、のに対するKLダイバージェンスは で定義されます。また、クロスエントロピーを使って と定義することもできます。クロ