Learning Algorithm) yang dikembangkan oleh Jie Cheng, Russel

32
8 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.

Transcript of Learning Algorithm) yang dikembangkan oleh Jie Cheng, Russel

8

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.

9

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

10

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).

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

Set Atribut

X

Model Klasifikasi

F(x) Class

Label

X

Input Output

11

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)

12

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] :

)(

)()|()|(

XP

YPYXPXYP =

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 nilai-

nilai 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

2.1

13

nilai X =x1,..xn, dan nilai Y=y1,…,yn yang dapat terjadi. Notasi P(X,Y) dapat ditulis

dalam bentuk Persamaan 2.2[JEN96].

)()|(),( YPYXPYXP =

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

)()|(),( jjiji yPyxPyxP =

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

ij

jii yxPxP ),()(

Persamaan 2.4 disederhanakan untuk menghitung P(X) menjadi Persamaan

2.5 yaitu :

2.2

2.3

2.4

14

∑=Y

YXPXP ),()(

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

Networks[HEC96].

2. Bayesian Networks mengeksploitasi hubungan bebas bersyarat

(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 :

2.5

15

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

C

B

Gambar 2.3. Contoh struktur sebuah DAG

Contoh lain dari sebuah struktur Bayesian Networks dapat dilihat pada

Gambar 2.4

16

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 node-

node yang terdapat pada Bayesian Networks diwakili oleh U, maka JPD P(U) adalah

perkalian dari semua probabilitas bersyarat yang terdapat pada struktur, yaitu :

))(|()( AipaAPUP i

i

∏=

di mana pa(Ai) merupakan node parent dari Ai.

Sebagai contoh, JPD untuk struktur Bayesian Networks yang terdapat pada

Gambar 2.4 adalah

),,,,,,()( GFEDCBAPUP =

),|()|()|(),|()|()()( CEGPDFPAEPBADPDCPBPAP=

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).

17

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].

18

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 :

)|(),|( ZXPZYXP =

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

2.6

19

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, d-

separated 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].

20

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 notasi, dianggap

},{ NoYes∈α mewakili nilai binary dari Exercise dan

},{ UnhealtyHealty∈β mewakili nilai binary dari Diet. Dengan

mengimplementasikan Persamaan 2.4 dan kaidah chain rule, maka didapat :

P(HD=Yes) = ∑∑ =====α β

βαβα ),(),|)( DEPDEYesHDP

= ∑∑ =====α β

βαβα )()(),|)( DPEPDEYesHDP

= 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) = ∑ ===γ

γγ )()|( HDPHDHighBPP

= 0.85 x 0.49 + 0.2 x 0.51 = 0.5185

di mana },{ NoYes∈γ . Selanjutnya menghitung posterior probability

seseorang akan mempunyai penyakit jantung :

P(HD=Yes|BP=High) = )(

)()|(

HighBPP

YesHDPYesHDHighBPP

=

===

= 8033.05185.0

49.085.0=

×

21

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)

=

===

====

),|(

),,|(

YesEHealthyDHighBPP

YesEHealthyDYesHDHighBPP

),|( YesEHealthyDYesHDP ===×

= ∑ =====

=====

γγγ ),|()|(

),|()|(

YesEHealhtyDHDPHDHighBPP

YesEHealthyDYesHDPYesHDHighBPP

= 5862.075.02.025.085.0

25.085.0=

×+×

×

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

22

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 Greiner dan

Jonathan Kelly (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-code-

nya.

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.

23

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 d-

separated. 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].

24

� 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

∑=)()(

),(log),(),(

bPaP

baPbaPBAI 2.7

25

Sedangkan Conditional mutual information, yaitu mutual information

berdasarkan nilai yang terdapat pada node C dapat ditulis dalam bentuk

Persamaan 2.8

∑=)|()|(

)|,(log)|,()|,(

cbPcaP

cbaPcbaPCBAI

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

2.8

26

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.

27

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) yang berada pada

posisi pointer p saat ini. Selanjutnya panggil prosedur

edge_needed_A(current_graph,node1,node2) untuk menentukan

apakah node-node tersebut dapat dipisahkan (d-separated). Jika d-

separated, langkah 8 akan dijalankan, tetapi jika non d-separated

28

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.

29

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.

Gambar 2.10. Prosedur edge_needed_A

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”).

30

Prosedur edge_needed_A menggunakan metode heuristik untuk mencari cut-

set, 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.

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.

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”).

31

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

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.

32

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 mempunyai

paling banyak k 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

33

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(N-

1)/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

34

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

35

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 nilai-

nilai 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.

36

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.

37

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.

38

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]

39

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.