• Tidak ada hasil yang ditemukan

Data mining merupakan proses ekstraksi informasi data berukuran besar (Han & Kamber 2006). Dari sudut pandang analisis data, data mining dapat diklasifikasikan menjadi dua kategori yaitu descriptive data mining dan predictive data mining. Descriptive data mining fokus untuk menemukan pola yang mendeskripsikan data yang dapat diinterprestasikan oleh manusia. Predictive data mining melibatkan beberapa variabel dalam himpunan data untuk memprediksikan nilai variabel lain yang tidak diketahui (Kantardzic 2003).

Klasifikasi

Klasifikasi termasuk ke dalam kategori predictive data mining. Klasifikasi adalah proses menemukan model (fungsi) yang menjelaskan dan membedakan kelas-kelas atau konsep, dengan tujuan agar model yang diperoleh dapat digunakan untuk mengetahui kelas atau objek yang memiliki label kelas yang tidak diketahui. Model yang diturunkan didasarkan pada analisis dari training data (Han & Kamber 2006).

Proses klasifikasi dibagi menjadi dua fase yaitu learning dan testing. Pada fase learning, sebagian data yang telah diketahui kelas datanya (training set) digunakan untuk membentuk model. Selanjutnya pada fase testing, model yang sudah terbentuk diuji dengan sebagian data lainnya (test set) untuk mengetahui akurasi dari model tersebut. Jika akurasinya mencukupi maka model tersebut dapat dipakai untuk prediksi kelas data yang belum diketahui (Han & Kamber 2006).

Logika Fuzzy

Konsep logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A. Zadeh dari Universitas California pada tahun 1965. Logika fuzzy merupakan generalisasi dari

logika klasik (Boolean atau Crisp). Dalam logika fuzzy nilai kebenaran suatu pernyataan berkisar dari sepenuhnya benar ke sepenuhnya salah (Cox 2005).

Inti dari logika fuzzy adalah himpunan fuzzy (fuzzy set) (Cox 2005). Himpunan fuzzy adalah himpunan tanpa batas tegas (crisp boundary) (Kantardzic 2003). Setiap elemen dari himpunan fuzzy memiliki derajat keanggotaan. Derajat keanggotaan menunjukkan nilai keanggotaan suatu objek pada suatu himpunan. Nilai keanggotaan ini berkisar antara 0 sampai 1. Dengan teori himpunan fuzzy suatu objek dapat menjadi anggota dari banyak himpunan dengan derajat keanggotaan yang berbeda dalam masing- masing himpunan (Cox 2005).

Fungsi Keanggotaaan

Inti dari himpunan fuzzy adalah fungsi keanggotaan (membership function). Fungsi keanggotaan menggambarkan hubungan antara domain himpunan fuzzy dengan nilai derajat keanggotaan (Cox 2005).

Jika X adalah kumpulan objek yang ditandai secara umum oleh x, maka himpunan fuzzy A pada X didefinisikan sebagai berikut:

(

)

{

x A x x X

}

A= ,μ ( ) | ∈

dimana μA(x) adalah fungsi keanggotaan

untuk himpunan fuzzy A. Fungsi keanggotaan memetakan setiap elemen dari X ke nilai derajat keanggotaan (Kantardzic 2003).

Salah satu bentuk fungsi keanggotaan adalah trapezoidal. Fungsi keanggotaan trapezoidal dispesifikasi oleh empat parameter (a, b, c, d) sebagai berikut.

⎪ ⎪ ⎩ ⎪ ⎪ ⎨ ⎧ ≤ ≤ ≤ − − ≤ ≤ ≤ ≤ − − ≤ = x d d x c c d x d c x b b x a a b a x a x x A ; 0 ; ) /( ) ( ; 1 ; ) /( ) ( ; 0 ) ( μ

Bentuk fungsi keanggotaan trapezoidal dapat dilihat pada Gambar 1 (Kantardzic 2003).

3

Fuzzy ID3 Decision Tree

Decision tree merupakan suatu pendekatan yang sangat populer dan praktis dalam machine learning untuk menyelesaikan permasalahan klasifikasi (Liang 2005). Decision tree sama dengan satu himpunan aturan IF...THEN (Marsala 1998). Decision tree terdiri internal node menggambarkan data yang diuji, setiap cabang (branch) menggambarkan nilai keluaran dari data yang diuji, dan leaf node menggambarkan distribusi kelas dari data yang digunakan. Decision tree digunakan untuk mengklasifikasikan suatu sampel data yang tidak dikenal (Han & Kamber 2006).

Fuzzy decision tree merupakan metode perluasan dari decision tree. Fuzzy decision tree menggunakan teori himpunan fuzzy untuk merepresentasikan himpunan data (Liang 2005). Manfaat dari teori fuzzy dalam decision tree adalah meningkatkan kemampuan dalam memahami decision tree ketika digunakan atribut-atribut kuantitatif dan meningkatkan ketahanan saat melakukan klasifikasi kasus-kasus baru (Marsala 1998).

Algoritme ID3 (Iterative Dichotomiser 3) pertama kali diperkenalkan oleh J. Rose Quilan pada tahun 1986. Algoritme fuzzy ID3 merupakan algoritme yang efisien untuk membuat suatu fuzzy decision tree. Algoritme fuzzy ID3 adalah sebagai berikut (Liang 2005):

1 Create a Root node that has a

set of fuzzy data with membership value 1

2 If a node t with a fuzzy set of

data D satisfies the following

conditions, then it is a leaf node and assigned by the class name.

• The proportion of a class Ck

is greater than or equal to

Өx, r D Ci D θ ≥ | | | |

• the number of a data set is

less than θn

• there are no attributes for

more classifications

3 If a node D does no satisfy the above conditions, then it is not a leaf-node. And an new sub-node is generated as follow:

• For Ai’s (i=1,…, L)

calculate the information

gain, and select the test

attribute Amax that

maximizes them.

• Divide D into fuzzy subset

D1 , ..., Dm according to

Amax , where the membership

value of the data in Dj is

the product of the

membership value in D and

the value of Fmax,j of the

value of Amax in D.

• Generate new nodes t1 , …,

tm for fuzzy subsets D1 ,

... , Dm and label the fuzzy

sets Fmax,j to edges that

connect between the nodes tj and t

• Replace D by Dj (j=1, 2, …,

m) and repeat from 2 recursively.

Dalam pembangunan tree, dilakukan ekspansi tree dan evaluasi dengan nilai threshold. Ada dua nilai threshold yaitu (Liang 2005):

1 Fuzziness control threshold (FCT) / θr

Jika proporsi himpunan data dari kelas Ck

lebih besar atau sama dengan nilai threshold θr, maka ekspansi tree

dihentikan.

2 Leaf decision threshold (LDT) / θn

Jika banyaknya anggota himpunan data pada suatu node lebih kecil dari threshold θn, maka ekspansi tree dihentikan.

Fuzzy Entropy dan Information Gain

Information gain adalah suatu nilai statistik yang digunakan untuk memilih atribut yang akan mengekspansi tree dan menghasilkan node baru pada algoritme ID3. Suatu entropy dipergunakan untuk mendefinisikan nilai information gain (Liang 2005).

Berikut persamaan untuk mencari nilai fuzzy entropy dari keseluruhan data:

( )

( )

( )

i N i i s f S H S P P H = =

− *log2

dengan Pi adalah rasio dari kelas Ci pada

himpunan contoh S = {x1, x2,…,xk } (Liang

2005). Untuk menentukan fuzzy entropy dan information gain dari suatu atribut A pada algoritma fuzzy ID3 (FID3) digunakan persamaaan berikut: S N j ij C i S N j ij A S f H ∑ ∑ = ∑ − = 1 μ log2 μ ) , (

4

(

Sv A

)

f H N A v S V S S f H f G = ( )−∑ ⊆ ∗ ,

dengan μij adalah nilai keanggotaan dari pola

ke-j untuk kelas ke-i. Hf(S) menunjukkan

entropy dari himpunan S dari data pelatihan pada node. |Sv| adalah ukuran dari subset

S

S

v

dari data pelatihan xj dengan atribut

v. |S| menunjukkan ukuran dari himpunan S (Liang 2005).

Sistem Inferensi Fuzzy

Sistem inferensi fuzzy adalah suatu framework yang didasarkan pada konsep himpunan fuzzy, fuzzy if-then rules, dan fuzzy reasoning. Salah satu metode inferensi fuzzy yang paling umum digunakan adalah metode sistem inferensi fuzzy Mamdani. Struktur dasar dari sistem inferensi fuzzy terdiri dari tiga komponen yaitu (Jang et al 1997):

1 rule base, terdiri dari aturan-aturan fuzzy (fuzzy rules),

2 database/dictionary, mendefinisikan fungsi keanggotaan yang digunakan pada aturan fuzzy, dan

3 reasoning mechanism, melakukan proses inferensi pada aturan dan fakta yang diberikan untuk memperoleh output atau kesimpulan.

Fuzzy C-Means (FCM)

Fuzzy C-Means atau Fuzzy ISODATA, merupakan algoritme clustering data di mana setiap titik data masuk dalam sebuah cluster dengan ditandai oleh derajat keanggotaan yang bernilai antara 0 dan 1. Oleh karena itu, sebuah titik data dapat menjadi anggota untuk beberapa cluster. FCM ini dimodifikasi oleh Jim Bezdek pada tahun 1973 dari teknik hard C-means (HCM). FCM membagi sebuah koleksi dari n data vektor xi (i = 1, ..., n)

menjadi c kelompok fuzzy, dan menemukan sebuah pusat cluster (cluster center) untuk setiap kelompok di mana meminimalisasi ukuran ketidakmiripan dari fungsi objektif (Jang et al 1997).

K-fold Cross Validation

K-fold cross validation dilakukan untuk membagi training set dan testing set. K-fold cross validation mengulang k-kali untuk membagi sebuah himpunan contoh secara acak menjadi k subset yang saling bebas. Setiap ulangan disisakan satu subset untuk pengujian dan subset lainnya untuk pelatihan (Fu 1994).

Algoritme Genetika

Konsep dasar algoritme genetika (AG) pertama kali dicetuskan pada tahun 1975 oleh John H. Holland dalam bukunya yang berjudul Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelegence (Cox 2005). Algoritme genetika adalah suatu teknik proses komputasi yang pada dasarnya meniru teori evolusi alamiah (Michalewicz 1996).

Menurut Michalewicz (1996), algoritme genetika harus memiliki lima komponen berikut:

1 Representasi genetik untuk solusi-solusi yang potensial pada permasalahan. 2 Cara untuk menciptakan suatu inisialisasi

populasi dari solusi-solusi yang potensial. 3 Fungsi evaluasi yang menilai solusi

dalam kaitannya dengan nilai fitness.

4 Operator-operator genetik yang mengubah komposisi anak (children).

5 Nilai-nilai dari berbagai macam parameter yang digunakan dalam algoritme genetika (ukuran populasi dan peluang-peluang yang akan diterapkan pada operator genetik).

Algoritme genetika adalah sebagai berikut (Lawrence 1991):

1 Initialize a population of chromosomes.

2 Evaluate each chromosomes in the population.

3 Create new chromosomes by

mating current chromosomes; apply mutation and recombination as the parent chromosomes mate.

4 Delete members of the

population to make room for the new chromosomes.

5 Evaluate the new chromosomes and insert them into the population.

6 If time is up, stop and return the best chromosomes; if not, go to 3.

Pada algoritma genetika terdapat proses- proses utama yang menjadi prinsip utama dalam evolusi, yaitu rekombinasi (crossover) dan mutasi (mutation). Algoritme ini menggunakan sistem seleksi alamiah (selection) terhadap individu baru yang muncul dari evolusi individu sebelumnya. Individu solusi yang dihasilkan diharapkan

5

merupakan individu solusi yang terbaik (Michalewicz 1996).

Encoding Kromosom dan Inisialisasi Populasi

Algoritme genetika dimulai dengan membuat representasi dari solusi untuk suatu permasalahan. Hal ini disebut encoding. Encoding schema merupakan cara menerjemahkan masalah ke dalam framework algoritme genetika. Beberapa Encoding schema yaitu binary, negative, floating-point, dan discrete-value numbers. Pada umumnya, algoritme genetika menggunakan binary- coding schema untuk merepresentasikan solusi. Sekumpulan nilai yang diencode menjadi bit string, menyatakan satu kromosom (Kantardzic 2003).

Pada algoritme genetika, yang dievaluasi bukan satu kromosom tetapi sekumpulan kromosom yang disebut populasi (Kantardzic 2003). Jumlah kromosom dalam populasi tergantung pada jumlah variabel dalam pencarian (Cox 2005). Populasi diinisialisasi secara acak dengan pertimbangan ukuran populasi (pop-size) (Kantardzic 2003).

Evaluasi Fitness

Fitness merupakan suatu ukuran yang digunakan untuk membandingkan solusi- solusi dan menentukan solusi yang lebih baik. Nilai fitness dapat ditentukan dari rumus hasil analisis yang kompleks, model simulasi, dan pengamatan dari percobaan atau permasalahan nyata (Kantardzic 2003).

Elitisme

Elitisme adalah proses mempertahankan kromosom dengan nilai fitness terbaik dengan cara menyalin kromosom dengan fitness terbaik ke generasi selanjutnya. Elitisme digunakan dengan dikombinasikan dengan teknik seleksi untuk menjaga kromosom dengan fitness terbaik tetap bertahan hingga generasi berikutnya (Cox 2005).

Seleksi (Selection)

Seleksi (selection) adalah proses memilih populasi yang relatif baik (nilai fitness baik) untuk dilakukan rekombinasi dan mutasi (Cox 2005). Salah satu metode seleksi yang banyak digunakan yaitu roulette wheel. Roulette wheel menyeleksi populasi baru dengan distribusi probabilitas yang berdasarkan nilai fitness. Algoritme seleksi roulette wheel adalah berikut ini (Michalewicz 1996):

1 Hitung nilai fitness eval(vi) untuk setiap

kromosom vi ( i = 1, ..., pop_size).

2 Hitung total fitness untuk populasi:

( )

= =pop size i i v eval F _ 1 )

3 Hitung peluang seleksi pi untuk setiap

kromosom vi ( i = 1, ..., pop_size).

( )

F v eval p i i =

4 Hitung peluang kumulatif qi untuk setiap

kromosom vi( i = 1, ..., pop_size).

= = i j j i p q 1

5 Proses seleksi dimulai dengan memutar roulette wheel sebanyak ukuran populasi (pop-size) kali. Pada sekali putaran, sebuah kromosom dipilih untuk membentuk populasi yang baru dengan cara berikut:

• Bangkitkan sebuah bilangan acak r pada selang [0, 1].

• Jika r < q1 maka pilih kromosom

pertama (v1); selainnya pilih

kromosom ke-i vi (2 ≤ i pop_size)

sehingga qi-1 < r < qi.

Rekombinasi (Crossover)

Rekombinasi (crossover) adalah proses pembentukan kromosom baru dengan menggabungkan dua atau lebih kromosom relatif baik (Cox 2005). Ada beberapa teknik untuk melakukan rekombinasi yaitu rekombinasi satu titik (one-point) dan rekombinasi dua titik (two-point). Rekombinasi satu titik memilih titik rekombinasi pada kode genetik secara acak dan kromosom dua parent dipertukarkan pada titik ini. Rekombinasi dua titik memilih dua titik rekombinasi dan bagian kromosom diantara dua titik ini ditukar untuk menghasilkan dua anak (children) dari generasi baru. Rekombinasi satu titik dan rekombinasi dua titik dapat dilihat pada Gambar 2 (Kantardzic 2003).

Gambar 2 Operator rekombinasi.

b) Rekombinasi dua titik Titik untuk rekombinasi dua titik Titik untuk rekombinasi satu titik

a) Rekombinasi satu titik

1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0

6

Tingkat rekombinasi (crossover rate / pc)

menyatakan peluang kromosom akan dipilih untuk rekombinasi. Pada umumnya, nilai tingkat rekombinasi sebesar 0.5 hingga 0.9 merupakan nilai perkiraan tingkat rekombinasi yang baik (Cox 2005).

Rekombinasi dibentuk dengan cara melakukan tiga langkah berikut secara berulang sebanyak jumlah kromosom dalam populasi (Michalewicz 1996).

1 Bangkitkan sebuah bilangan acak r pada selang [0, 1].

2 Jika r < pc , maka kromosom tersebut

dipilih untuk rekombinasi.

3 Untuk setiap pasang kromosom terpilih, bangkitkan bilangan acak pada selang [1, L-1] (L = panjang kromosom). Bilangan ini menunjukkan posisi titik rekombinasi.

Mutasi (Mutation)

Mutasi (mutation) adalah proses untuk menghasilkan kromosom yang relatif lebih baik dengan mengubah allele (nilai dari solusi/kromosom). Operator mutasi yang sering digunakan adalah mutasi pembalikan yang melakukan pembalikan gen secara acak untuk membentuk individu baru (Cox 2005) (Michalewicz 1996). Mutasi pembalikan dapat dilihat pada Gambar 3 (Kantardzic 2003).

Gambar 3 Operator mutasi.

Tingkat mutasi (mutation rate / pm)

menyatakan peluang sebuah gen mengalami perubahan melalui teknik mutasi. Pada umumnya, nilai tingkat mutasi sangat rendah. Nilai tingkat mutasi sebesar 0.01 hingga 1/ukuran populasi merupakan nilai perkiraan yang baik untuk nilai tingkat mutasi (Cox 2005).

Mutasi dibentuk dengan cara melakukan dua langkah berikut secara berulang sebanyak jumlah gen dalam populasi (Michalewicz 1996).

1 Bangkitkan sebuah bilangan acak r pada selang [0, 1].

2 Jika r < pm , maka gen tersebut mengalami

mutasi.

Terminasi Algoritme Genetika

Kriteria algoritme genetika untuk berhenti yaitu:

1 maksimum generasi telah dicapai, 2 waktu eksekusi yang telah cukup lama,

3 satu atau lebih kromosom memiliki nilai fitness yang memenuhi fungsi objektif, 4 fungsi fitness terbaik pada generasi

selanjutnya telah stabil.

Dokumen terkait