Anda di halaman 1dari 17

Made A.D Widyadara, M.

Kom

introducing

Reduksi Rule Set Menggunakan


Metode Induksi
Rule Set sebenarnya dapat dibangkitkan langsung dari sebuah
tabel keputusan. Tetapi hal ini menyebabkan jumlah rule menjadi
terlalu banyak. Karena itu, harus direduksi. Salah satu cara
mereduksinya adalah dengan menggunakan metode induksi.

Induksi adalah proses reasoning dari sekumpulan fakta untuk


menghasilkan sejumlah prinsip atau rule umum.

Salah satu metode induksi yang sangat mudah dipelajari


adalah algoritma ID3 (Iterative Dichotomiser 3), yang ditemukan
oleh J.Ross Quinlan tahun 1975. ID3 sebenarnya dikembangkan
dari algoritma CLS (Concept Learning System) yang ditemukan
oleh Hunt tahun 1966.

Output ID3 adalah pohon keputusan (decision tree), yang


selanjutnya dapat diterjemahkan menjadi rule set.
Untuk menentukan atribut yang paling cocok, diperlukan
Information Gain, diambil dari yang mempunyai Gain paling
tinggi.

Gain mengukur seberapa bagusnya sebuah atribut yang


diberikan mampu memisahkan training set menjadi kelas-
kelas target.
Untuk menghitung Gain, dibutuhkan Entropy. Entropy
mengukur banyaknya informasi yang dikandung dalam
sebuah atribut.
Entropy(S) = I -p(I) log2 p(I)
dimana:
p(I) adalah proporsi S mengacu ke
kelas I.
Log2 adalah logaritma basis 2.
Gain(S, A) = Entropy(S) - v (( |Sv| / |S| ) *
Entropy(Sv))

dimana:
Sv = himpunan bagian dari S yang mana atribut A
bernilai v.
|Sv| = jumlah elemen dalam Sv.
|S| = jumlah elemen dalam S.
Contoh:
Himpunan S adalah seperti berikut:
Ada 5 kelas dalam S,
yaitu level_1, level_2, level_3, informasi_lainnya, dan
bukan_anggota.
Entropy(S)
= - (2/12) log2 (2/12) - (1/12) log2 (1/12) - (1/12) log2 (1/12)
Entropy dan Gain

- (2/12) log2 (2/12) - (6/12) log2 (6/12)


= 0,430827084 + 0,298746875 + 0,298746875 + 0,430827084 +
0,5
= 1,959147917

Ada 3 atribut dalam S, yaitu status_anggota, alasan, dan masalah.

Ada 2 variasi nilai dalam status_anggota yaitu ok dan tidak_ok.


Entropy(Sok)
= - (2/6) log2 (2/6) - (1/6) log2 (1/6) - (1/6) log2 (1/6) - (2/6) log2
(2/6)
= 0,528320834 + 0,430827084 + 0,430827084 + 0,528320834 =
1,918295834

Entropy(Stidak_ok)
= - (6/6) log2 (6/6) = 0
Ada 3 variasi nilai dalam alasan
yaitu kasus_baru, kasus_lanjutan, dan informasi_lainnya.

Entropy(Skasus_baru)
= - (1/4) log2 (1/4) - (1/4) log2 (1/4) - (2/4) log2 (2/4)
Entropy dan Gain

= 0,5 + 0,5 + 0,5 = 1,5

Entropy(Skasus_lanjutan)
= - (1/4) log2 (1/4) - (1/4) log2 (1/4) - (2/4) log2 (2/4)
= 0,5 + 0,5 + 0,5 = 1,5

Entropy(Sinformasi_lainnya)
= - (2/4) log2 (2/4) - (2/4) log2 (2/4)
= 0,5 + 0,5 = 1

Gain(S, alasan)
= Entropy(S) - (4/12) * Entropy(Skasus_baru) - (4/12) *
Entropy(Skasus_lanjutan)
- (4/12) * Entropy(Sinformasi_lainnya)
= 1,959147917 - (4/12) * 1,5 - (4/12) * 1,5 - (4/12) * 1
= 1,959147917 - 0,5 - 0,5 - 0,333333333 = 0,625814584
Ada 2 variasi nilai dalam masalah yaitu serius dan tidak_serius.

Entropy(Sserius)
= - (2/6) log2 (2/6) - (1/6) log2 (1/6) - (3/6) log2 (3/6)
= 0,528320834 + 0,430827084 + 0,5 = 1,459147917
Entropy dan Gain

Entropy(Stidak_serius)
= - (1/6) log2 (1/6) - (1/6) log2 (1/6) - (1/6) log2 (1/6) - (3/6) log2
(3/6)
= 0,430827084 + 0,430827084 + 0,430827084 + 0,5 =
1,792481251

Gain(S, masalah)
= Entropy(S) - (6/12) * Entropy(Sserius) - (6/12) * Entropy(Stidak_serius)
= 1,959147917 - (6/12) * 1,459147917 - (6/12) * 1,792481251
= 1,959147917 - 0,729573958 - 0,896240626 = 0,333333333
status_anggota status_anggot
a
Berarti atribut yang diambil terlebih
dahulu adalah status_anggota
ok tidak_o
Himpunan Sok adalah seperti berikut: k
Alasan masalah layanan
kasus_baru serius level_1
kasus_baru tidak_seriu level_2
s
kasus_lanjutan serius level_1
kasus_lanjutan tidak_seriu level_3
s
informasi_lain serius informasi_lain
nya nya
informasi_lain tidak_seriu informasi_lain
nya s nya
Ada 4 kelas dalam Sok, yaitu level_1, level_2, level_3, dan
informasi_lainnya.

Entropy(Sok)
= - (2/6) log2 (2/6) - (1/6) log2 (1/6) - (1/6) log2 (1/6) - (2/6) log2
Entropy dan Gain

(2/6)
= 0,528320834 + 0,430827084 + 0,430827084 + 0,528320834 =
1,918295834

Ada 2 atribut dalam Sok, yaitu alasan dan masalah.
Ada 3 variasi nilai dalam alasan
yaitu kasus_baru, kasus_lanjutan, dan informasi_lainnya.

Entropy(Sok,kasus_baru)
= - (1/2) log2 (1/2) - (1/2) log2 (1/2)
Entropy dan Gain

= 0,5 + 0,5 = 1

Entropy(Sok,kasus_lanjutan)
= - (1/2) log2 (1/2) - (1/2) log2 (1/2)
= 0,5 + 0,5 = 1

Entropy(Sok,informasi_lainnya)
= - (2/2) log2 (2/2) = 0

Gain(Sok, alasan)
= Entropy(Sok) - (2/6) * Entropy(Sok,kasus_baru) - (2/6) *
Entropy(Sok,kasus_lanjutan)
- (2/6) * Entropy(Sok,informasi_lainnya)
= 1,918295834 - (2/6) * 1 - (2/6) * 1 - (2/6) * 0
= 1,918295834 - 0,333333333 - 0,333333333 0 = 1,251629168
Ada 2 variasi nilai dalam masalah yaitu serius dan tidak_serius.

Entropy(Sok,serius)
= - (2/3) log2 (2/3) - (1/3) log2 (1/3)
= 0,389975001 + 0,528320834 = 0,918295834
Entropy dan Gain

Entropy(Sok,tidak_serius)
= - (1/3) log2 (1/3) - (1/3) log2 (1/3) - (1/3) log2 (1/3)
= 0,528320834 + 0,528320834 + 0,528320834 = 1,584962501

Gain(Sok, masalah)
= Entropy(Sok) - (3/6) * Entropy(Sok,serius) - (3/6) *
Entropy(Sok,tidak_serius)
= 1,251629168 - (3/6) * 0,918295834 - (3/6) * 1,584962501
= 1,251629168 - 0,459147917 - 0,792481250 = 0,000000001
alasan status_anggot
a
Berarti atribut yang diambil
selanjutnya adalah alasan. ok tidak_o
alasan k
Himpunan Stidak_ok adalah seperti
berikut:
Alasan masalah layanan kasus_b
kasus_baru serius bukan_anggot aru
a kasus_lanju
kasus_baru tidak_seriu bukan_anggot tan
s a
informasi_lai
kasus_lanjutan serius bukan_anggot
nnya
a
kasus_lanjutan tidak_seriu bukan_anggot
s a
informasi_lain serius bukan_anggot
Cuma ada 1 kelas,
nya a
yaitu bukan_anggota
informasi_lain -> tidak
tidak_seriu bukan_anggot
diproses.
nya s a
status_anggot
a

ok tidak_o
alasan k bukan_angg
ota
kasus_b
aru
kasus_lanju
tan
informasi_lai
nnya

dan seterusnya...
hingga menghasilkan pohon keputusan seperti beriku
status_anggot
a

ok tidak_o
level_ alasan k bukan_ang
1
seri gota
us kasus_b
masalah
aru
level_ tidak_ser
2
ius
level_ seri
1 kasus_lanjuta
us n
masalah

level_ tidak_ser
3
ius informasi_lainn
informasi_lai ya
nnya
THEN layanan = level_1;
Rule set dibangkitkan dengan melakukan traversal
RULE 2 pohon keputusan ini, dan menghasilkan:
terhadap
IF status_anggota = ok
AND alasan = kasus_baru
AND masalah = tidak_serius
THEN layanan = level_2;

RULE 3
IF status_anggota = ok
AND alasan = kasus_lanjutan
AND masalah = serius
THEN layanan = level_1;

RULE 4
IF status_anggota = ok
AND alasan = kasus_lanjutan
AND masalah = tidak_serius
THEN layanan = level_3;

RULE 5
IF status_anggota = ok
AND alasan = informasi_lainnya
TERIMAKASIH

Anda mungkin juga menyukai