カルバック・ライブラーの発散/距離を計算する方法は?


10

X、Y、Zの3つのデータセットがあります。各データセットは、発生するイベントの頻度を定義します。例えば:

データセットX:E1:4、E2:0、E3:10、E4:5、E5:0、E6:0など。
データセットY:E1:2、E2:3、E3:7、E4: 6、E5:0、E6:0など。
データセットZ:E1:0、E2:4、E3:8、E4:4、E5:1、E6:0など。

XとYの間のKLダイバージェンスを見つける必要があります。XとZの間。いくつかのイベントを見るとわかるように、0とゼロ以外の値があります。一部のイベントでは、3つのデータセットはすべて0です。

誰かがこのためのKL分岐を見つけるのを手伝ってくれるとありがたいです。私は統計学者ではないので、あまり考えていません。私がオンラインで見ていたチュートリアルは、理解するには少し複雑すぎました。

回答:


11

あなたの質問に答えるために、KL分岐の定義を思い出してください

DKLY||バツ=Σ=1NlnYバツY

まず第一に、あなたはあなたが持っているものから確率分布へと行かなければなりません。このため、合計が1になるようにデータを正規化する必要があります。

; Yi=バツ:=バツΣ=1Nバツ ; Zi=ZY:=YΣ=1NYZ:=ZΣ=1NZ

次に、離散値の場合、KLダイバージェンスを評価するために必要な非常に重要な仮定が1つあります。

バツ=0Y=0

バツYlnY/バツY

DKLバツ||YDKLY||バツ

実用的な観点から私がアドバイスできることは:

ゼロが少なくなるようにイベントを「大きく」するか

または、より多くのデータを取得して、少なくとも1つのエントリがあるまれなイベントもカバーします。

上記のいずれのアドバイスも使用できない場合は、おそらく分布間の別のメトリックを見つける必要があります。例えば、

として定義される相互情報量バツY=Σ=1NΣj=1NpバツYjlnpバツYjpバツpYjpバツY

お役に立てば幸いです。


0

ここに画像の説明を入力してください

\ epsilonを非常に小さい値0.00001(たとえば)に設定し、すべての確率に対してゼロ以外の値を使用して、KLスコアを計算することができます。

これが機能するかどうか私に知らせてください。


2
LTEバツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.