Translate

Minggu, 08 Januari 2017

Forward Chaining (Pelacakan ke depan)

Kadang disebut:data-driven karena inference engine menggunakan informasi yang ditentukan oleh user untuk memindahkan ke seluruh jaringan dari logika ‘AND’ dan ‘OR’ sampai sebuah terminal ditentukan sebagai objek. Bila inference engine tidak dapat menentukan objek maka akan meminta informasi lain. Aturan (Rule) di mana menentukan objek, membentuk path (lintasan) yang mengarah ke objek. Oleh karena itu, hanya satu cara untuk mencapai satu objek adalah memenuhi semua aturan.Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kiri (IF) dulu. Dengan perkataan lain, penalaran dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesa.
  1.  Contoh-contoh aturan
No.
Aturan
R-1
R-2
R-3
R-4
R-5
R-6
R-7
R-8
R-9
R-10
IF A & B THEN C
IF C THEN D
IF A & E THEN F
IF A THEN G
IF F & G THEN D
IF G & E THEN H
IF C & H THEN I
IF I & A THEN J
IF G THEN J
IF J THEN K
Pada tabel di atas ada 10 aturan (rule) yang tersimpan dalam basis pengetahuan. Fakta awal yang diberikan hanya : A & E (yaitu berarti A dan F bernilai benar). Hipotesanya adalah apakah K bernilai benar ? Untuk itu dilakukan langkah-langkah inferensia sebagai berikut :
    • Start dari R-1. A merupakan fakta sehingga bernilai benar, sedangkan B belum diketahui kebenarannya, sehingga C pun belum diketahui kebenarannya. Oleh karena itu pada R-1 kita tidak mendapatkan informasi apapun. Sehingga kita menuju ke R-2.
    • Pada R-2 juga sama kita tidak dapat memastikan kebenaran D karena C belum diketahui apakah benar atau salah sehingga kita tidak mendapatkan informasi apapun , sehingga kita menuju ke R-3.
    • Pada R-3 A dan E adalah fakta sehingga jelas benar. Dengan demikian F sebagai konsekuensi juga benar. Dari sini kita mendapat fakta baru yaitu F, tetapi karena F bukan hipotesa maka langkah diteruskan ke R-4
    • Pada R-4 A adalah fakta berarti jelas benar, sehingga G sebagai konsekuen juga benar. Jadi terdapat fakta baru yaitu G, tetapi G bukan hipotesa sehingga langkah diteruskan ke R-5.
    • Pada R-5 F dan G benar berdasarkan aturan R-3 dan R-4, sehingga D sebagai konsekuen juga benar. Terdapat fakta baru yaitu D, tetapi D bukan hipotesa sehingga diteruskan ke R-6.
    • Pada R-6, E dan G benar berdasarkan fakta dan R-4, maka H benar. Sehingga terdapat fakta baru yaitu H, tetapi H bukan hipotesa, sehingga diteruskan ke R-7.
    • Pada R-7, karena C belum diketahui, maka I juga belum dapat diketahui kebenarannya, sehingga kita tidak mendapatkan informasi apapun. Diteruskan ke R-8
    • Pada R-8, meskipun A benar karena fakta tetapi I belum diketahui, sehingga J juga belum dapat diketahui kebenarannya. Diteruskan ke R-9.
    • Pada R-9, G benar menurut R-4, sehingga konsekuennya J juga benar, tetapi J bukan hipotesa, maka diteruskan ke R-10.
    • Pada R-10, K benar karena J benar menurut R-9. Karena K merupakan hipotesa yang dibuktikan maka selesai.
      Secara diagram dapat digambarkan sebagai berikut :

      Oval: K

Oval: GOval: JOval: A               R-4                 R-9               R-10
Oval: F                        R-5
Oval: DOval: HOval: E     R-3                               R-6




Backward Chaining (Pelacakan kebelakang)

Merupakan kebalikan dari forward chaining dimana mulai dengan sebuah hipotesa (sebuah objek) dan meminta informasi untuk meyakinkan atau mengabaikan. Backward chaining inference engine sering disebut: ‘Object-Driven/Goal-Driven‘. Melalui penalaranya dari sekumpulan hipotesis menuju fakta-fakta yang mendukung tersebut, jadi proses pelacakan berjalan mundur dimulai dengan menentukan kesimpulan yang akan dicari baru kemudian fakta-fakta pembangun kesimpulan atau a Goal Driven. Atau dengan kata lain pencocokan fakta atau pernyataan dimulai dari sebelah kanan (THEN) dulu.
Kita lihat lagi tabel aturan sebelumnya. Terlihat ada 10 aturan yang tersimpan dalam basis pengetahuan. Fakta awal A dan E. Hipotesa adalah K. Langkah-langkahnya adalah :
Pertama-tama dicari terlebih dahulu mulai dari R-1 aturan yang memiliki konsekuen K, dan ternyata ada di R-10. Dari R-10, untuk membuktikan K benar harus dibuktikan dahulu bahwa J benar.
Dicari aturan yang mempunyai J sebagai konsekuen mulai dari R-1 dan ternyata di R-8. Pada R-8 A benar tetapi I belum diketahui kebenarannya, maka mulai R-1 perlu dicari aturan dengan konsekuen I yaitu di R-7.
Untuk membuktikan I benar di R-7, perlu dibuktikan C dan H benar. Untuk itu dicari aturan dengan konsekuen C yaitu di R-1.
Untuk membuktikan C benar di R-1 haruslah A dan B benar. A jelas benar karena fakta, tetapi B belum diketahui kebenarannya, dan dalam basis pengetahuan tidak ada aturan yang konsekuennya B. Dengan demikian penalaran ini tidak bisa membuktikan kebenaran K. Namun demikian, masih punya alternatif lain untuk melakukan penalaran, yaitu dengan backtracking.
Backtracking. Diulangi lagi dengan langkah dengan pembuktian kebenaran C dengan mencari aturan lain yang konsekuennya C. Ternyata tidak ditemukan.
Lakukan backtracking lagi dengan mencari aturan dengan konsekuen I, ternyata tidak ada.
Lakukan backtracking lagi mencari aturan dengan konsekuen J, ditemukan di R-9, tetapi harus membuktikan bahwa G benar, maka dicari aturan dengan konsekuen G yaitu di R-4
R-4, A adalah fakta jadi jelas benar maka G juga benar. Jadi berdasarkan penalaran ini dapat dibuktikan bahwa hipotesa K benar.
R-10                  




                                           R-8                    R-7                R-1


                   Gagal

                      R-10                  R-9                      R-4             fakta

         

                  Sukses.



Contoh : Misal diketahui sistem pakar dengan aturan-aturan sbb :

R-1      : IF suku bunga turun THEN harga obligasi naik.

R-2      : IF suku bunga naik THEN harga obligasi turun.

R-3      : IF suku bunga tidak berubah THEN harga obligasi tidak

              berubah.

R-4      : IF nilai dolar naik THEN suku bunga turun.

R-5      : IF nilai dolar turun THEN suku bunga naik.

R-6      : IF harga obligasi turun THEN beli obligasi.

Sekarang apabila diketahui bahwa nilai dolar turun, maka untuk memutuskan apakah akan membeli obligasi atau tidak, dapat ditunjukkan sebagai berikut :

 Forward Chaining (Pelacakan ke depan/Maju). Dari fakta nilai dolar turun, berdasarkan R-5 diperoleh bahwa suku bunga naik, dari R-2 diperoleh suku bunga naik menyebabkan harga obligasi turun, kemudian dengan R-6 jika harga obligasi turun, maka beli obligasi. Jadi kesimpulan beli obligasi.






 Nilai Dolar Turun



                                                   





Suku bunga naik


                                                    R-5











Harga obligasi turun


                                                    R-2







                                                    R-6






 Beli obligasi




Backward Chaining (Pelacakan kebelakang/Mundur). Berangkat dari membeli obligasi, dengan R-6 diperoleh anteseden harga obligasi turun. Dari R-2 dapat dibuktikan bahwa harga obligasi turun bernilai benar jika suku bunga naik bernilai benar. Dari R-5, suku bunga naik memang bernilai benar karena diketahui fakta bahwa nilai dolar turun.












Suku bunga naik


                                                           R-5











Harga obligasi turun


                                                       R-2











Beli obligasi


                                                   R-6

POHON KEPUTUSAN

Pengertian Pohon Keputusan

Pohon yang dalam analisis pemecahan masalah pengambilan keputusan adalah pemetaan mengenai alternatif-alternatif pemecahan masalah yang dapat diambil dari masalah tersebut. Pohon tersebut juga memperlihatkan faktor-faktor kemungkinan/probablitas yang akan mempengaruhi alternatif-alternatif keputusan tersebut, disertai dengan estimasi hasil akhir yang akan didapat bila kita mengambil alternatif keputusan tersebut.
Manfaat Pohon Keputusan

Pohon keputusan adalah salah satu metode klasifikasi yang paling populer karena mudah untuk diinterpretasi oleh manusia. Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Konsep dari pohon keputusan adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Manfaat utama dari penggunaan pohon keputusan adalah kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks menjadi lebih simpel sehingga pengambil keputusan akan lebih menginterpretasikan solusi dari permasalahan. Pohon Keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi
antara sejumlah calon variabel input dengan sebuah variabel target. Pohon keputusan memadukan antara
eksplorasi data dan pemodelan, sehingga  sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika
dijadikan sebagai model akhir dari beberapa teknik lain. Sering terjadi tawar menawar antara keakuratan
model dengan transparansi model. Dalam beberapa aplikasi, akurasi dari sebuah klasifikasi atau prediksi adalah satu-satunya hal yang ditonjolkan, misalnya sebuah perusahaan direct mail membuat sebuah model yang akurat untuk
memprediksi anggota mana yang berpotensi untuk merespon permintaan, tanpa memperhatikan bagaimana atau mengapa model tersebut bekerja.
Kelebihan Pohon Keputusan

Kelebihan dari metode pohon keputusan adalah:
Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik.
Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode pohon keputusan maka sample diuji hanya berdasarkan kriteria atau kelas tertentu.
Fleksibel untuk memilih fitur dari internal node yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Kefleksibelan metode pohon keputusan ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional
Dalam analisis multivariat, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu untuk mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode pohon keputusan dapat menghindari munculnya permasalahan ini dengan menggunakan criteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.
Kekurangan Pohon Keputusan

Terjadi overlap terutama ketika kelas-kelas dan criteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan.
Pengakumulasian jumlah eror dari setiap tingkat dalam sebuah pohon keputusan yang besar.
Kesulitan dalam mendesain pohon keputusan yang optimal.
Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.

MODEL DAN ALGORITMA POHON KEPUTUSAN

Model Pohon Keputusan

Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Contoh dari pohon keputusan dapat dilihat di Gambar berikut ini.

Disini setiap percabangan menyatakan kondisi yang harus dipenuhi dan tiap ujung pohon menyatakan kelas data. Contoh di Gambar 1 adalah identifikasi pembeli komputer,dari pohon keputusan tersebut diketahui bahwa salah satu kelompok yang potensial membeli komputer adalah orang yang berusia di bawah 30 tahun dan juga pelajar. Setelah sebuah pohon keputusan dibangun maka dapat digunakan untuk mengklasifikasikan record yang belum ada kelasnya. Dimulai dari node root, menggunakan tes terhadap atribut dari record yang belum ada kelasnya tersebut lalu mengikuti cabang yang sesuai dengan hasil dari tes tersebut, yang akan membawa kepada internal node (node yang memiliki satu cabang masuk dan dua atau lebih cabang yang keluar), dengan cara harus melakukan tes lagi terhadap atribut atau node daun. Record yang kelasnya tidak diketahui kemudian diberikan kelas yang sesuai dengan kelas yang ada pada node daun. Pada pohon keputusan setiap simpul daun menandai label kelas. Proses dalam pohon keputusan yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah model pohon tersebut menjadi aturan (rule).
ALGORITMA C4.5

Salah satu algoritma induksi pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan oleh J. Ross Quinlan. Dalam prosedur algoritma ID3, input berupa sampel training, label training dan atribut. Algoritma C4.5 merupakan pengembangan dari ID3. Sedangkan pada perangkat lunak open source WEKA mempunyai versi sendiri C4.5 yang dikenal sebagai J48.


Pohon dibangun dengan cara membagi data secara rekursif hingga tiap bagian terdiri dari data yang berasal dari kelas yang sama. Bentuk pemecahan (split) yang digunakan untuk membagi data tergantung dari jenis atribut yang digunakan dalam split. Algoritma C4.5 dapat menangani data numerik (kontinyu) dan diskret. Split untuk atribut numerik yaitu mengurutkan contoh berdasarkan atribut kontiyu A, kemudian membentuk minimum permulaan (threshold) M dari contoh-contoh yang ada dari kelas mayoritas pada setiap partisi yang bersebelahan, lalu menggabungkan partisi-partisi yang bersebelahan tersebut dengan kelas mayoritas yang sama. Split untuk atribut diskret A mempunyai bentuk value (A) ε X dimana X ⊂ domain(A).
Jika suatu set data mempunyai beberapa pengamatan dengan missing value yaitu record dengan beberapa nilai variabel tidak ada, Jika jumlah pengamatan terbatas maka atribut dengan missing value dapat diganti dengan nilai rata-rata dari variabel yang bersangkutan.[Santosa,2007]
Untuk melakukan pemisahan obyek (split) dilakukan tes terhadap atribut dengan mengukur tingkat ketidakmurnian pada sebuah simpul (node). Pada algoritma C.45 menggunakan rasio perolehan (gain ratio). Sebelum menghitung rasio perolehan, perlu menghitung dulu nilai informasi dalam satuan bits dari suatu kumpulan objek. Cara menghitungnya dilakukan dengan menggunakan konsep entropi.


S adalah ruang (data) sampel yang digunakan untuk pelatihan, p+ adalah jumlah yang bersolusi positif atau mendukung pada data sampel untuk kriteria tertentu dan p- adalah jumlah yang bersolusi negatif atau tidak mendukung pada data sampel untuk kriteria tertentu. ntropi(S) sama dengan 0, jika semua contoh pada S berada dalam kelas yang sama. Entropi(S) sama dengan 1, jika jumlah contoh positif dan negative dalam S adalah sama. Entropi(S) lebih dari 0 tetapi kurang dari 1, jika jumlah contoh positif dan negative dalam S tidak sama [Mitchell,1997].Entropi split yang membagi S dengan n record menjadi himpunan-himpunan S1 dengan n1 baris dan S2 dengan n2 baris adalah :
Kemudian menghitung perolehan informasi dari output data atau variabel dependent yang dikelompokkan berdasarkan atribut A, dinotasikan dengan gain (y,A). Perolehan informasi, gain (y,A), dari atribut A relative terhadap output data adalah:
nilai (A) adalah semua nilai yang mungkin dari atribut A, dan yc adalah subset dari y dimana A mempunyai nilai c. Term pertama dalam persamaan diatas adalah entropy total dan term kedua adalah entropy sesudah dilakukan pemisahan data berdasarkan atribut A.
Untuk menghitung rasio perolehan perlu diketahui suatu term baru yang disebut pemisahan informasi (SplitInfo). Pemisahan informasi dihitung dengan cara :
split
bahwa S1 sampai Sc adalah subset yang dihasilkan dari pemecahan dengan menggunakan atribut A yang mempunyai sebanyak nilai. Selanjutnya rasio perolehan (gain ratio) dihitung dengan cara :

Contoh Aplikasi

CREDIT RISK

Berikut ini merupakan contoh dari salah satu kasus resiko kredit (credit risk) yang menggunakan decision tree untuk menentukan apakah seorang potential customer dengan karakteristik savingasset dan income tertentu memiliki good credit risk atau bad credit risk.
Dapat dilihat pada gambar tersebut, bahwa target variable dari decision tree tersebut atau variable yang akan diprediksi adalah credit risk dengan menggunakan predictor variable : saving, asset, dan income. Setiap nilai atribut dari predictor variable akan memiliki cabang menuju predictor variable selanjutnya, dan seterusnya hingga tidak dapat dipecah dan menuju pada target variable.
Penentuan apakah diteruskan menuju predictor variable (decision node) atau menuju target variable (leaf node) tergantung pada keyakinan (knowledge) apakah potential customer dengan nilai atribut variable keputusan tertentu memiliki keakuratan nilai target variable 100% atau tidak. Misalnya pada kasus di atas untuk saving medium, ternyata knowledge yang dimiliki bahwa untuk seluruh potential customer dengan saving medium memiliki credit risk yang baik dengan keakuratan 100%. Sedangkan untuk nilai low asset terdapat kemungkinan good credit risk dan bad credit risk.
Jika tidak terdapat pemisahan lagi yang mungkin dilakukan, maka algoritma decision tree akan berhenti membentuk decision node yang baru. Seharusnya setiap branches diakhiri dengan “pure” leaf node, yaitu leaf node dengan target variable yang bersifat unary untuk setiap records pada node tersebut, di mana untuk setiap nilai predictor variable yang sama akan memiliki nilai target variable yang sama. Tetapi, terdapat kemungkinan decision node memiliki “diverse” atributes, yaitu bersifat non‐unary untuk nilai target variablenya, di mana untuk setiap record dengan nilai predictor variable yang sama ternyata memiliki nilai target variable yang berbeda. Kondisi tersebut menyebabkan tidak dapat dilakukan pencabangan lagi berdasarkan nilai predictor variable. Sehingga solusinya adalah membentuk leaf node yang disebut “diverse” leaf node, dengan menyatakan level kepercayaan dari diverse leaf node tersebut. Misalnya untuk contoh data berikut ini :
Dari training data tersebut kemudian disusunlah alternatif untuk candidate split, sehingga setiap nilai untuk predictor variable di atas hanya membentuk 2 cabang, yaitu sebagai berikut:
Kemudian untuk setiap candidate split di atas, dihitung variabel‐variabel berikut berdasarkan training data yang dimiliki. Adapun variabel‐variabel tersebut, yaitu :
,di mana
Adapun contoh hasil perhitungannya adalah sebagai berikut :
Dapat dilihat dari contoh perhitungan di atas, bahwa yang memiliki nilai goodness of split * Φ(s/t) + yang terbesar, yaitu split 4 dengan nilai 0.64275. Oleh karena itu split 4 lah yang akan digunakan pada root node, yaitu split dengan : assets = low dengan assets = {medium, high}.
Untuk penentuan pencabangan, dapat dilihat bahwa dengan assets=low maka didapatkan pure node leaf, yaitu bad risk (untuk record 2 dan 7). Sedangkan untuk assets = {medium, high} masih terdapat 2 nilai, yaitu good credit risk dan bad credit risk. Sehingga pencabangan untuk assets = {medium, high} memiliki decision node baru. Adapun pemilihan split yang akan digunakan, yaitu dengan menyusun perhitungan nilai Φ(s/t) yang baru tanpa melihat split 4, record 2 dan 7.
Demikian seterusnya hingga akhirnya dibentuk leaf node dan membentuk decision tree yang utuh (fully grown form) seperti di bawah ini :

SISTEM PAKAR DIAGNOSA PENYAKIT (KUSRINI)

Dalam aplikasi ini terdapat tabel-tabel sebagai berikut:
  • Tabel Rekam_Medis, berisi data asli rekam medis pasien
  • Tabel Kasus, beisi data variabel yang dapat mempengaruhi kesimpulan diagnosis dari pasien-pasien yang ada, misalnya Jenis Kelamin, Umur, Daerah_Tinggal, Gejala_1 s/d gejala_n, Hasil_Tes_1 s/d Hasi_Tes_n. Selain itu dalam tabel ini juga memiliki field Hasil_Diagnosis.
  • Tabel Aturan, berisi aturan hasil ekstrak dari pohon keputusan.
Proses akuisisi pengetahuan yang secara biasanya dalam sistem pakar dilakukan oleh sistem pakar, dalam sistem ini akan dillakukan dengan urutan proses ditunjukkan pada gambar berikut:
Hasil pembentukan pohon keputusan bisa seperti pohon keputusan yang tampak pada gambar:
Lambang bulat pada pohon keputusan melambangkan sebagai node akar atau cabang (bukan daun) sedangkan kotak
melambangkan node daun. Jika pengetahuan yang terbentuk beruka kaidah produksi dengan format:
Jika Premis Maka Konklusi Node-node akar akan menjadi Premis dari aturan sedangkan node daun akan menjadi bagian konklusinya. Dari gambar pohon keputusan pada gambar 4, dapat dibentuk aturan sebagai berikut:
  1. Jika Atr_1 = N_1
    Dan Atr_2 = N_4
    Dan Atr_3 = N_9
    Maka H_1
  2. Jika Atr_1 = N_1
    Dan Atr_2 = N_4
    Dan Atr_3 = N_10
    Dan Atr_4 = N_11
    Maka H_2
  3. Jika Atr_1 = N_1
    Dan Atr_2 = N_4
    Dan Atr_3 = N_10
    Dan Atr_4 = N_12
    Maka H_2
  4. Jika Atr_1 = N_1
    Dan Atr_2 = N_5
    Maka H_4
  5. Jika Atr_1 = N_2
    Maka H_5
  6. Jika Atr_1 = N_3
    Dan Atr_5 = N_6
    Maka H_6
  7. Jika Atr_1 = N_3
    Dan Atr_5 = N_7
    Maka H_7
  8. Jika Atr_1 = N_3
    Dan Atr_5 = N_8
    Maka H_8
Model case based reasoning dapat digunakan sebagai metode akuisisi pengetahuan dalam aplikasi system pakar diagnosis penyakit. Aturan yagn dihasilkan system ini mampu digunakan untuk mendiagnosis penyakit didasarkan pada data-data pasien. Dalam penentuan diagnosis penyakit belum diimplementasikan derajat kepercayaan terhadap hasil diagnosis tersebut.