Divergensi Jensen–Shannon

4.4.2

Divergensi Jensen–Shannon

Diperbarui 2020-03-25 Baca 2 menit
Ringkasan
  • Divergensi Jensen–Shannon (JSD) menyimetriskan KL dan menjaga nilai tetap terbatas.
  • Hitung JSD beserta akar kuadratnya (jarak Jensen–Shannon) di Python.
  • Gunakan pada clustering, evaluasi model generatif, dan analisis drift.

1. Definisi dan sifat #

Dengan distribusi (P) dan (Q), tentukan (M = \frac{1}{2}(P + Q)). Divergensi Jensen–Shannon adalah:

$$ \mathrm{JSD}(P \parallel Q) = \frac{1}{2} \mathrm{KL}(P \parallel M) + \frac{1}{2} \mathrm{KL}(Q \parallel M) $$
  • Simetris: ( \mathrm{JSD}(P \parallel Q) = \mathrm{JSD}(Q \parallel P) ).
  • Nilai terletak antara 0 dan 1 (log basis 2).
  • Akar kuadrat JSD merupakan metrik valid (memenuhi ketidaksetaraan segitiga).

2. Contoh Python #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import numpy as np
from scipy.spatial.distance import jensenshannon

p = np.array([0.4, 0.4, 0.2])
q = np.array([0.1, 0.3, 0.6])

js_distance = jensenshannon(p, q, base=2)
js_divergence = js_distance ** 2  # kuadratkan untuk memperoleh divergennya

print(f"Jarak Jensen-Shannon : {js_distance:.4f}")
print(f"Divergensi Jensen-Shannon: {js_divergence:.4f}")

jensenshannon mengembalikan jarak (akar dari JSD); kuadratkan bila perlu nilai divergensinya.


3. Karakteristik dan skenario #

  • Simetris dan stabil: menghindari masalah arah dan nilai tak terhingga seperti pada KL.
  • Terbatas: memudahkan penetapan ambang saat memantau drift.
  • Metrik: jaraknya bisa digunakan pada algoritme yang membutuhkan metrik (mis. k-means).

4. Penerapan #

  • Model generatif: bandingkan distribusi sampel sintetis dengan data nyata.
  • Model bahasa/topik: ukur perbedaan distribusi kata atau topik.
  • Deteksi anomali: amati pergeseran distribusi pada data streaming atau time series.
  • Seleksi model: pilih keluaran model yang paling mendekati distribusi target.

5. Tips penggunaan #

  • Untuk data kontinu, lakukan binning atau estimasi densitas sebelum menghitung JSD.
  • Terapkan smoothing saat banyak probabilitas nol.
  • Nilai JSD yang kecil tidak serta-merta menjamin performa terbaik; interpretasikan bersama metrik lain.

Jensen–Shannon divergence menawarkan alternatif KL yang stabil, simetris, dan berbasis metrik, sehingga praktis untuk monitoring, evaluasi, dan clustering dalam berbagai domain.