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.