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


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分岐の定義を思い出してください:

DKL(Y||バツ)=Σ私=1Nln⁡(Y私バツ私)Y私

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

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

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

バツ私=0Y私=0

バツ私Y私ln⁡(Y私/バツ私)Y私

DKL(バツ||Y)DKL(Y||バツ)

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

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

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

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

として定義される相互情報量私(バツ、Y)=Σ私=1NΣj=1Np(バツ私、Yj)ln⁡(p(バツ私、Yj)p(バツ私)p(Yj))p(バツ私、Y私)

お役に立てば幸いです。


0

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

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

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


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