BAB. II. TINJAUAN PUSTAKA Klasifikasi merupakan sebuah tugas dasar untuk menganalisa data dan pengenalan pola yang membutuhkan sebuah model klasifikasi, yaitu suatu fungsi/model yang dapat memberikan label kelas berdasarkan atribut-atribut pada suatu data. Permasalahan yang timbul adalah membangun sebuah model klasifikasi. Ada beberapa teknik yang dapat dipakai untuk membangun sebuah model klasifikasi, antara lain decision tree, neural networks, backpropagration. Salah satu teknik yang dapat digunakan untuk membangun model klassifikasi adalah Bayesian Networks[FRI97]. Ketika membangun model klasifikasi berdasarkan Bayesian Networks, terdapat 2 (dua) tugas utama yang harus dilakukan, yaitu pembelajaran dalam membangun struktur DAG (directed acyclic graph) dan pembelajaran untuk menghitung CPT (Conditional Probability Table). Ada dua pendekatan “learning” (pembelajaran) yang dapat dilakukan untuk membangun struktur Bayesian Networks dari suatu basis data yaitu : (1) Scored Based : menggunakan metode pencarian untuk mendapatkan struktur yang cocok dengan data, dimana proses kontruksi dilakukan secara iteratif, dimulai dari sebuah graf tanpa edge kemudian menggunakan metode pencarian untuk menambahkan sebuah edge pada graf dan berhenti ketika tidak ada struktur baru yang lebih baik daripada struktur sebelumnya, (2) Constraint Based (Dependency Analysis) : yaitu mengidentifikasi / menganalisa hubungan bebas bersyarat (conditional independence-CI)” antar atribut, di mana CI menjadi “constraint” dalam membangun struktur Bayesian Networks. Bab ini berisi teori dasar yang dipakai penulis dalam melakukan penelitian untuk membangun aplikasi data mining struktur Bayesian Networks. Selain itu, bab ini juga berisi uraian algoritma “dependency analysis based” berdasarkan studi literatur, yaitu TPDA (Three Phase Dependency Analysis) [JIE01]. Fokus penelitian adalah mengaplikasi algoritma tersebut kedalam perangkat lunak dengan menggunakan data bank sebagai bahan studi kasus. 8 II.1 Definisi Data Mining “Data Mining” adalah proses otomatis untuk mendapatkan pengetahuan berdasarkan nilai-nilai yang terdapat pada basis data berukuran besar [TAN06]. Data mining didesain untuk dapat memindai basis data yang bertujuan untuk menemukan informasi yang berguna yang sebelumnya tidak diketahui. Salah satu teknik data mining dapat digunakan untuk memprediksi nilai yang akan keluar dari suatu domain yang diteliti[TAN06], sebagai contoh adalah untuk memprediksi apakah pelanggan baru akan membelanjakan uangnya sebanyak Rp.100.000,- pada suatu supermarket pada hari-hari tertentu. II.2 Beberapa Metode untuk Data Mining Fungsionalitas dari tugas data mining adalah untuk menemukan pola/tingkah laku dari suatu dataset yang diamati. Untuk itu dalam tugas data mining, ada beberapa metode yang dipakai untuk melakukan tugas data mining, yaitu diantaranya aturan asosiasi, klasifikasi dan analisa cluster. Tesis ini lebih fokus pada metode klasifikasi, sehingga dua metode lain hanya diuraikan secara singkat saja. II.2.1 Aturan Asosiasi Aturan asosiasi (Association Rule) atau disebut juga dengan Association Analysis adalah metode data mining untuk mencari suatu aturan hubungan yang menunjukkan kondisi didalam satu set data, di mana beberapa atribut-nilai akan muncul secara bersamaan[HAN02]. Metode ini lebih banyak digunakan untuk analisa data transaksi atau “market basket analysis”. II.2.2 Klasifikasi Klasifikasi (classification) adalah metode data mining yang dapat digunakan untuk proses pencarian sekumpulan model (fungsi) yang dapat menjelaskan dan membedakan kelas-kelas data atau konsep, yang tujuannya supaya model tersebut dapat digunakan untuk memprediksikan objek kelas yang labelnya tidak diketahui atau dapat memprediksikan kecenderungan data-data yang akan muncul dimasa depan [HAN01]. Untuk sebuah model klasifikasi, yang menjadi masukkan adalah kumpulan record yang disebut sampel, dianggap sebagai tuple(x,y), di mana x adalah 9 himpunan atribut dan y adalah atribut khusus yang disebut dengan label kelas (juga dikenal dengan sebutan atribut kelas target)[TAN01]. Klasifikasi juga dapat didefinisikan sebagai tugas/pekerjaan dari pembelajaran sebuah fungsi target f yang memetakan setiap kumpulan atribut x ke salah satu label kelas y. Fungi target secara informal dikenal sebagai model klasifikasi. Proses klasifikasi di gambarkan seperti Gambar 2.1[TAN02] (lebih rinci proses klasifikasi dapat dilihat pada gambar 1.1). Input Output Set Atribut X Model Klasifikasi F(x) Class Label X Gambar 2.1. Model Klasifikasi sebagai Fungsi F(x) [TAN01] II.2.3 Clustering Pengelompokan atau disebut dengan Clustering adalah suatu proses pengelompokkan data-data ke dalam kelas yang disebut clusters, yang dimaksud dengan cluster adalah sebuah koleksi objek data yang mirip yang berada pada satu cluster tetapi berbeda dengan koleksi objek data lain yang berada pada cluster yang berbeda[HAN02]. Ukuran dari kesamaan dan perbedaan dari objek data diukur dari nilai atribut yang mendeskripsikan objek data tersebut. Aplikasi Clustering Analysis banyak digunakan pada aplikasi seperti analisis data, pengolahan citra, dan riset pemasaran. Walaupun clustering menggunakan kelas-kelas untuk membedakan objek data satu dengan objek data lainnya, namun clustering berbeda dengan klasifikasi. Perbedaan terdapat pada proses identifikasi/penentuan kelas-kelas data tersebut. Jika pada klasifikasi, kelas data sudah ditentukan sebelum model dihasilkan, sedangkan pada clustering kelas-kelas data diketahui setelah model dihasilkan.. II.3 Bayesian Networks Bayesian Networks adalah sebuah “directed acyclic graph” (DAG) dengan sebuah tabel probabilitas untuk setiap node. Node yang terdapat pada Bayesian 10 Networks merupakan representasi variable proporsional dalam suatu domain dan garis menunjukkan hubungan ketergantungan di antara varibel-variabel [JIE01]. Dalam hal kaitannya dengan basis data, pada Bayesian Networks node merupakan representasi dari atribut-atribut tabel yang ada pada basis data. Gambar 2.2 merupakan contoh sederhana dari Bayesian Networks. Gambar 2.2. Contoh sederhana Bayesian Networks [JIE96]. II.4 Fundamental Probabilitas Bayesian Sub bab ini berisi beberapa uraian tentang fundamental/dasar probabilitas Bayesian, yaitu aksioma dasar, konsep prior probabilities dan probabilitas bersyarat. II.4.1 Aksioma Notasi P(X) menyatakan probabilitas dari suatu kejadian X. Nilai dari P(X) mempunyai interval sebuah nilai real [0..1] [JEN96]. Aksioma dasar dari probabilitas tersebut adalah : a) P(X) = 1 jika dan hanya jika X merupakan kejadian yang mutlak terjadi (true) b) P(X) = 0 jika dan hanya jika X merupakan kejadian yang tidak pernah terjadi (false) c) 0 ≤ P(X) ≤ 1 menunjukkan tingkat/ derajat kepercayaan bahwa kejadian bernilai true. d) Jika X dan Y merupakan kondisi “mutually exclusive” maka P(X ∪ Y ) = P(X) + P(Y) 11 II.4.2 Prior Probabilitas dan Probabilitas Bersyarat Prior probabilities dapat ditulis dalam notasi P(X) adalah derajat kepercayaan untuk suatu informasi tertentu yang ada, sebagai contoh jika diberikan sebuah informasi mengenai kemungkinan untuk setiap orang di dunia mempunyai penyakit jantung adalah sebesar 0.3, maka prior probabilities mengenai informasi tersebut dapat ditulis dengan “P(Penyakit=Jantung)=0.3”. Prior probabilities digunakan ketika tidak ada informasi lain yang dapat digunakan untuk melihat kemungkinan terjadinya suatu kejadian, tetapi begitu informasi baru diketahui maka probabilitas yang baru harus dilihat berdasarkan informasi yang baru diketahui tersebut. Probabilitas jenis ini disebut probabilitas bersyarat (conditional probabilities). Pernyataan probabilitas bersyarat ditulis dalam notasi P(A | B )= x, yaitu jika diberikan suatu kejadian B yang yang sudah terjadi, maka probabilitas dari kejadian A adalah sebesar x [JEN96]. Sebagai contoh, jika manusia berjenis kelamin pria, maka probabilitas untuk mengidap penyakit jantung adalah 0.5. Pernyataan tersebut dapat ditulis dalam “P(Penyakit=Jantung | Jenis_kelamin=Pria)=0.5”. Notasi P(Y|X) dapat diformulasikan dengan menggunakan Persamaan 2.1 yang disebut dengan Teorema Bayes yaitu [TAN04] : P (Y | X ) = P ( X | Y ) P(Y ) P( X ) 2.1 Teorema Bayes digunakan dalam memberikan suatu hipotesis Y berdasarkan bukti X yang ada, di mana dalam konteks ini maka notasi P(Y|X) juga disebut dengan “posteor probability” dari Y yaitu derajat kemungkinan Y akan bernilai y jika nilai X diketahui, dan P(Y) disebut dengan prior probability dari Y. Sebuah tabel yang berisi probabilitas dari setiap kemungkinan nilai dari X dan Y disebut dengan Conditional Probability Table (CPT). Pada literatur-literatur yang ada notasi P(X ∩ Y) ditulis dengan notasi P(X,Y) yang disebut dengan joint probability. Joint probability distribution (JPD) adalah probabilitas kemunculan bersama untuk semua kemungkinan/kombinasi nilainilai yang terdapat pada variabel X dan Y. Sama seperti CPT, JPD dari suatu variable X dan Y adalah sebuah tabel yang berisi probabilitas untuk setiap kombinasi 12 nilai X =x1,..xn, dan nilai Y=y1,…,yn yang dapat terjadi. Notasi P(X,Y) dapat ditulis dalam bentuk Persamaan 2.2[JEN96]. P ( X , Y ) = P ( X | Y ) P (Y ) 2.2 Jika ditulis dalam bentuk setiap kombinasi nilai X dan Y yaitu P(xi,yj) maka Persamaan 2.2 dapat ditulis kembali dalam bentuk Persamaan 2.3 P ( xi , y j ) = P ( xi | y j ) P ( y j ) 2.3 Tabel 2.1 dan Tabel 2.2 merupakan contoh CPT dan JPD. Tabel 2.1 Contoh CPT untuk P(X | Y) y1 y2 y3 x1 0.4 0.3 0.6 x2 0.6 0.7 0.4 Tabel 2.2 Contoh JPD untuk P(X,Y) y1 y2 y3 x1 0.16 0.12 0.12 x2 0.24 0.28 0.08 Berdasarkan Persamaan 2.3 untuk mendapatkan hasil probabilitas bersama yang terdapat pada Tabel 2.2, maka untuk masing-masing j pada kolom yj akan dikalikan dengan P(yj), sehingga jika di asumsikan P(Y) =(0.4,0.4,0.2) yang terdapat pada Tabel 2.1 maka hasil dari P(X,Y) dapat dilihat pada Tabel 2.2 Dari Persamaan 2.2, P(xi) dapat dihitung dengan menggunakan Persamaan 2.4 [JEN96], yaitu : m P ( xi ) = ∑ P ( x i , y j ) 2.4 j =i Persamaan 2.4 disederhanakan untuk menghitung P(X) menjadi Persamaan 2.5 yaitu : 13 P( X ) = ∑ P( X , Y ) 2.5 Y Dengan mengaplikasi Persamaan 2.5 ke dalam Tabel 2.2 maka didapat prior probability untuk X, P(X) = (0.4,0.6) II.5 Dasar Bayesian Networks Bayesian Networks merupakan salah satu model yang dapat digunakan untuk klasifikasi. Berdasarkan literatur-literatur, metode ini adalah metode yang efektif dalam hal merepresentasikan model klasifikasi dengan beberapa alasan, antara lain: 1. Bayesian Networks dapat merepresentasikan hubungan kausalitas di antara variabel-variabel yang terdapat pada struktur Bayesian bebas bersyarat Networks[HEC96]. 2. Bayesian Networks mengeksploitasi hubungan (conditional independence) dalam membangun struktur jaringan sehingga dapat membangun model klasfikasi yang lebih “compact” [NEA04]. Hal tersebut mengakibat berkurangnya kompleksitas perhitungan dalam melakukan inferensi (mengambil keputusan). 3. Metode Bayesian yang digunakan pada Bayesian Networks membuat model klassifikasi yang dibangun terhindar dari “model overfitting” [HEC96]. Model overfitting adalah model klasifikasi yang benar-benar sangat cocok/dekat dengan training data yang digunakan, Ini menyebabkan ketika model digunakan untuk memprediksi data dengan menggunakan testing data akan menghasilkan performansi yang jelek. Hal bisa diakibatkan antara lainnya karena : terlalu banyak attribut/node yang digunakan dalam melakukan prediksi atau karena noise yang terdapat pada data. II.5.1 Definisi Bayesian Networks Bayesian Networks menyatakan representasi grafis hubungan kausalitas yang berada dalam himpunan variabel acak [TAN04]. Terdapat 2 eleman kunci dari Bayesian Networks yang dapat dijadikan sebagai definisi dari Bayesian Networks yaitu : 14 1. Merupakan sebuah directed acyclic graph di mana masing-masing node merepresentasikan sebuah variabel acak, dan masing-masing garis menggambarkan probabilitas ketergantungan dari node sebelumnya (node parent-nya). 2. Memiliki sebuah tabel probabilitas bersyarat (CPT) untuk masing-masing node ke node parent-nya. Sebagai ilustrasi, terdapat 3 variabel acak A, B dan C, di mana A dan B adalah variabel bebas dan masing-masing mempunyai pengaruh langsung kepada variabel C. Hubungan yang terjadi diantara ketiga variabel tersebut dapat digambarkan ke dalam “directed acyclic graph” seperti yang diperlihatkan pada Gambar 2.3. Setiap node mewakili sebuah varibel dan setiap garis mengambarkan hubungan ketergantungan antara 2 variabel. Jika terdapat garis dari A ke C, maka A merupakan parent C dan C merupakan child dari A. A B C Gambar 2.3. Contoh struktur sebuah DAG Contoh lain dari sebuah struktur Bayesian Networks dapat dilihat pada Gambar 2.4 15 Gambar 2.4. Contoh struktur Bayesian Networks (CPT tidak ditampilkan) II.5.2 Kaidah Aturan Berantai Pada Bayesian Networks dikenal istilah kaidah aturan berantai (chain rule). Istilah ini digunakan untuk merepresentasikan joint probability distribution (JPD) yang terdapat pada struktur Bayesian Networks, di mana struktur tersebut kemungkinan akan terdiri dari N variabel/node. Jika kita anggap keseluruhan nodenode yang terdapat pada Bayesian Networks diwakili oleh U, maka JPD P(U) adalah perkalian dari semua probabilitas bersyarat yang terdapat pada struktur, yaitu : P(U ) = ∏ P( Ai | pa( Ai )) i di mana pa(Ai) merupakan node parent dari Ai. Sebagai contoh, JPD untuk struktur Bayesian Networks yang terdapat pada Gambar 2.4 adalah P (U ) = P ( A, B, C , D, E , F , G ) = P ( A) P ( B ) P (C | D ) P ( D | A, B ) P ( E | A) P ( F | D ) P (G | E , C ) Persamaan 2.2 dan Persamaan 2.3 dapat dipresentasikan juga dalam kaidah chain rule Bayesian Networks untuk N variabel. II.5.3 Topologi Jaringan Bayesian Networks Dalam kaitannya dengan struktur jaringan yang terdapat pada Bayesian Networks, terdapat tiga jenis topologi atau tiga tipe koneksi, yaitu koneksi serial, koneksi divergen dan koneksi convergen. Identifikasi topologi jaringan berguna untuk menentukan ketergantungan informasi diantara node-node yang terdapat pada Bayesian Networks. II.5.3.1 Koneksi Serial Gambar 2.5 merupakan ilustrasi dari tipe koneksi serial. Nilai node A akan mempengaruhi probabilitas node B dan nilai node B akan mempengaruhi probabilitas node C, demikian juga sebaliknya nilai node C akan mempengaruhi probabilitas B dan nilai node B akan mempengaruhi probabilitas A[JEN96]. Tetapi, pada saat nilai B diketahui, maka jalur antara A dan C akan terputus (blocked), sehingga A dan C menjadi independent (saling tidak mempengaruhi). 16 Kondisi ini menyebabkan A d-separated dengan C karena B diketahui nilainya [JEN96]. Dengan kata lain informasi dapat mengalir dari A ke C jika nilai B belum / tidak diketahui. Gambar 2.5. Koneksi Serial [JEN96]. II.5.3.2 Koneksi Divergen Seperti yang diperlihatkan pada Gambar 2.6, pada koneksi divergen, informasi dapat mengalir pada semua jalur yang ada dari A ke setiap node anaknya yakni B, C, D, E, dan F jika nilai dari A tidak diketahui. Namun ketika nilai A diketahui maka jalur-jalur yang berada pada node anak A akan terputus, sehingga B, C, D, …, F akan menjadi saling tidak tergantung. Kondisi tersebut menyebabkan B, C, D, …, F d-separated karena nilai A diketahui [JEN96]. Gambar 2.6. Koneksi Divergen [JEN96] II.5.3.3 Koneksi Konvergen Pada struktur dengan tipe koneksi konvergen seperti yang diilustrasikan pada Gambar 2.7, jika tidak ada informasi yang diketahui pada node A, maka informasi diantara node-node parent dari A, yaitu B,C, …, F akan independent, sehingga nilai yang berada pada node-node parent tersebut tidak akan mempengaruhi probabilitas node-node lain. Tetapi ketika nilai dari A di ketahui maka node-node parent A, yaitu B, C, …, F akan menjadi saling tergantung, yaitu nilai untuk node-node parent akan mempengaruhi probabilitas node parent yang lain [JEN96]. 17 Gambar 2.7. Koneksi Konvergen [JEN96] II.5.4 Bebas Bersyarat dan d-Separation Notasi bebas bersyarat (conditional independence) dapat ditulis dalam bentuk I(X , Y | Z). Notasi tersebut menunjukkan bahwa X dan Y disebut bebas bersyarat jika nilai dari Z diketahui. Sehingga varibel X dan Y akan saling bebas berdasarkan Z jika memenuhi Persamaan 2.6, yaitu : P( X | Y , Z ) = P( X | Z ) 2.6 Persamaan 2.6 menunjukkan bahwa jika nilai dari Z diketahui maka tidak ada informasi dari Y yang akan mempengaruhi probabilitas dari X. Sebagai contoh [TAN06] dari bebas bersyarat adalah hubungan antara seseorang yang mempunyai lengan panjang (misalkan diwakili oleh node Y) dengan kemampuannya membaca (misalkan diwakili oleh node X). Seseorang yang mempunyai lengan yang lebih panjang cenderung(Y) akan mempunyai kemampuan membaca yang lebih baik (X). Namun demikian hubungan tersebut dapat diabaikan jika terdapat faktor lain didalam relationship tersebut misalkan ”usia” (misalkan diwakili oleh node Z). Dalam kondisi normal, usia (Z) akan mempengaruhi panjang lengan manusia(Y). Anak kecil akan memiliki lengan yang lebih pendek dari pada orang dewasa yang mempunyai lengan yang lebih panjang. Orang dewasa mempunyai kemampuan membaca yang lebih baik daripada anak kecil. Dengan demikian hubungan antara lengan (Y) dengan membaca (X) dapat dihilangkan jika usia (Z) seseorang diketahui. Sehingga dapat disimpulkan bahwa “panjang lengan” (Y) bebas bersyarat dengan “kemampuan membaca” (X) jika “umur” (Z) diketahui. Contoh hubungan bebas bersyarat (conditional independence) dalam dilihat pada Gambar 2.4, untuk node A, C dan 18 node D. Node A dengan node C disebut “bebas bersyarat” jika nilai dari node D diketahui. D-separation merupakan bagian dari konsep bebas bersyarat, dapat dikatakan bahwa semua d-separation adalah bebas bersyarat [NEA04]. Sebuah node X disebut “d-separation” (direction separation) dengan node Y oleh node Z jika semua jalur yang menghubungkan node X ke node Y diblok oleh node Z. Berdasarkan tipe koneksi yang ada pada sturktur Bayesian Networks, dseparated dapat dikenali pada struktur Bayesian Networks, yaitu untuk dua variabel A dan B dan pada semua jalur antara A dan B terdapat variabel V jika [JEN96] : 1. Tipe koneksi adalah serial atau divergen dan nilai dari V diketahui, atau 2. Tipe koneksi adalah convergen dan bukan V atau bukan turunannya yang diketahui nilainya. II.6 Contoh Mengambil Keputusan Menggunakan Bayesian Networks Contoh berikut, diadaptasi dari [TAN01]. Berdasarkan Gambar 2.8, struktur Bayesian Networks terdiri enam variabel yang dipresentasikan dalam node node yaitu :Excercise (E), Diet(D), Hearth Disease (HD), Heartburn (Hb), Blood Pressure (BP), Chest Pain (CP) dan terdapat 3 skenario diagnosis untuk menentukan seseorang akan mempunyai penyakit jantung (HD=Yes) atau tidak (HD=No). Gambar 2.8. Struktur BN untuk Contoh Kasus Klassifikasi [HAN01]. 19 1. Kasus 1, Tanpa informasi awal Tanpa informasi awal, dapat ditentukan apakah seseorang dapat menderita penyakit jantung dengan menghitung prior probabilitas P(HD=Yes) dan P(HD=No). Untuk penyederhanaan α ∈ { Yes, No } mewakili β ∈ {Healty , Unhealty} nilai mewakili binary nilai notasi, dari binary dianggap dan Exercise dari Diet. Dengan mengimplementasikan Persamaan 2.4 dan kaidah chain rule, maka didapat : P(HD=Yes) = = P ( HD = Yes) | E = α , D = β ) P ( E = α , D = β ) ∑∑ α β P ( HD = Yes) | E = α , D = β ) P ( E = α ) P ( D = β ) ∑∑ α β = 0.25 x 0.7 x 0.25 + 0.45 x 0.7 x 0.75 + 0.55 x 0.3 x 0.25 + 0.75 x 0.3 x 0.75 = 0.49 Karena P(HD=no) = 1 – P(HD=yes) =0.51, maka dapat diambil kesimpulan bahwa seseorang akan lebih besar kemungkinan untuk tidak mempunyai penyakit jantung. 2. Kasus 2, Tekanan Darah Tinggi Jika seseorang mempunyai tekanan darah tinggi (high blood pressure), sebuah diagnosa mengenai penyakit jantung dengan membandingkan posterior probability, P(HD=Yes|BP=High) dengan P(HD=No|BP=High). Untuk melakukan hal ini, pertama kali harus dihitung P (BP=High). P(BP=High) = ∑γ P( BP = High | HD = γ ) P( HD = γ ) = 0.85 x 0.49 + 0.2 x 0.51 = 0.5185 di mana γ ∈ {Yes, No} . Selanjutnya menghitung posterior probability seseorang akan mempunyai penyakit jantung : P(HD=Yes|BP=High) = = P( BP = High | HD = Yes) P ( HD = Yes) P( BP = High) 0.85 × 0.49 = 0.8033 0.5185 20 Dengan cara yang sama P(HD=No|HB=high) = 1 – (HD=Yes|BP=High) = 1 – 0.8033 = 0.1967 Berdasarkan perhitungan diatas seseorang dengan high blood pressure (tekanan darah tinggi) akan lebih berisiko untuk mempunyai penyakit jantung. 3. Kasus 3, Tekanan Darah Tinggi, Diet Sehat dan Olahraga Seandainya diberitahukan bahwa seseorang berolahraga dengan teratur (reguler exercise) dan melakukan diet sehat (healthy diet), dan ditanya kemungkinan orang tersebut akan mempunyai penyakit jantung (heart disease). Dengan informasi baru tersebut, posterior probability bahwa seseorang dapat mempunyai penyakit jantung adalah : P(HD=Yes|BP=High,D=Healthy,E=Yes) P( BP = High | HD = Yes, D = Healthy, E = Yes) = P( BP = High | D = Healthy, E = Yes) × P ( HD = Yes | D = Healthy , E = Yes) = P ( BP = High | HD = Yes) P ( HD = Yes | D = Healthy , E = Yes) ∑γ P( BP = High | HD = γ ) P( HD = γ | D = Healhty, E = Yes) = 0.85 × 0.25 = 0.5862 0.85 × 0.25 + 0.2 × 0.75 Sedangkan probabilitas seseorang tidak mendapat penyakit jantung : P(HD=No|BP=High,D=healthy,E=yes)= 1 – 0.5862 = 0.4138 Dengan demikian model mengambil kesimpulan bahwa tekanan darah tinggi yang dibarengi dengan diet yang sehat, olahraga secara teratur akan mengurangi resiko penyakit jantung. II.7 Algoritma untuk Membangun Struktur Bayesian Networks Algoritma yang dapat digunakan dalam membangun struktur Bayesian Networks dapat dibagi menjadi dua kategori yaitu (1) algoritma yang menggunakan suatu metode pencarian untuk membangun model dan mengevaluasi model tersebut 21 berdasarkan suatu nilai skor. Proses ini akan berlanjut dan berhenti jika suatu nilai (skor) model yang ke n tidak mempunyai perbedaan yang lebih baik yang signifikan dibandingkan model ya ke n-1[JIE97], algoritma ini disebut juga dengan “Scoring Based Algorithm”, contoh algoritma yang termasuk dalam kategori adalah K2 yang dikembangan oleh G.F Cooper dan E.A Herskovits (1992) ; (2) algoritma yang membangun struktur Bayesian Networks dengan menganalisa hubungan ketergantungan yang terdapat diantara node-node / variabel / atribut data. Hubungan ketergantungan tersebut diukur dengan melakukan pengujian bebas bersyarat, dengan kata lain algoritma membangun struktur Bayesian Networks dengan mengidentifikasi hubungan bebas bersyarat yang terdapat diantara node-node. Algoritma ini disebut juga dengan “CI Algorithm” yang merupakan bagian dari kategori “Constraint Based Algorithm”, contoh algoritma yang termasuk dalam kategori ini adalah TPDA (Three Phase Dependency Analysis) dan SLA (Simple Learning Algorithm) yang dikembangkan oleh Jie Cheng, Russel Jonathan Kelly Greiner dan (2001). Didalam tesis ini penelitian dibatasi hanya untuk mengeksplorasi secara studi literatur algoritma TPDA dengan alasan karena faktor ketersediaan literatur-literatur mengenai algoritma tersebut, dibandingkan dengan algoritma lain, algoritma TPDA lebih terbuka dipublikasikan termasuk pseudo-codenya. II.7.1 Three Phase Dependency Analysis (TPDA) Seperti yang telah disebutkan diatas algoritma TPDA ini dikembangkan oleh Cheng, Russel dan Kelly (2001). Tujuan dari algoritma ini adalah untuk menentukan ”node mana yang seharusnya terhubung dengan node lainnya”, yaitu menentukan / mencari atribut-atribut yang seharusnya saling berhubungan. Algoritma ini akan bekerja secara inkremental di mana setiap fase akan memiliki himpunan arcs (garis penghubung), di mana himpunan tersebut bisa ditambah dengan garis yang baru atau menghapus garis yang sudah ada. Keputusan dalam melakukan hal tersebut (menambah atau menghapus garis) adalah berdasarkan aliran informasi yang terdapat pada sepasang node yang akan dianalisa oleh algoritma yang akan menentukan apakah suatu node d-separated dengan node lain. Tolok ukur yang dipakai adalah dengan menghitung “mutual information” antara dua node. 22 Algoritma ini memandang Bayesian Networks sebagai sebuah jaringan channel informasi [JIE01] di mana setiap node dianggap sebagai ”valve” yang mempunyai status aktif atau tidak aktif dan dapat berubah dari aktif menjadi tidak aktif dan sebaliknya. Setiap valve saling berhubungan melalui jalur-jalur (channel) informasi. Informasi dapat mengalir melalui valve yang aktif, tetapi tidak dapat mengalir melalui valve yang tidak aktif. Sebagai contoh jika seandainya terdapat dua node X dan Y yang secara tidak langsung saling berhubungan dalam sebuah jaringan, jika jaringan tersebut benar, maka asumsinya adalah tidak akan ada informasi yang mengalir di antara dua node tersebut jika semua jalur yang menghubungkan X dan Y di tutup dengan mengubah status valves yang terdapat di sepanjang jalur node X dan Y, ketika hal tersebut dilakukan maka X dan Y dseparated. Cara kerja algoritma adalah mencoba menutup semua jalur koneksi dan melihat apakah dataset menunjukkan adanya aliran informasi lainnya di antara dua node tersebut ketika d-seperated. Jika ada aliran informasi yang lain maka algoritma akan membuat asumsi bahwa struktur tidak benar dan akan menambah garis yang baru antara X dan Y secara langsung. II.7.1.1 Konsep Dasar TPDA Berikut ini akan diberikan beberapa konsep dasar yang terdapat pada TPDA yang ditulis oleh pengembang algoritma ini yaitu Cheng, Russel dan Kelly (2001). Pada dasarnya konsep-konsep tersebut merupakan definisi-definisi atau istilah yang dipakai pada algoritma TPDA. Beberapa definisi tersebut meupakan definisi yang telah diuraikan / ditulis pada sub-bab sub-bab sebelumnya. Definisi-definisi tersebut antara lain adalah : Adjacency Path, merupakan jalur-jalur yang dapat menghubungkan dua node X dan Y tanpa melihat arah dari jalur. Pada Gambar 2.9, C-E-D merupakan adjacency path yang menghubungkan C dan D, walaupun garis yang menghubungkan node-node tersebut berbeda arah. Gambar 2.9. Contoh Multi Koneksi pada Bayesian Networks [JIE01]. 23 Collider, merupakan sebuah node V yang menjadi titik pertemuan antara node X dan Y. Pada Gambar 2.9, node E merupakan sebuah collider, karena node C dan D bertemu pada node E. Strukur jaringan C-E-D mirip seperti topologi convergen connection pada Bayesian Networks. Secara formal sebuah node V disebut collider pada satu jalur a1, a2, …ai-1= (X,V), ai = (Y,V), …, ak , jika dua garis searah yang berasosiasi dengan node yaitu node ai-1=(X,V) dan node ai=(Y,V) bertemu di V. Dengan kata lain, jika dua garis pada satu jalur di mana ujungnya bertemu di V maka V disebut node collider pada jalur tersebut. Conditional Independence (CI), Jika X,Y, Z merupakan variabel node, secara formal X dan Y disebut “conditionally independent” karena Z jika untuk semua nilai x ∈ X, y ∈ Y, z ∈ Z , P(x,|y,z)=p(x|z) di mana P(y,z)>0. d-Separation, untuk sebuah directed acyclic graph DAG=(N,A) di mana X, Y ∈ N dan X ≠ Y, L ⊆ N \{X,Y} maka X dan Y disebut “d-separated” karena diberikan status L pada struktur G, jika dan hanya jika tidak terdapat satupun adjacency path yang terbuka (open), di mana sebuah adjacency path P disebut open jika dan hanya jika (iff): Semua collider pada jalur P berada dalam L atau mempunyai turunan pada L dan Tidak ada node-node selain collider yang di P berada pada L. Pada Gambar 2.9, jika belum diketahui informasi apapun (empty evidence), maka C dan D adalah d-separated. Mengubah status dari suatu node berarti memasukkan node ke dalam cut-set, oleh karena itu ketika collider E dimasukkan ke dalam cut-set maka akan membuat jalur dan C ke D terbuka, sementara meletakkan non-collider B ke dalam cut-set akan menutup jalur A-B-C-E dan A-B-D-E, sehingga A dan E d-separated. Mutual Information, adalah tolok ukur yang dipakai untuk menentukan besaran aliran informasi antara node A dan B. Mutual Information dapat didefinisikan sebagai Persamaan 2.7 I ( A, B ) = ∑ P (a, b) log P ( a, b) P (a ) P (b) 2.7 24 Sedangkan Conditional mutual information, yaitu mutual information berdasarkan nilai yang terdapat pada node C dapat ditulis dalam bentuk Persamaan 2.8 I ( A, B | C ) = ∑ P (a, b | c) log P ( a, b | c ) P(a | c) P(b | c) 2.8 A dan B dikatakan independent jika I(a,b) ≈ 0 (diwakilkan dengan sebutan nilai threshold)[JIE01]. Nilai threshold ε yang dianjurkan adalah 0.01 [JIE01], sehingga algoritma ini akan mengatakan bahwa A dan B akan independent jika I(a,b) < ε, di mana ε =0.01. Semakin tinggi nilai mutual information antara dua node/variabel, semakin tinggi kemungkinan untuk membuat garis yang menghubungkan node-node tersebut [BEK05;JIE97]. TPDA menggunakan mutual information ini sebagai CI (conditional independence) sehinggan CI menjadi constraint dalam membangun struktur Bayesian Networks. II.7.2 Algoritma TPDA tanpa Pengurutan Node Algoritma TPDA dibagi dalam 2 (dua) kategori, yaitu algoritma untuk node ordering dan algoritma tanpa node without ordering. Node ordering maksudnya adalah variabel-variabel telah diurut sedemikian rupa, yaitu node yang mana akan menentukan node selanjutnya akan tampil telah ditentukan sebelumnya. Urutan ini bisa berdasarkan pemikiran dari para ahli analisa yang menentukan satu variabel mana yang dapat mempengaruhi variabel lain. Node without ordering merupakan kebalikan dari node ordering. Pada penelitian ini, algoritma yang diekplorasi adalah algoritma TPDA dengan node without ordering karena didasarkan oleh pengetahuan penulis yang bukan merupakan seorang ahli dalam kasus yang akan di implementasikan. Algoritma ini terdiri dari tiga fase / tahap yaitu fase drafting, thickening, dan thinning dan orients edges. TPDA diawali dengan fase “drafting”, di mana fase ini menghasilkan inisialisasi sekumpulan garis penghubung dengan melakukan pengujian pada struktur jaringan yang ada. Draft merupakan sebuah graph tanpa loops yang menggunakan Chow-Liu algoritma [GRO06;LIU96]. Fase kedua adalah “thickening”, TPDA menambahkan garis pada graph ketika dua node tidak dapat di 25 pisahkankan (non d-separated) dengan menggunakan pengujian CI yaitu menghitung mutual information antara 2 (dua) node. Fase ketiga adalah “thinning” adalah fase di mana setiap garis akan di uji dan dihapus jika dua node diketahui “bebas bersyarat”, fase ini diakhiri dengan memanggil prosedur orients edges untuk menentukan arah garis. Uraian lebih lengkap untuk ketiga fase – fase adalah sebagai berikut [JIE98]: Fase 1 : Drafting 1. Menginisialisasi grafik G (V,E) di mana V= adalah node-node dari dataset, E={} (himpunan kosong). Menginisialisasi sebuah list L yang kosong. 2. Untuk setiap pasangan node-node (vi, vj), di mana vi, vj merupakan elemen dari V dan i ≠ j, hitung nilai mutual information I(vi,vj) menggunakan Persamaan 2.7. Untuk semua pasangan node-node yang memiliki nilai mutual information lebih besar dari sebuah nilai ε, node-node tersebut diurut mengecil dan letakkan pada list L. Selanjutnya buat sebuah pointer p yang mengacu kepada pasangan node yang pertama pada list L. 3. Ambil pasangan node yang pertama yang ada pada list L dan hapus dari L. Selanjutnya tambahkan garis ke E. Pindahkan pointer p ke pasangan node yang selanjutnya. 4. Ambil pasangan node-node dari L yang ditunjuk oleh pointer p. Jika tidak terdapat jalur yang terbuka (no adjacency path), tambahkan garis ke E dan hapus node tersebut dari L. 5. Kembali ke no. 4, dan berhenti pointer p menunjuk ke akhir list L. Untuk memberikan ilustrasi mekanisme kerja algoritma ini, penulis akan memberikan contoh yang diberikan oleh Cheng [JIE98;JIE01]. Seperti yang terlihat pada Gambar 2.9a, terdapat sebuah struktur Bayesian Networks dari suatu data. Tugas dari algoritma TPDA adalah untuk menemukan kembali struktur Bayesian Networks di mana Gambar 2.9a sama seperti Gambar 2.9d. 26 Gambar 2.9. Contoh struktur BN untuk implementasi TPDA[JIE01] Setelah melakukan langkah ke-2 dari pada tahap “drafting”, maka akan diperoleh mutual information untuk 10 pasang node. Seandainya I(B,D) ≥ I(C,E) ≥ I(B,E) ≥ I(A,B) ≥ I(B,C) ≥ I(C,D) ≥ I(D,E) ≥ I(A,D) ≥ I(A,E) ≥ I(A,C), di mana semua mutual information pasangan node tersebut lebih besar dari e, sehingga L akan berisi [{B,D}, {C,E} {B,E}, {A,B}, {B,C}, {C,D}, {D,E}, {A,D}, {A,E}, {A,C}]. Setelah melalui langkah 3, 4 , dan 5, isi list L yang terakhir berisi [{B,C}, {C,D}, {D,E}, {A,D}, {A,E}, {A,C}]. Untuk pasangan node (B,D),(C,E),(B,E), (A,B), (B,C) akan langsung ditambahkan masing-masing garis penghubung mengingat bahwa pasangan node-node tersebut belum ada adjacency path. Akhir dari tahap ini akan menghasilkan struktur seperti yang terlihat pada Gambar 2.9b. Pada gambar tersebut garis (B,E) adalah salah, sedangkan (D,E) dan (B,C) akan hilang karena sudah terdapat adjacency path (D-B-E) dan (B-E-C). Struktur ini akan menjadi dasar dalam dalam membangun struktur selanjutnya pada untuk tahap kedua yaitu “thickening”. Fase 2 : Thickening 6. Pindahkan pointer p ke pasangan node pertama yang ada pada list L. 7. Ambil pasangan node tersebut (node1,node2) posisi pointer p saat ini. Selanjutnya edge_needed_A(current_graph,node1,node2) yang berada pada panggil untuk prosedur menentukan apakah node-node tersebut dapat dipisahkan (d-separated). Jika dseparated, langkah 8 akan dijalankan, tetapi jika non d-separated 27 maka node tersebut akan dihubungkan dengan menambahkan garis ke himpunan E. Prosedur edge_needed_A akan ditampilkan berikut dibawah ini. 8. Pindahkan pointer p ke pasangan node selanjutnya yang ada pada list L dan kembali ke langkah 7. Berhenti jika pointer p menunjuk pada akhir list L. Hasil dari fase ke-2 dapat dilihat pada Gambar 2.9c. Pada contoh yang diberikan garis (B,C) dan (D,E) ditambahkan karena D dan E bukan “bebas bersyarat” pada B, di mana B adalah cut-set yang terkecil antara D dan E. Garis (A,C) tidak ditambahkan karena A dan C independent karena cut-set B, demikian juga dengan garis (A,D), (C,D) dan (A,E) Fase 3 : Thinning 9. Untuk masing-masing garis (node1,node2) yang ada pada E, jika terdapat jalur-jalur lain selain garis tersebut diantara dua node-node itu, hapus sementara garis dari E dan panggil prosedur edge_needed_A(current_graph,node1,node2). Jika dua node tersebut bukan d-separated, tambahkan kembali garis untuk menghubungkan dua node itu ke E, jika dua node non separated maka garis dihapus secara permanen dari E. 10.Untuk setiap garis di E, jika terdapat jalur lain selain garis tersebut antara dua node, maka garis tersebut dihapus sementara dari E, selanjutnya jalankan prosedur edge_needed_B(current_graph,node1,node2), jika dua node adalah d-separated maka masukkan kembali garis yang dihapus tersebut ke E, jika dua node non d-separated maka hapus garis tersebut secara permanen. 11.Selanjutnya jalankan prosedur orients_edges(current_grap). Prosedure ini berguna untuk mengindentifikasi colliders[JIE98;JIE01],yaitu mengidentifikasi jalur yang dapat mengalirkan informasi ketika node collider tersebut di instansiasi. 28 Hasil dari fase ke-tiga dapat dilihat pada Gambar 2.9d. Tahap ini adalah fase perbaikan mengingat pada dua fase sebelum sebuah garis dapat ditambahkan dengan salah. Fase ini akan berusaha mencari jalur-jalur lain yang menghubungkan dua node, yaitu mencari kemungkinan adanya jalur yang menghubungkan dua node secara tidak langsung. Pada Gambar 2.9d terlihat bahwa garis (B,E) dihapus karena B dan E independent karena cut-set C, D. Pada akhirnya struktur Bayesian Networks yang terdapat pada Gambar 2.9a ditemukan kembali pada gambar 2.9d. Fase 2 (thickening) TPDA langkah ke-7 dan ke-9 memerlukan suatu prosedur algoritma, yaitu prosedur edge_needed_A(current_structur, node1, node2) yang berfungsi untuk mengidentifikasi apakah suatu node akan d-separated dengan node pasangannya. Adapun pseudocode untuk prosedur tersebut dapat dilihat pada Gambar 2.10. Procedure edge_needed_A(struktur BN,node1,node2) : 1. Temukan node-node disekitar node1 dan node2 yang merupakan adjency path antara node1 dan node2 tersebut. Store node-node tersebut ke N1 untuk node1 dan N2 untuk node2. 2. Hapus child node node1 yang diketahui dari N1 dan child node node2 dari N2. 3. Jika kardinalitas N1 > dari N2 maka tukar nilai N1 ke N2 dan N2 ke N1 4. Gunakan N1 sebagai condition-set (himpunan kondisi) C. 5. Lakukan penghitungan pengujian CI menggunakan Persamaan 2.8. Untuk v=I(node1,node2|C) di mana v < ε, maka prosedur ini mengembalikan nilai – return - (“separated”). 6. Jika C berisi hanya satu node, lompat ke langkah yang ke 8, jika tidak : untuk setiap i di mana Ci = C \ {ith node C}, vi=I(node1,node2|Ci), temukan vm yang terkecil dari v1,v2,… 7. Jika vm < ε, return(“separated”), selain itu jika vm > v maka lompat ke langkah 8, atau vm=v, Cm=C, dan ulangi langkah 6. 8. Jika N2 belum pernah digunakan, maka gunakan N2 sebagai condition-set C, dan ulangi langkah 5. Jika sudah pernah digunakan maka return(“failed”). Gambar 2.10. Prosedur edge_needed_A 29 Prosedur edge_needed_A menggunakan metode heuristik untuk mencari cutset, namun demikian prosedur ini tidak selamanya dapat memisahkan dua node yang ”bebas bersyarat” [JIE98;JIE01]. Oleh sebab itu diperlukan sebuah prosedur yang benar untuk melakukan pengecekan ulang. Pada langkah ke-10, prosedur tersebut bernama edge_needed_B(struktur,node1,node2). Pseudocode untuk prosedur tersebut dapat dilihat pada Gambar 2.11. Prosedur edge_needed_B(struktur,node1,node2) : 1. Temukan node-node disekitar node1 dan node2 yang merupakan adjacency path antara node1 dan node2 tersebut. Store node-node tersebut ke N1 untuk node1 dan N2 untuk node2. 2. Temukan node-node disekitar N1 yang merupakan adjacency path antara node1 dan node2 tersebut dan bukan kepunyaan N2. Store node-node tersebut ke N1’. 3. Temukan node-node disekitar N2 yang merupakan adjacency path antara node1 dan node2 tersebut dan bukan kepunyaan N1. Store node-node tersebut ke N2’. 4. Jika |N1+N1’| < |N2+N2’| maka C=N1+N1’, jika tidak C =N2+N2’ 5. Lakukan penghitungan pengujian CI menggunakan Persamaan 2.8. Untuk v=I(node1,node2|C). Jika v < ε, maka prosedur ini mengembalikan nilai – return (“separated”), jika tidak, jika C hanya berisi satu node maka return(“failed”). 6. Andaikan C’=C, untuk setiap i ∈ [1,C], dan andaikan Ci=C\{node C yang ke i}, vi=I(node1,node2|Ci), jika vi < ε maka return (“separated”), atau jika vi ≤ v + e, maka C’=C’\{node C yang ke-i }. ( e adalah nilai yang kecil ) 7. Jika |C’| < |C| maka C=C’, ulangi langkah 5, jika tidak return(“failed”). Gambar 2.11. Prosedur Edge_Needed_B Pada Fase ke-3 yaitu thinning, terdapat prosedur orients_ edge(struktur), yang berguna untuk memastikan arah dari garis dari satu node ke node lain sudah benar. Berdasarkan karakteristik Bayesian Networks, algoritma prosedur ini diupayakan untuk mengidentifikasi colliders (V-Struktur) dengan menggunakan pengujian CI [JIE98;JIE01]. Dengan terindentifikasinya collider, maka sub rutin ini akan memutar sebanyak mungkin garis untuk mencari strukutr V yang dapat menyalurkan informasi (open path) pada saat instansiasi struktur. Prosedur orients_ edge(struktur) dapat dilihat pada Gambar 2.12. 30 prosedur orients_ edge(struktur); 1. Untuk setiap dua node s1 dan s2 yang terhubung secara tidak langsung dan di mana setidaknya terdapat satu node yang merupakan tetangga s1 dan s2, temukan node-node sekitar s1 dan s2 yang berada pada adjacency path antara s1 dan s2, Simpan node-node tersebut pada himpunan N1 dan N2. 2. Temukan tetangga dari node-node yang ada di N1 yang berada pada adjacency path antara s1 dan s2 tetapi tidak terdapat pada N1 dan simpan node-node tersebut dalam himpunan N1’ 3. Temukan tetangga dari node-node yang ada di N2 yang berada pada adjacency path antara s1 dan s2 tetapi tidak terdapat pada N2 dan simpan node-node tersebut dalam himpunan N2’. 4. Jika | N1 + N2’ | < | N2 + N2’ | maka C=N1+N1’ atau jika tidak C=N2+N2’ 5. Lakukan pengujian CI menggunakan Persamaan 2.8. Jika v = I(s1,s2|C). Jika v < ε , langsung ke langkah-8, jika tidak ; jika |C|=1 maka s1 dan s2 merupakan parent node dari C, lakukan langkah ke-8. 6. Andaikan C’=C, untuk setiap i ∈ [1,|C|], andaikan Ci=C \ {node C yang ke-i}, vi=I(s1,s2|Ci). Jika vi ≤ v+e maka C’=C’ \ {node C yang ke-i}, andaikan s1 dan s2 merupakan parent node dari node C yang ke-i jika node yang ke-i adalah tetangga dari s1 dan s2. Jika v1 < ε , lakukan langkah ke-8. ( e merupakan nilai yang kecil). 7. jika |C’|<|C| maka C=C’, jika |C|>0 maka lakukan langkah ke-5. 8. Ulangi langkah ke-1 dan berhenti jika semua pasangan node telah di periksa 9. Untuk setiap tiga node a, b, c, jika a adalah parent dari b, b dan c adalah adjacent, dan a dan c tidak adjacent dan garis(b,c) tidak dapat di putar, maka b adalah parent dari c. 10. Untuk setiap garis(a,b) yang tidak dapat di putar, jika terdapat jalur searah (directed path ) dari a ke b, maka a adalah parent dari b. 11. Ulangi langkah ke-9 dan berhenti jika tidak ada lagi garis yang bisa di putar. Gambar 2.12. Prosedur Orients_Edge II.8 Kajian Studi Literatur TPDA Kajian untuk kompleksitas dari algoritma TPDA dalam tesis ini berdasarkan studi literatur. Analisis kompleksitas TPDA telah dilakukan oleh pengembang algoritma tersebut yaitu [JI01]. Analisa yang dilakukan untuk algoritma TPDA adalah sama yaitu berdasarkan jumlah pengujian CI dan jumlah operasi dasar perhitungan yang dilakukan. Namun demikian, operasi dasar perhitungan tidak menjadi pertimbangan utama mengingat perkembangan teknologi sekarang, dimana 31 komputer modern dapat melakukan hampir semua perhitungan matematika dalam waktu hitungan sepersekian detik. Setiap pengujian CI membutuhkan satu query basis data, dan semakin tinggi kebutuhan dari pengujian CI maka akan semakin lambat query basis data dalam melakukan operasinya. Jika seandainya dataset mempunyai sejumlah N attribut dan masing masing atribut paling banyak mempunyai r kemungkinan nilai atribut dan paling banyak k mempunyai node parent, maka berdasarkan Persamaan 2.7, untuk setiap perhitungan mutual information membutuhkan O(r2) [JIE01] operasi dasar perhitungan (seperti logaritma, perkalian dan pembagian). Sedangkan berdasarkan Persamaan 2.8, setiap perhitungkan conditional mutual information akan membutuhkan O(rk+2) [JIE01] operasi dasar perhitungan mengingat condition-set berisi sebanyak k node. Analisa kompleksitas berdasarkan pengujian CI adalah sebagai berikut : Fase I, fase ini menghitung mutual information antara dua node, sehingga membutuhkan N(N-1)/2 (di mana N adalah jumlah node) pengujian CI. Prosedur Egde_Needed_A, untuk kasus terburuk, N1 dan N2 dapat berisi N-2 node. Prosedur ini akan melakukan satu pengujian CI untuk N1 atau N2 sebagai condition-set inisial. Selanjutnya prosedur ini akan melakukan N-2 pengujian CI dengan menggunakan subset N-2 dari kardinalitas N-3 dari inisial condition-set sebagai condition-set. Jika seandainya prosedur tidak pernah dapat untuk memisahkan dua node, prosedur ini akam menghapus satu node secara permanen dengan memilih satu subset diantara N-2 subset yang ada dan mengulanginya dan berhenti jika kardinalitas dari condition-set sama dengan satu. Oleh sebab itu procedur ini akan melakukan 1 + (N-2) + (N-3) + …+2=(N-1) (N-2)/2 pengujian CI yang dimulai dari salah satu dari dua set himpunan N1 atau N2. Dengan menggunakan N1 dan N2,maka kompleksitas pada prosedur ini adalah O(N2) [JIE01]. Fase II, fase ini mencoba untuk untuk menambahkan garis ke graph yang didapat pada Fase I. Karena paling banyak N(N-1)/2-(N-1) garis yang akan ditambahkan, fase ini akan memanggil prosedure Edge_Needed_A paling banyak sebesar N(N-1)/2-(N-1) kali. Pengeksekusian prosedure tersebut 32 paling banyak memerlukan (N-1)(N-2). Sehingga fase ini membutuhkan paling banyak O(N4) pengujian CI [JIE01]. Prosedur Edge_Needed_B, prosedur ini hampir sama dengan prosedur Edge_Needed_A. Pada kasus terburuk, inisial condition-set akan berisi N-2 node. Jika seandainya setiap iterasi hanya mampu menghilangkan satu node dari percobaan lebih lanjut, maka total jumlah pengujian CI yang dapat dilakukan maksimal adalah (N-1)(N-2)/2. [JIE02]. Dengan menggunakan N1+N1’ dan N2+N2’, maka kompleksitas pada prosedur ini adalah O(N2). Prosedur Orient_Edges, prosedur ini akan memeriksa setiap pasangan node untuk melihat apada terdapat collider diantara dua node tersebut. Terdapat paling banyak N2 pemeriksaan demikian. Kompleksitas waktu untuk setiap pemeriksaan sama seperti kompleksitas waktu dalam mengeksekusi prosedur Edge_Needed_B. Oleh karena prosedur ini memerlukan kompleksitas waktu sebanyak O(N4) pengujian CI [JIE01]. Fase 3, fase ini akan mencoba menghilangkan setiap garis dari graph yang didapat dari fase dua. Karena terdapat N(N-1)/2 garis pada graph, fase ini akan menggunakan Edge_Needed_A dan Edge_Needed_B sebanyak N(N1)/2. Oleh karena itu total jumlah paling banyak pengujian CI pada fase ini sebelum rotasi garis adalah O(N4)[JIE01]. TPDA akan membutuhkan pengujian CI paling banyak sebesar O(N4) kali. II.9 Visualisasi pada Data Mining Data mining merupakan gabungan dari beberapa area disiplin keilmuan. Salah satu diantaranya adalah visualisasi. Data dapat divisualisasikan dalam bentuk grafik maupun tabular. Visualisasi tersebut harus dapat menampilkan karakteristik data sehingga hubungan antara item-item data dapat diamati [TAN06]. Motivasi utama dari visualisasi adalah bahwa manusia dapat dengan cepat menyerap berbagai informasi yang ditampilkan dalam bentuk visual. Memvisualisasikan data adalah menampilkan sebuah informasi dalam bentuk grafik atau format tabular. Ada beberapa tahapan dalam visualisasi data. Tahap pertama data adalah memetakan data ke dalam elemen-elemen grafik, yaitu memetakan objek 33 data, seperti atribut dan hubungan antar objek data ke dalam bentuk-bentuk grafik seperti garis, titik, shape juga termasuk warna[TAN06]. Tahap kedua adalah mengatur item-item yang terdapat pada tampilan visual[TAN06]. Tahap terakhir adalah pemilihan, yaitu pemilihan objek data dan atribut-atribut yang akan di visualisasikan[TAN06]. Dengan adanya visualisasi pada data mining, ada beberapa keuntungan yang diharapkan, antara lain yaitu [FAY02]: Tugas Data mining biasanya berhubungan dengan masalah statistik, oleh sebab itu dengan visualisasi ini pengguna (user) dengan pengetahuan sedikit tentang statistik dapat memahami dengan cepat informasi yang ditampilkan dan faktor-faktor utama (atribut dan nilai data) yang mempengaruhi peng-klasifikasi-an data. Pengguna (user) dapat melihat karakteristik untuk setiap kelas. Karakteritik kelas-kelas dapat dilihat dari daftar nilai-nilai untuk setiap atribut atau rentang (range) yang dapat membedakan satu kelas dengan kelas lainnya. Pengguna/user dapat berinteraksi dengan visualisasi, yaitu user secara langsung dapat mengklasifikasi data dengan melihat hasil visualisasi dan melihat perubahan prediksi ketika memilih suatu nilai untuk sebuah atribut. Banyak teknik grafis yang dapat dipakai untuk melakukan visualisasi suatu informasi data. Sebagian teknik yang umum dipakai secara ringkas dijelaskan pada sub bab berikut. II.9.1 Histogram Dalam disiplin ilmu statistik, histogram adalah suatu bentuk grafis yang digunakan untuk mempelajarai distribusi frekuensi nilai dari suatu variabel/atribut. Histogram merupakan versi grafis dari sebuah table yang menunjukkan proporsi dari kasus-kasus/kelas-kelas yang termasuk dalam suatu interval tertentu dengan distribusi frekuensinya. Intrepetasi sebuah histogram adalah dengan membentuk sebuah kolom yang digambar dengan lebar pada suatu kelas interval tertentu dan 34 tinggi kolom menunjukkan frekuensi yang proposional untuk kelas tersebut. Contoh dari sebuah histogram adalah Gambar 2.104. Gambar 2.10. Histogram “waktu bepergian” sensus penduduk Amerika 2000. II.9.2 Pie Chart Pie chart adalah suatu bagan yang berbentuk lingkaran yang dibagi menjadi beberapa sektor yang menggambarkan besaran suatu nilai atau frekuensi. Pada suatu pie chart, panjang busur setiap sektor (termasuk juga area yang meliputi panjang busur tersebut) merupakan representasi yang proporsional untuk sebuah nilai variabel. Jika setiap variable digambarkan untuk setiap area maka representasi nilainilai varibel tersebut akan membentuk suatu lingkaran yang penuh. Pie chart merupakan salah satu format grafis yang yang paling banyak digunakan untuk merepresentasikan proporsi-proporsi nilai pada suatu variabel. Bentuk grafis ini memungkinkan kita membentuk suatu pie chart yang dapat dipecah/dibagi dalam satu atau lebih variabel lain (misalnya pengelompokan jenis kelamin). Contoh sebuah pie chart dapat dilihat pada Gambar 2.115. 4 Contoh gambar dan penjelasan diambil dari http://en.wikipedia.org/histogram.htm, diakses pada tanggal 22 Juni 2007 pukul 15.00 WIB. 5 Contoh gambar dan penjelasan diambil dari http://en.wikipedia.org/pie_chart.htm, diakses pada tanggal 22 Juni 2007 pukul 15.00 WIB. 35 Gambar 2.11. Contoh sebuah Pie Chart II.9.3 Bar/Colum Chart Bar chart, dikenal juga dengan bar graph, adalah suatu grafik/bagan dengan batang/palang (bar) yang berbentuk persegi panjang, di mana panjang bar merupakan representasi besaran frekuensi atau nilai suatu varibel yang ditampilkan. Bar dapat digambarkan secara horizontal maupun vertikal. Bentuk bar chart hampir sama dengan histogram. Namun demikian bar chart tidak sama dengan histogram. Histogram adalah representasi suatu nilai yang diikuti dengan representasi interval suatu kelas secara bersamaan, sedangkan bar chart adalah representasi suatu nilai variabel/data/atribut. Contoh dari bar chart dapat dilihat pada Gambar 2.126. Gambar 2.12. Contoh bar chart untuk representasi pemilu Eropa 2004. 6 Contoh gambar dan penjelasan diambil dari http://en.wikipedia.org/bar_chart.htm, diakses pada tanggal 22 Juni 2007 pukul 15.00 WIB. 36 Pada Gambar 2.12 dapat dilihat untuk setiap nilai-nilai kursi yang didapat untuk setiap partai yang mengikuti pemilu di Parlemen Eropa tahun 2004. Jika bar chart digunakan untuk menampilkan nilai-nilai varibel yang didapat dari 2 domain yang berbeda (misalnya pemilu tahun 2004 dan 1999), maka bar chart dapat ditampilkan sebagai multivariate cluster of bar. Contoh jenis bar chart tersebut dapat dilihat pada Gambar 2.137. Pada Gambar 2.13 dapat dilihat untuk perbandingan setiap nilai-nilai kursi yang didapat untuk setiap partai yang mengikuti pemilu di Parlemen Eropa tahun 2004 dan 1999. Gambar 2.13. Contoh bar chart menampilkan pemilu tahun 2004 dan 1999 II.10 Aplikasi Visualisasi Bayesian Networks Pada saat tesis ini ditulis, sudah banyak aplikasi data mining untuk klasifikasi dengan Bayesian Networks yang telah dikembangkan oleh para peneliti data mining dengan fokus pengembangan dalam pembangunan/pembelajaran struktur Bayesian Network dan juga dalam melakukan inferensi (prediksi kelas). Beberapa diantaranya adalah paket aplikasi BN PowerSoft dan GeNie/SMILE. Penjelasan umum mengenai aplikasi visualisasi BN PowerSoft dan Genie/SMILE dapat dilihat pada Lampiran A. 7 Contoh gambar dan penjelasan diambil dari http://en.wikipedia.org/bar_chart.htm, diakses pada tanggal 22 Juni 2007 pukul 15.00 WIB. 37 II.11 Visualisasi Struktur Bayesian Networks Bayesian Networks terdiri dari dua komponen utama, yaitu komponen kualitatif dan komponen kuantitatif [HUNG99]. Komponen kualitatif adalah directed acyclic graph (DAG) di mana atribut direpresentasikan oleh sebuah node sedangkan garis adalah garis yang menggambarkan keterkaitan/ketergantungan/kausalitas antar atribut tersebut. Komponen kuantitatif adalah berupa conditional probabilities table (CPT) yang memberikan informasi besarnya probabilitas untuk setiap nilai atribut berdasarkan parent dari atribut/node tersebut. Pada Bayesian Networks, DAG berperan penting dalam menggambarkan kausalitas, sebagai contoh adalah urutan-urutan node yang tampil secara intuisi dapat menggambarkan hubungan sebab akibat. Oleh sebab itu, didalam menggambar DAG pada Bayesian Networks, ada beberapa prinsip-prinsip estetika yang perlu diperhatikan, supaya pengguna dapat secara langsung melihat hubungan kausalitas tersebut. Beberapa prinsip-prinsip dasar estetika yang perlu diperhatikan adalah [HUNG99] : 1. Penggunaan hierarki node pada struktur DAG untuk menggambarkan hubungan sebab akibat, 2. Mengurangi jumlah garis yang saling bersilang, 3. Diusahakan sedapat mungkin untuk tetap memuat keseluruhan struktur tanpa mengurangi kemudahan pengguna dalam melihat struktur Bayesian Network. Contoh implementasi dari prinsip-prinsip tersebut dapat di lihat pada Gambar 2.14. Gambar 2.14. Contoh Tahapan Visualisasi DAG [HUNG99] 38 Gambar 2.14(a) merupakan tahap awal membangun DAG. Terlihat bahwa terdapat beberapa garis yang saling bersilang. Gambar 2.14(b) merupakan tahapan di mana node-node DAG merubah posisi untuk menghindarkan/meminimalisasi garis yang saling bersilang. Gambar 2.14(c) merupakan hasil akhir penggambaran DAG di mana posisi setiap node sudah di rapikan. Khusus untuk CPT, ada dua metode yang dapat digunakan untuk menampilkan CPT pada struktur Bayesian Networks [HUNG99] yaitu : (1), menggunakan notasi/dekripsi formal matematika probabilitas bersyarat dan menuliskan disekitar (disamping atau dibawah) node yang bersangkutan dan (2), memuat CPT kedalam struktur DAG dalam tabel yang terpisah dimana bentuk tabel dapat berupa satu tabel yang merepresentasikan CPT untuk setiap node, dan meletakkannya disamping node untuk menunjukkan CPT nya. CPT perlu ditampilkan untuk memberikan informasi kepada pengguna agar dapat melihat probabilitas suatu nilai node berdasarkan nilai node-node yang mempengaruhinya. 39