Bab ini berisi tentang uraian mengenai teori Ripple-Down Rules (RDR), yang meliputi RDR
dengan pengembangan manual dan RDR yang menerapkan algoritma Induct untuk
pengembangannya.
II-1
II-2
suatu sistem berbasis pengetahuan, karena dalam masa pemakaian pun sistem masih terus
dapat berkembang.
Proses akuisisi pengetahuan dapat dilakukan secara manual oleh pakar atau secara otomatis
melalui program komputer. Compton dan Gaines [GAI92] mengembangkan suatu algoritma
pembelajaran mesin yang membangun RDR secara otomatis menggunakan metode Induct.
Algoritma ini dikenal dengan sebutan Induct/RDR. Penjelasan mengenai metode Induct dan
Induct/RDR akan diberikan pada sub-bab II.2.
Basis pengetahuan RDR terdiri atas sekumpulan kaidah beserta kasus cornerstone yang
terkait. Kasus cornerstone merupakan kasus yang menyebabkan terjadinya penambahan
kaidah baru, yang disimpan ketika terjadi penambahan kaidah baru untuk mengoreksi adanya
kesalahan klasifikasi oleh sistem. Setiap kaidah terhubung dengan satu kasus cornerstone,
kecuali kaidah pada simpul akar.
Kaidah RDR mempunyai secara umum mempunyai bentuk formulasi :
if <kondisi-1> then <konklusi-1>[because of <kasus cornerstone>]
except if <kondisi-2> then <konklusi-2>[because of <kasus
cornerstone>]
else if <kondisi-3> then <konklusi-3>[because of <kasus cornerstone>]
Formulasi ini dapat dituliskan dalam pernyataan “if-then-else” biasa sehingga menjadi :
if <kondisi-1> then
if <kondisi-2> then <konklusi-2> else <konklusi-1>
else if <kondisi-3> then <konklusi-3>
Penelusuran berakhir jika simpul yang dievaluasi tidak memiliki cabang dan konklusi akhir
sistem adalah konklusi kaidah terakhir yang dipenuhi pada jalur inferensi.
Pada Gambar II-2 di atas, digunakan kasus [a, b, e, f, g, i] sebagai kasus masukan. Proses
inferensi dimulai dengan mengevaluasi kaidah 0.0 terhadap kasus masukan. Kondisi true
dipenuhi untuk semua kasus, sehingga konklusi awal sistem adalah konklusi kaidah 0.0 yaitu
none. Proses inferensi dilanjutkan dengan mengevaluasi cabang IF-TRUE yaitu kaidah 1.1
dengan kondisi (a,b). Karena kondisi (a,b) terpenuhi, maka konklusi sementara sistem
berubah dari none menjadi kelas 1 dan penelusuran dilanjutkan pada cabang IF-TRUE.
Kaidah 2.2 mempunyai kondisi (c) yang tidak terpenuhi oleh kasus, sehingga penelusuran
selanjutnya ke cabang IF-FALSE dan konklusi sistem tetap kelas 1. Kaidah 4.5 pada cabang
IF-FALSE dengan kondisi (e,g) dipenuhi oleh kasus, sehingga konklusi sistem berubah
menjadi konklusi kaidah 4.5 yaitu kelas 5. Penelusuran berhenti pada kaidah 4.5 yang sudah
tidak mempunyai cabang.
Dengan demikian jalur inferensi untuk kasus [a, b, e, f, g, i] adalah [(kaidah 0.0, none),
(kaidah 1.1, kelas 1), (kaidah 2.2, kelas 1), (kaidah 4.5, kelas 5) ]
dan dilakukan apabila terjadi kesalahan klasifikasi terhadap kasus masukan sehingga sistem
memberikan solusi yang salah. Untuk itu, diperlukan solusi yang benar terhadap kasus
masukan tersebut dan kondisi untuk kaidah yang akan ditambahkan.
Jika konklusi kelas 5 yang diberikan oleh sistem pada struktur RDR yang ditunjukkan oleh
gambar Gambar II-2 dinyatakan salah, dengan konklusi yang benar adalah kelas 3, maka
kaidah baru dapat ditambahkan sebagai perkecualian positif dari kaidah 4.5. Dalam hal ini,
kondisi kasus adalah memenuhi kondisi pada kaidah.
Pemilihan kondisi untuk membentuk kaidah baru dilakukan berdasarkan pada perbedaan
kondisi antara kasus masukan dan kasus kunci pada kaidah terakhir yang dipenuhi pada jalur
inferensi. Berdasarkan contoh di atas, daftar perbedaan tersebut adalah sebagai berikut :
suatu metode pembelajaran yang menghasilkan ruang hipotesa H dari sekumpulan instans
X untuk mendefinisikan konsep target c. Setiap hipotesa h dalam H menunjukkan sebuah
fungsi boolean terhadap X, yaitu h : X {0,1}. Tujuan pembelajaran inductive adalah
untuk memperoleh sebuah hipotesa h sedemikian sehingga h(x) = c(x) untuk semua x
dalam X [MIT97].
Dalam pembelajaran inductive, dilakukan observasi terhadap sekumpulan data atribut-nilai
dari suatu konsep, yang biasa disebut sebagai data latih. Pembelajaran akan
mengidentifikasikan kombinasi atribut-nilai yang mendefinisikan konsep dari data. Hasil
II-7
pendefinisian konsep ini kemudian digunakan untuk mengklasifikasikan data baru, atau data
uji dengan menggunakan asumsi bahwa hipotesa terbaik yang sesuai dengan data uji adalah
hipotesa terbaik yang sesuai pada data latih. Oleh karena itu, kualitas data latih sangat
mempengaruhi kualitas pembelajaran yang dihasilkan.
Sebuah inductive system dapat digambarkan sebagai sebuah sistem yang menerima masukan
training example dengan kelas terdefinisi dan instance baru yang belum terklasifikasi.
Inductive system menggunakan beberapa pendekatan untuk membangun ruang hipotesa H
yang mendeskripsikan training example. Sistem mengklasifikasikan instance baru
menggunakan H, menghasilkan keluaran berupa klasifikasi instance baru atau nilai ”don’t
know”.
Pendekatan Induct pada RDR menggunakan metodologi statistik untuk menghasilkan kaidah
dari data. Penelitian dilakukan terhadap data pada [GAI89] dan menghasilkan sistem yang
menurunkan kaidah-kaidah dengan eksepsi, yang merupakan struktur dari RDR. Ekstensi
Induct ke RDR menggunakan statistical decision procedure untuk membangkitkan kaidah.
Prosedur statistik tersebut akan dipanggil secara rekursif pada data yang tersisa untuk
membangkitkan kaidah IF-TRUE dan IF-FALSE.
Gambar II-4 Error analysis untuk statistical control algoritma Induct [GAI92]
Pembangkitkan premis untuk kaidah RDR secara inductive dapat dilakukan dengan langkah-
langkah sebagai berikut:
1. klasifikasi yang paling sering muncul dari data dipilih sebagai konklusi target.
2. premis awal diinisialisasi tanpa mempunyai klausa. Premis ini akan meluluskan
semua kasus karena tidak ada kondisi khusus yang harus dipenuhi.
3. untuk setiap kombinasi atribut-nilai dilakukan pengujian secara iteratif terhadap
kemungkinannya sebagai klausa. Pasangan atribut-nilai yang terbaik dipilih sebagai
klausa berdasarkan pengujian statistik.
4. pengambilan keputusan untuk menambahkan klausa dilakukan dengan menggunakan
pengujian statistik yang sama dan pertimbangan apakah penambahan klausa terpilih
tersebut dapat meningkatkan performansi kaidah atau sebaliknya. Jika terdapat
peningkatan, maka proses kembali ke langkah 3. Sedangkan jika tidak terdapat
peningkatan, proses berhenti dengan kaidah yang dihasilkan sebagai keluaran.
Proses pembangkitan premis melibatkan suatu fungsi statistik untuk memilih klausa terbaik
yang akan melakukan pemangkasan (pruning) pada setiap rule yang sudah lengkap.
Pembangkitan suatu rule secara lengkap memunculkan kemungkinan overfitting terhadap
training set. Untuk mengantisipasi hal ini, penghapusan klausa dilakukan dari bagian
belakang sebuah rule lengkap. Penghapusan dilakukan sampai kualitas rule mencapai nilai
maksimal, dan berhenti jika penghapusan dapat memperburuk kualitas rule. Pengukuran
kualitas rule ini melibatkan fungsi probabilitas untuk mengukur kemungkinan rule terpilih
secara acak (random) [WIT00]. Penjelasan mengenai fungsi-fungsi statistik tersebut diberikan
pada sub-bab II.2.3.
II-9
Untuk mendefinisikan probabilitas penyeleksian secara acak dari derajat generalitas yang
sama, diketahui Q sebagai entitas relevan dalam E dengan Q(e) terpenuhi (Persamaan II-1), S
entitas terpilih dalam E dengan S(e) terpenuhi (Persamaan II-2), dan C entitas benar dalam E
dengan Q(e) dan S(e) terpenuhi (Persamaan II-3).
II-10
Persamaan II-1
Persamaan II-2
Persamaan II-3
Persamaan II-4
dengan q adalah jumlah kasus dengan kelas Q, e adalah jumlah seluruh kasus dalam data.
Probabilitas suatu rule yang terpilih secara acak untuk memilih s dan memperoleh sejumlah c
atau lebih entitas bernilai benar, dinyatakan dengan notasi r, didefinisikan dengan
menjumlahkan distribusi binomial standar untuk memperoleh Persamaan II-5:
Persamaan II-5
dengan s adalah jumlah kasus dengan pasangan atribut-nilai yang diuji, i adalah jumlah kasus
dengan kelas Q dari pasangan atribut-nilai yang diuji. Tanda kurung dalam menyatakan
Algoritma untuk memilih klausa terbaik yang digunakan dalam Induct tersebut oleh [LIT96]
didefinisikan di bawah ini.
BestClause(Class,Attr,Training_Set)
{Fungsi ini menghasilkan klausa terbaik untuk ditambahkan ke dalam
kaidah}
loop
tmpTerm term dengan atribut A nilai V yang akan menghasilkan
nilai r minimal jika ditambahkan ke kaidah
clause clause + tmpTerm
hapus A dari attr
z jumlah example dalam trainingSet dengan kelas=class dan
clause bernilai true
s jumlah example dalam trainingSet dengan clause bernilai
true
if z=s then stop
end loop
while r(clause) > r(clause – lastTerm) do
clause clause – lastTerm
return clause
end BestClause
Algoritma II-1 Pemilihan Klausa Terbaik [LIT96]
Fungsi BestClause melakukan pemangkasan (pruning) pada rule yang telah lengkap.
Pemangkasan ini dilakukan dari bagian belakang, dan akan berhenti jika terjadi penurunan
kualitas rule yaitu peningkatan nilai r. Fungsi BestClause akan mengembalikan klausa yang
mempunyai nilai r terkecil.
Pemangkasan setelah rule lengkap ini dilakukan untuk mengantisipasi terjadinya overfitting,
seperti telah dinyatakan sebelumnya. Di samping fakta ini, pemangkasan yang dihentikan
pada saat nilai r meningkat dapat menjadi keputusan yang tidak tepat. Misalnya ketika
pemangkasan dihentikan pada klausa ketiga dari belakang karena pada klausa ini nilai r
meningkat. Sedangkan pada klausa kelima, nilai r lebih kecil daripada klausa ketiga, dan
mencapai nilai minimal. Oleh karena itu, pada pemangkasan sampai dengan klausa kelima,
dapat diperoleh rule yang lebih baik daripada rule yang diperoleh pada pemangkasan sampai
dengan klausa ketiga. Meskipun demikian, metode ini dianggap dapat menghasilkan rule
yang cukup baik dengan komputasi yang lebih rendah.
Pada Gambar II-4, himpunan semesta E merupakan data yang diperlukan, predikat target Q
adalah D0, dan entitas terpilih S berada di dalam elips luar. Pemilihan terhadap klausa terbaik
pada setiap stage berdasarkan pada nilai r (Persamaan II-5), dengan mencari nilai r minimum.
Permasalahan pada Induct/RDR adalah memilih antara tetap mempertahankan kaidah yang
bersifat lebih umum sesuai dengan elips luar atau menambahkan klausa sesuai dengan elips
dalam. Pada Gambar II-4, elips luar tidak hanya mencakup D0 tetapi juga D7, D8, D9, dan
II-12
sebagainya. Pada struktur RDR, diagnosa D7, D8, D9, dan sebagainya diperlakukan sebagai
eksepsi.
Kemampuan menangani eksepsi yang dimiliki Induct/RDR tidak berpengaruh pada akurasi
dari BP final. Pengaruhnya lebih pada struktur BP yaitu kecenderungan terhadap penggunaan
kaidah yang umum dengan banyak eksepsi daripada kaidah yang lebih spesifik dengan sedikit
eksepsi. Hal ini berpengaruh pada ukuran BP secara kuantitatif yaitu jumlah kaidah dan
klausa yang terlibat.
BuildRDR(Default_Class,Attrs,Training_Set)
{Fungsi ini menghasilkan kaidah RDR dengan struktur data terdiri atas
komponen Class,Clause,ifTrue,ifFalse}
Dalam algoritma pembangkitan RDR ini digunakan fungsi BestClause untuk menentukan
klausa yang akan digunakan dalam membangun rule untuk mengklasifikasikan seluruh entitas
e dalam Training_Set. Untuk membangun struktur RDR awal, sebuah kelas yang paling
banyak muncul dalam data dipilih sebagai kelas default pada top-level rule. Kemudian
algoritma membangun rule yang memiliki nilai r terkecil menggunakan fungsi BestClause
untuk kelas selain kelas default. Dalam hal ini, kelas yang dimaksud adalah kelas dengan
kejadian terbanyak dalam data setelah kelas default. Training_Set dipisahkan menjadi dua
subset, yaitu Covered jika kondisi klausa untuk rule bernilai True; dan Not_Covered jika
kondisi klausa bernilai False. Jika salah satu dari kedua subset ini masih mengandung lebih
dari satu kelas, maka BuildRDR memanggil dirinya secara rekursif pada subset tersebut.
Pemanggilan pada subset Covered menggunakan kelas pada rule, sedangkan pemanggilan
pada subset Not_Covered menggunakan kelas default. Algoritma ini menghasilkan struktur
RDR.