BAB. II. TINJAUAN PUSTAKA

advertisement
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
Download