Apa itu Dempster-Shafer?

Teori Dempster-Shafer adalah teori matematika untuk mengkombinasikan bukti (evidence) dari berbagai sumber. Metode ini dapat menangani ketidakpastian dan ketidaklengkapan informasi.

Konsep Dasar

  • Frame of Discernment (Θ): Himpunan semua hipotesis yang mungkin.
  • Mass Function (m): Tingkat kepercayaan terhadap suatu himpunan hipotesis.
  • Belief (Bel): Kepercayaan total terhadap hipotesis.
  • Plausibility (Pl): Kemungkinan maksimal hipotesis benar.

Rumus Kombinasi Dempster

m3(Z) = Σ m1(X) × m2(Y) / (1 - K)        X∩Y=Z Dimana K (faktor konflik): K = Σ m1(X) × m2(Y)    X∩Y=∅

Contoh Perhitungan

Misalkan ada 3 penyakit: {P1, P2, P3}

Evidence 1 (Demam):

  • m1({P1}) = 0.3
  • m1({P1,P2}) = 0.4
  • m1(Θ) = 0.3

Evidence 2 (Batuk):

  • m2({P1}) = 0.5
  • m2({P2}) = 0.2
  • m2(Θ) = 0.3

Implementasi Python

from itertools import product def dempster_combine(m1, m2):    """Kombinasi dua mass function menggunakan aturan Dempster"""    combined = {}    conflict = 0        for (A, val1), (B, val2) in product(m1.items(), m2.items()):        intersection = A & B if isinstance(A, frozenset) else frozenset([A]) & frozenset([B])                if not intersection:  # Konflik            conflict += val1 * val2        else:            key = frozenset(intersection) if len(intersection) > 1 else list(intersection)[0]            combined[key] = combined.get(key, 0) + val1 * val2        # Normalisasi    if conflict < 1:        combined = {k: v / (1 - conflict) for k, v in combined.items()}        return combined # Contoh penggunaan m1 = {'P1': 0.3, frozenset(['P1', 'P2']): 0.4, 'theta': 0.3} m2 = {'P1': 0.5, 'P2': 0.2, 'theta': 0.3} hasil = dempster_combine(m1, m2) print(f"Hasil kombinasi: {hasil}")

Kapan Menggunakan Dempster-Shafer?

Gunakan ketika ada ketidakpastian tinggi dan perlu mengkombinasikan evidence dari multiple sources. Lebih kompleks dari Certainty Factor tapi lebih kuat secara teoritis.