Kullback-Leibler 발산 / 거리를 계산하는 방법?


10

세 개의 데이터 세트 X, Y 및 Z가 있습니다. 각 데이터 세트는 이벤트 발생 빈도를 정의합니다. 예를 들면 다음과 같습니다.

데이터 세트 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- 분산을 찾아야합니다. 일부 이벤트에서 볼 수 있듯이 0과 0이 아닌 값이 있습니다. 일부 이벤트의 경우 세 데이터 세트 모두 0입니다.

누군가 KL 발산을 찾도록 도와 줄 수 있다면 감사하겠습니다. 나는 통계학자가 아니기 때문에 많은 아이디어가 없다. 온라인에서 본 튜토리얼은 이해하기에는 너무 복잡했습니다.

답변:


11

귀하의 질문에 답변하기 위해 KL 분기정의를 상기해야합니다 .

케이(와이||엑스)=나는=1ln(와이나는엑스나는)와이나는

우선 당신은 당신이 가진 것에서 확률 분포로 가야합니다. 이를 위해 데이터를 합산하여 최대 1 개가되도록합니다.

엑스나는: =엑스나는나는=1엑스나는와이나는: =와이나는나는=1와이나는나는: =나는나는=1나는

그런 다음 이산 값의 경우 KL- 분산을 평가하는 데 필요하고 종종 위반되는 매우 중요한 가정이 있습니다.

엑스나는=0와이나는=0

엑스나는와이나는ln(와이나는/엑스나는)와이나는

케이(엑스||와이)케이(와이||엑스)

실용적인 관점에서 조언 할 수있는 것은 :

이벤트를 "크게"만들어서 0이 줄어 듭니다.

또는 더 많은 데이터를 확보하여 하나 이상의 항목으로 드문 이벤트를 처리 할 수 ​​있습니다.

위의 조언 중 어느 것도 사용할 수 없다면 분포 사이에 다른 메트릭을 찾아야 할 것입니다. 예를 들어

나는(엑스,와이)=나는=1제이=1(엑스나는,와이제이)ln((엑스나는,와이제이)(엑스나는)(와이제이))(엑스나는,와이나는)

그것이 도움이되기를 바랍니다.


0

여기에 이미지 설명을 입력하십시오

\ epsilon을 아주 작은 0.00001 값으로 설정하고 모든 확률에 대해 0이 아닌 값으로 진행하고 KL 점수를 계산할 수 있습니다.

이것이 작동하는지 알려주세요.


2
첨부 된 이미지에 적절한 인용을 추가 할 수 있습니다. 그렇지 않은 경우 사용할 수 있습니다.이자형엑스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.