Apa itu Certainty Factor?
Certainty Factor (CF) adalah metode untuk mengukur tingkat kepastian atau keyakinan terhadap suatu hipotesis. Metode ini dikembangkan oleh Shortliffe dan Buchanan untuk sistem pakar MYCIN.
Rumus Certainty Factor
CF dinyatakan dalam rentang -1 hingga 1:
- CF = 1: Benar pasti (absolutely true)
- CF = 0: Tidak tahu (uncertain)
- CF = -1: Salah pasti (absolutely false)
Rumus kombinasi CF:
CF(H,E) = MB(H,E) - MD(H,E) Dimana: - H = Hipotesis - E = Evidence (fakta/gejala) - MB = Measure of Belief (tingkat kepercayaan) - MD = Measure of Disbelief (tingkat ketidakpercayaan)
Kombinasi Dua CF (Aturan Berbeda)
Jika CF1 > 0 dan CF2 > 0: CF_kombinasi = CF1 + CF2 * (1 - CF1) Jika CF1 < 0 dan CF2 < 0: CF_kombinasi = CF1 + CF2 * (1 + CF1) Jika salah satu negatif: CF_kombinasi = (CF1 + CF2) / (1 - min(|CF1|, |CF2|))
Contoh Perhitungan
Misalkan ada 3 aturan untuk penyakit Flu:
- R1: IF Demam THEN Flu (CF = 0.6)
- R2: IF Pilek THEN Flu (CF = 0.4)
- R3: IF Batuk THEN Flu (CF = 0.5)
Jika user memilih Demam dan Pilek:
CF_old = CF1 + CF2 * (1 - CF1) CF_old = 0.6 + 0.4 * (1 - 0.6) CF_old = 0.6 + 0.16 = 0.76 = 76%
Implementasi Python
def combine_cf(cf_list): """Kombinasi beberapa CF menjadi satu nilai""" if len(cf_list) == 0: return 0 if len(cf_list) == 1: return cf_list[0] cf_combined = cf_list[0] for cf in cf_list[1:]: if cf_combined >= 0 and cf >= 0: cf_combined = cf_combined + cf * (1 - cf_combined) elif cf_combined < 0 and cf < 0: cf_combined = cf_combined + cf * (1 + cf_combined) else: cf_combined = (cf_combined + cf) / (1 - min(abs(cf_combined), abs(cf))) return round(cf_combined, 4) # Contoh penggunaan cf_rules = [0.6, 0.4] # CF Demam dan Pilek hasil = combine_cf(cf_rules) print(f"CF Kombinasi: {hasil} ({hasil*100}%)")