Translate

Minggu, 08 Januari 2017

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.


Jumat, 18 November 2016

Inference Engine

 Mesin Inferensi(Inference Engine)

Inferensi merupakan proses yang digunakan sistem pakar untuk menghasilkan informasi baru dari informasi yang telah diketahui. Dalam sistem pakar proses inferensi dilakukan dalam suatu modul yang disebut dengan mesin inferensi ( Inference Engine).
Mesin inferensi berperan sebagai otak dari sistem pakar. Mesin inferensi berfungsi untuk memandu proses penalaran terhadap suatu kondisi, berdasarkan pada basis pengetahuan yang tersedia. Di dalam mesin inferensi terjadi proses untuk memanipulasi dan mengarahkan kaidah, model, dan fakta yang disimpan dalam basis pengetahuan dalam rangka mencapai solusi atau kesimpulan. Dalam prosesnya, mesin inferensi menggunakan strategi penalaran dan strategi pengendalian. Strategi penalaran terdiri dari strategi penalaran pasti (Exact Reasoning) dan strategi penalaran tak pasti (Inexact Reasoning). Exact reasoning akan dilakukan jika semua data yang dibutuhkan untuk menarik suatu kesimpulan tersedia, sedangkan inexact reasoning dilakukan pada keadaan sebaliknya.Strategi pengendalian berfungsi sebagai panduan arah dalam melakukan prose penalaran. Terdapat tiga tehnik pengendalian yang sering digunakan, yaitu forward chaining, backward chaining, dan gabungan dari kedua teknik pengendalian tersebut.Fungsi Inferensi Engine adalah :

a.Memberikan pertanyaan kepada user 
b.Menambah jawaban pada working memory (balckboard ).
c.Menambahkan fakta baru dari suatu rule(hasil inferensi).
d.Menambahkan fakta baru tersebut pada working memory.
e.Mencocokkan fakta pada working memory dengan rule.
Secara umum dalam inferensi penalaran maju (Forward Chaining) aturan (rule) akan diuji satu persatu dalam urutan tertentu. Saat tiap aturan diuji, sistem akan mengevaluasi apakah kondisi benar atau salah.Sedangkan Backward chaining adalah aturan yang menggunakan penalaran kebelakang/mundur.

Rabu, 26 Oktober 2016

TUGAS SISTEM BERBASIS PENGETAHUAN

Berikut adalah coding Prolog :



Berikut pertanyaan beserta output-nya : 
  1. Obat apa yang bisa menyembuhkan cough dan nasal congestion ?
  2. Obat apa yang bisa menyembuhkan batuk jika pasien mempunyai gejala penyakit diabetes dan glaucuma ?
  3. Obat apa yang bisa menyembuhkan nausea ? Pasien tersebut menderita penyakit apa ?
  4. Apa yang bisa menyembuhkan pilek ?
  5. Apa yang dapat menyembuhkan pilek dapat menyembuhkan hidung yang sakit ?
  6. Obat apa yang bisa diminum jika pasien menderita penyakit ashtma ? obat tersebut juga dapat diminum dalam kondisi apa ?
  7. Obat yang dapat digunakan juga sebagai pain killer ?  
  8. Obat apa yang harus diminum oleh john ? 

Penjelasan Program :
                                  
Pada bagian ini menjelaskan beberapa macam obat beserta dengan nama penyakitnya, contohnya untuk menyembuhkan sakit kepala digunakan aspirin.
Pada bagian ini menjelaskan beberapa obat yang menimbulkan efek negatif atau menyebabkan menjadi memburuk keadaannya bila mengkonsumsi obat ini. Contoh : Aspirin akan membuat penyakit asthma menjadi lebih parah bila dikonsumsi.
Pada bagian ini adalah kode yang memiliki beberapa aturan ,seperti pada pertanyaan nomor 8 obat apakah yang harus diminum oleh john untuk mengobati rasa sakitnya. Jawabannya ada di kode ini.

Jumat, 14 Oktober 2016

PENGERTIAN SOFT COMPUTING




Hallooo selamat datang di Blog saya, kali ini saya akan membahas pengertian dari Soft Computing, buat yang masih bingung Soft Computing itu apa dan apa saja yang terdapat di Soft Computing, silahkan baca artikel ini sampai tuntas yaaa!!

Soft Computing adalah kumpulan teknik – teknik perhitungan dalam ilmu komputer, inteligensia semu, machine learning dan beberapa disiplin ilmu teknik lainnya, yang berusaha untuk mempelajari, memodelkan, dan menganalisa fenomena yang sangat rumit : untuk metoda yang lebih konvensional yang tidak memberikan biaya rendah, analitis dan solusi lengkap. Soft computing berusaha untuk mengintegrasikan beberapa paradigma model perhitungan meliputi artificial neural network, fuzzy logic dan genetic algorithms.

Soft Computing adalah segolongan metoda yang mampu mengolah data dengan baik walaupun didalamnya terdapat ketidakpastian, ketidakakuratan maupun kebenaran parsial (Prof. Lotfi A Zadeh, 1992).

Soft Computing dicetus pertama kali pada tahun 1990 sehubungan dengan ide untuk mendirikan BISC (Berkeley Initiative in Soft Computer) oleh Prof. L.A.Zadeh dari BerkeleyUniversity. Soft computing, berbeda dengan conventional (hard) computing, memungkinkan toleransi terhadap input, proses dan output yang bersifat tidak akurat(imprecision), tidak pasti (uncertainty) dan setengah benar (partial truth).

Bagian-bagian dari Soft Computing sendiri adalah :
1. Fuzzy Logic
2. Neural Networks
3. Probabilistic Reasoning

Fuzzy Logic
Fuzzy Logic merupakan suatu representasi dari pengetahuan yang direkonstruksi dengan if-then rules. Sederhananya, Fuzzy Logic adalah suatu metode untuk mengontrol sesuatu. Misalnya rekonstruksi if-then, "Jika cuaca panas, Maka turunkan suhu AC". Disinilah Fuzzy Logic berperan dalam Teknologi Komputer nantinya.

Neural Networks
Kompleksnya pikiran manusia juga merupakan masa depan dari komputer yang menggunakan Soft Computing. Neural Networks adalah tiruan dari jaringan saraf-saraf manusia yang terhubung dan membentuk sistem. Jadi metode ini ditujukan untuk meniru saraf manusia yang kompleks dan dapat menyimpan memori.

Probabilistic Reasoning
Probabilistic Reasoning adalah metode Soft Computing juga untuk membuat komputer atau suatu device mengambil keputusan layaknya makhluk hidup. Jadi, dari semua data-data yang sudah dimiliki, metode ini memberikan pola-pola tertentu untuk mengambil keputusan.

Soft Computing menjadi satu diantara solusi daripada permasalahan di dunia. Kenapa? Dengan adanya unsur-unsur pokok dalam metode ini diharapkan akan menciptakan suatu sistem yang cerdas, mudah diproses serta membutuhkan biaya yang tidak banyak.

Banyak contoh-contoh riset yang sekarang mulai mengimplementasikan Soft Computing, seperti AC yang hanya hidup ketika AC tersebut merasakan adanya panas dari sensornya, dan TV yang menggunakan "Eye Recognition" dimana TV tersebut akan Shut Down otomatis ketika yang menonton TV sudah memejamkan mata dan tertangkap sensor TV.

Nah itu dia pengertian dan penjelasan Soft Computing, jika kurang jelas atau bahkan ada kesalahan silahkan tinggalkan comment di bawah ya, terimakasih telah mampir!:)

Sabtu, 01 Oktober 2016

Expert System

PENGERTIAN SISTEM PAKAR

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT0yRCEGkTH-XZgxEgCYDrNnDuqWrAvoYJNcK0vhIyIjNMnge8r4mzab2AnfNliWbArA7QaeF2J6Rx9Q1M7yEOihxzF99IOKPbMRiSZSianSqivI0D_Tqfixh89w_2ipjTGzMuYswAU7Y/s1600/Secara umum system pakar (expert system) adalah system yang berusaha mengadopsi pengetahuan manusia ke computer agar computer dapat menyelesaikan masalah seperti biasa yang dilakukan oleh para ahli. System pakar yang baik dirancang agar dapat menyelesaikan suatu permaslahan tertentu dengan meniru kerja dari para ahli. Dengan system pakar ini, orang awampun juga diharapkan dapat menyelesaikan masalah yang cukup rumit. Dimana yang sebenarnya hanya dapat diselesaikan dengan bantuan para ahli. Bagi para ahli, system pakar ini juga akan membantu aktivitasnya sebagai asisten yang sangat berpengalaman. 
Ada beberapa definisi tentang system pakar, antara lain:

  • Menurut Durkin: system pakar adalah suatu program computer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan oleh seorang pakar 
  • Menurut Ignizio: system pakar adalah suatu model dan prosedur yang berkaitan dalam suatu domain tertentu, yang mana tingkat keahliannya dapat dibandingkan dengan keahlian seorang pakar 
  • Menurut Giarratano dan Riley: system pakar adalah suatu system computer yang bisa menyamai atau meniru kemampuan seorang pakar.
Menurut (Arhami, Muhammad. 2005) definisi system pakar, yaitu:
  • System pakar merupakan salah satu bagian kecerdasan buatan yang akhir-akhir ini mengalami perkembangan yang sangat pesat. System ini dirancang untuk dapat menirukan keahlian seorang pakar dalam menjawab pertanyaan dan menyelesaikan suatu permasalahan baik di bidang kesehatan, bisnis, ekonomi, keuangan dan sebagainya. 
  • System pakar merupakan program computer yang mampu menyimpan pengetahuan dan kaidah dari domain pakar yang khusus. Dengan bantuan system pakar seorang yang awam atau tidak ahli dalam suatu bidang tertentu akan dapat menjawab pertanyaan, menyelesaikan masalah dan mengambil keputusan yang biasanya dilakukan oleh seorang pakar.
Jadi dari beberapa pengertian diatas maka pengertian system pakar sendiri adalah suatu system yang mempunyai kemampuan seperti seorang ahli pakar atau mempunyai seperti seseoarang yang ahli dalam bidang tertentu, dimana dapat menjawab masalah dan memberikan keputusan seperti seorang pakar.

SEJARAH SISTEM PAKAR
System pakar pertama kali dikembangkan oleh komunitas AI pada pertengahan tahun 1960. System pakar yang muncul pertama kali adalah General purpose Solver (GPS) yang dikembangkan oleh Newel dan Simon. GPS ini mengalami kegagalan dikarenakan cakupannya terlalu luas sehingga terkadang justru meninggalkan pengetahuan pengetahuan penting yang seharusnya disediakan.

KEUNTUNGAN & KELEMAHAN SISTEM PAKAR
Keuntungan system pakar:
Ø  Memungkinkan orang awam bisa mengerjakan pekerjaan para ahli.
Ø  Bisa melakukan proses secara berulang secara otomatis.
Ø  Menyimpan pengetahuan dan keahlian para pakar.
Ø  Meningkatkan output dan produktivitas
Ø  Meningktkan kualitas.
Ø  Mampu mengambil dan melestarikan keahlian para pakar.
Ø  Mampu beroperasinya dalam lingkungan yang berbahaya
Ø  Memiliki kemampuan untuk mengakses pengetahuan
Ø  Memiliki reabilitas
Ø  Meningkatkan kapabilitas system computer
Ø  Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan mengandung ketidakpastian
Ø  Sebagai media pelengkap dalam pelatihan.
Ø  Meningkatkan kapabilitas dalam penyelesaian masalah.
Ø  Menghemat waktu dalam pengambilan keputusan.

Kelemahan system pakar:
Ø  Biaya yang diperlukan untuk membuat dan memeliharanya sangat mahal
Ø  Sulit dikembangkan. Hal itu tentu saja erat kaitannya dengan ketersediaan pakar di bidangnya.
Ø  System pakar tidak 100% bernilai pasar.


Jadi intinya Expert System adalah suatu sistem yang didalamnya memiliki otak layaknya manusia yang berguna untuk menyelesaikan masalah.

Sekian Pembahasan saya tentang Expert System, jika ada kekurangan silahkan tinggalkan opini anda di kolom Comment :)