Wie berechnet man die Kullback-Leibler-Divergenz / Entfernung?


10

Ich habe drei Datensätze X, Y und Z. Jeder Datensatz definiert die Häufigkeit eines Ereignisses. Zum Beispiel:

Datensatz X: E1: 4, E2: 0, E3: 10, E4: 5, E5: 0, E6: 0 usw.
Datensatz Y: E1: 2, E2: 3, E3: 7, E4: 6, E5: 0, E6: 0 und so weiter.
Datensatz Z: E1: 0, E2: 4, E3: 8, E4: 4, E5: 1, E6: 0 und so weiter.

Ich muss KL-Divergenz zwischen X und Y finden; und zwischen X und Z. Wie Sie für einige Ereignisse sehen können, gibt es Werte von 0 und ungleich Null. Für einige Ereignisse sind alle drei Datensätze 0.

Ich würde mich freuen, wenn mir jemand helfen kann, die KL-Divergenz dafür zu finden. Ich bin kein großer Statistiker, daher habe ich keine Ahnung. Die Tutorials, die ich online angesehen habe, waren für mein Verständnis etwas zu komplex.

Antworten:


11

Um Ihre Frage zu beantworten, sollten wir uns an die Definition der KL-Divergenz erinnern :

DKL(Y||X)=i=1Nln(YiXi)Yi

Zunächst müssen Sie von dem, was Sie haben, zu Wahrscheinlichkeitsverteilungen übergehen. Dazu sollten Sie Ihre Daten so normalisieren, dass sie sich zu eins summieren:

Xi:=Xii=1NXi ; ; Yi:=Yii=1NYiZi:=Zii=1NZi

Dann haben wir für diskrete Werte eine sehr wichtige Annahme, die zur Bewertung der KL-Divergenz erforderlich ist und die häufig verletzt wird:

Xi=0 sollte bedeuten .Yi=0

Wenn sowohl als auch gleich Null sind, wird angenommen, dass Null ist (als Grenzwert).XiYiln(Yi/Xi)Yi

In Ihrem Datensatz bedeutet dies, dass Sie , aber nicht zum Beispiel (wegen des zweiten Eintrags).DKL(X||Y)DKL(Y||X)

Was ich aus praktischer Sicht raten könnte, ist:

Entweder machen Sie Ihre Ereignisse "größer", so dass Sie weniger Nullen haben

oder Sie erhalten mehr Daten, sodass Sie auch seltene Ereignisse mit mindestens einem Eintrag abdecken.

Wenn Sie keinen der oben genannten Hinweise verwenden können, müssen Sie wahrscheinlich eine andere Metrik zwischen den Verteilungen finden. Zum Beispiel,

Gegenseitige Information , definiert als . Wobei eine gemeinsame Wahrscheinlichkeit zweier Ereignisse ist.I(X,Y)=i=1Nj=1Np(Xi,Yj)ln(p(Xi,Yj)p(Xi)p(Yj))p(Xi,Yi)

Hoffe es wird helfen.


0

Geben Sie hier die Bildbeschreibung ein

Möglicherweise möchten Sie \ epsilon auf einen sehr kleinen Wert von 0,00001 (z. B.) setzen und für alle Wahrscheinlichkeiten Werte ungleich Null festlegen und KL-Werte berechnen.

Bitte lassen Sie mich wissen, ob dies funktioniert.


2
Könnten Sie bitte ein geeignetes Zitat für das angehängte Bild hinzufügen, wenn dies nicht Ihr Bild ist (andernfalls können Sie es mit setzen) und auch angeben, wie es für das jeweilige Problem gilt? (Das OP erklärte klar, dass er sich mit mathematischen Statistiken nicht allzu gut auskennt.)LATEX
chl
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.