Data Mining
Pengklasifikasian: Rule-based Classifier
Catatan Kuliah untuk Bab 4
Pengantar Data Mining
oleh
Tan, Steinbach, Kumar
dialihbahasakan oleh
Tim Pengajar Konsep Data Mining
Universitas Gunadarma
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 1 © Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 2
Rule-Based Classifier
z
Mengklasifikasikan record dengan menggunakan
koleksi aturan “if…then…”
z
Aturan/Rule: (Kondisi) → y
–
dimana
Kondisi adalah konjungsi atribut-atribut
y adalah label kelas
–
LHS: aturan antecedent atau kondisi
–
RHS: rule consequent
–
Contoh aturan pengklasifikasian:
(Blood Type=Warm) ∧ (Lay Eggs=Yes) → Birds
(Taxable Income < 50K) ∧ (Refund=Yes) → Evade=No
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 3
Rule-based Classifier (Contoh)
R1: (Give Birth = no) ∧ (Can Fly = yes) → Birds
R2: (Give Birth = no) ∧ (Live in Water = yes) → Fishes
R3: (Give Birth = yes) ∧ (Blood Type = warm) → Mammals
R4: (Give Birth = no) ∧ (Can Fly = no) → Reptiles
R5: (Live in Water = sometimes) → Amphibians
Name Blood Type Give Birth Can Fly Live in Water Class human warm yes no no mammals python cold no no no reptiles salmon cold no no yes fishes whale warm yes no yes mammals frog cold no no sometimes amphibians komodo cold no no no reptiles
bat warm yes yes no mammals
pigeon warm no yes no birds
cat warm yes no no mammals
leopard shark cold yes no yes fishes turtle cold no no sometimes reptiles penguin warm no no sometimes birds porcupine warm yes no no mammals
eel cold no no yes fishes
salamander cold no no sometimes amphibians gila monster cold no no no reptiles platypus warm no no no mammals
owl warm no yes no birds
dolphin warm yes no yes mammals
eagle warm no yes no birds
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 4
Aplikasi dari Rule-Based Classifier
z
Aturan r menutupi (
covers)
contoh x ijika atribut
dari contoh tersebut memenuhi kondisi dari aturan
itu
R1: (Give Birth = no) ∧ (Can Fly = yes) → Birds
R2: (Give Birth = no) ∧ (Live in Water = yes) → Fishes
R3: (Give Birth = yes) ∧ (Blood Type = warm) → Mammals
R4: (Give Birth = no) ∧ (Can Fly = no) → Reptiles
R5: (Live in Water = sometimes) → Amphibians
The rule R1 covers a hawk => Bird
The rule R3 covers the grizzly bear => Mammal
Name
Blood Type
Give Birth
Can Fly
Live in Water
Class
hawk
warm
no
yes
no
?
grizzly bear
warm
yes
no
no
?
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 5
Lingkup Aturan dan Keakurasiannya
z
Lingkup aturan:
–
Pecahkan
record-record yang
memenuhi
antecedent aturan
z
Keakurasian aturan:
–
Pecahkan
record-record yang
memenuhi
antecedent dan
consequent aturan
Tid Refund Marital
Status
Taxable
Income Class
1
Yes
Single
125K
No
2
No
Married
100K
No
3
No
Single
70K
No
4
Yes
Married
120K
No
5
No
Divorced 95K
Yes
6
No
Married
60K
No
7
Yes
Divorced 220K
No
8
No
Single
85K
Yes
9
No
Married
75K
No
10 No
Single
90K
Yes
10(Status=Single)
→ No
Coverage = 40%, Accuracy = 50%
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 6
Cara kerja Rule-based Classifier
R1: (Give Birth = no) ∧ (Can Fly = yes) → Birds
R2: (Give Birth = no) ∧ (Live in Water = yes) → Fishes
R3: (Give Birth = yes) ∧ (Blood Type = warm) → Mammals
R4: (Give Birth = no) ∧ (Can Fly = no) → Reptiles
R5: (Live in Water = sometimes) → Amphibians
Lemur memicu aturan R3, maka ia diklasifikasikan sebagai mammal
Turtle memicu R4 dan R5
Dogfish shark tidak memicu satu aturan pun
Name Blood Type Give Birth Can Fly Live in Water Class
lemur
warm
yes
no
no
?
turtle
cold
no
no
sometimes
?
dogfish shark
cold
yes
no
yes
?
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 7
Karakteristik Rule-Based Classifier
z
Aturan Mutually exclusive
–
Pengklasifikasi (Classifier) mengandung aturan
mutually exclusive jika aturan-aturan independen satu
sama lain
–
Setiap record paling banyak dilingkupi oleh satu
aturan
z
Aturan Exhaustive
–
Classifier memiliki lingkupan exhaustive jika mencatat
untuk setiap kemungkinan kombinasi nilai atribut
–
Setiap record paling sedikit dilingkupi oleh satu aturan
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 8
Dari Pohon Keputusan ke Aturan (Rules)
YES
YES
NO
NO
NO
NO
NO
NO
Yes
No
{Married}
{Single,
Divorced}
< 80K
> 80K
Taxable
Income
Marita l
Status
Refund
Aturan bersifat mutually exclusive dan
exhaustive
Himpunan atturan mengandung Himpunan
aturan informasi sebanyak pada Pohon
Aturan Pengklasifikasian
(Refund=Yes) ==> No
(Refund=No, Marital Status={Single,Divorced}, Taxable Income<80K) ==> No (Refund=No, Marital Status={Single,Divorced}, Taxable Income>80K) ==> Yes (Refund=No, Marital Status={Married}) ==> No
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 9
Suatu Aturan dapat disederhanakan
YES
YES
NO
NO
NO
NO
NO
NO
Yes
No
{Married}
{Single,
Divorced}
< 80K
> 80K
Taxable
Income
Marita l
Status
Refund
Tid Refund Marital
Status
Taxable
Income Cheat
1
Yes
Single
125K
No
2
No
Married
100K
No
3
No
Single
70K
No
4
Yes
Married
120K
No
5
No
Divorced 95K
Yes
6
No
Married
60K
No
7
Yes
Divorced 220K
No
8
No
Single
85K
Yes
9
No
Married
75K
No
10 No
Single
90K
Yes
10Aturan Awal: (Refund=No)
∧ (Status=Married) → No
Aturan yang disederhanakan: (Status=Married)
→ No
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 10
Efek dari Penyederhanaan Aturan
z
Aturan tidak lagi bersifat mutually exclusive
–
Satu record dapat memicu lebih dari satu aturan
–
Solusi?
Himpunan aturan terurut (Ordered rule set)
Himpunan aturan terurut Unordered rule set – menggunakan
skema voting
z
Aturan tidak lagi bersifat exhaustive
–
Satu record dapat tidak memicu satupun aturan
–
Solusi?
Menggunakan kelas default
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 11
Himpunan Aturan Terurut
z
Aturan dirangking terurut sesuai dengan
prioritasnya
–
Himpunan aturan terurut dikenal sebagai daftar keputusan
z
Ketika record test disajikan ke dalam
–
Maka ia akan ditugaskan ke label kelas dari aturan dengan
ranking tertinggi yang telah dipicu
–
Jika tidak ada satupun aturan yang dikeluarkan, maka akan
ditugaskan ke kelas default
R1: (Give Birth = no) ∧ (Can Fly = yes) → Birds R2: (Give Birth = no) ∧ (Live in Water = yes) → Fishes R3: (Give Birth = yes) ∧ (Blood Type = warm) → Mammals R4: (Give Birth = no) ∧ (Can Fly = no) → Reptiles R5: (Live in Water = sometimes) → Amphibians
Name Blood Type Give Birth Can Fly Live in Water Class
turtle
cold
no
no
sometimes
?
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 12
Skema Pengurutan Aturan
z
Pengurutan berbasis Aturan (Rule-based ordering)
–
Aturan individual di rangking berdasarkan pada kualitasnya
z
Pengurutan berbasis Kelas (Class-based ordering)
–
Aturan yang dimiliki oleh kelas yang sama akan muncul
bersamaan
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 13
Membangun Aturan Pengklasifikasian
z
Metode Langsung (Direct Method):
Mengekstrak aturan langsung dari data
misal: RIPPER, CN2, Holte’s 1R
z
Metode Tidak Langsung (Indirect Method):
Ekstraksikan aturan dari model klasifikasi lainnya
(misal: pohon keputusan, neural networks, dll).
misal: aturan C4.5
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 14
Metode Langsung: Sequential Covering
1.
Mulai dari aturan hampa
2.
Kembangkan aturan menggunakan fungsi
Learn-One-Rule
3.
Hilangkan record training yang dilingkupi oleh
aturan
4.
Ulangi langkah (2) dan (3) hingga mencapai
kriteria berhenti
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 15
Contoh
Sequential Covering
(i) Data asal
(ii) Langkah 1
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 16
Contoh of Sequential Covering…
(iii) Langkah 2
R1
(iv) Langkah 3
R1
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 17
Aspek-aspek dari Sequential Covering
z
Pertumbuhan Aturan Rule Growing
z
Instance Elimination
z
Evaluasi Aturan (Rule Evaluation)
z
Kriteria Berhenti (Stopping Criterion)
z
Pemangkasan Aturan (Rule Pruning)
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 18
Rule Growing
z
Dua strategi umum
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 19
Rule Growing (Contoh)
z
Algoritma CN2 :
–
Mulai dari konjungsi hampa: {}
–
Tambahkan konjungsi yang meminimalkan pengukuran entropi
: {A}, {A,B}, …
–
Tentutkan aturan konsekwen dengan mengambil kelas mayoritas/besar
dari contoh yang dilingkupi aturan
z
Algoritma RIPPER:
–
Mulai dari aturan hampa: {} => class
–
Tambahkan konjungsi yang memaksimumkan pengukuran FOIL’s
information gain :
R0: {} => class (initial rule)
R1: {A} => class (rule after adding conjunct)
Gain(R0, R1) = t [ log (p1/(p1+n1)) – log (p0/(p0 + n0)) ]
where t: number of positive instances covered by both R0 and R1
p0: number of positive instances covered by R0
n0: number of negative instances covered by R0
p1: number of positive instances covered by R1
n1: number of negative instances covered by R1
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 20
Instance Elimination
z
Mengapa kita memerlukan
eliminate instances?
–
Jika tidak maka aturan
selanjutnya akan identik
dengan aturan sebelumnya
z
Mengapa kita menghilangkan
positive instances?
–
Untuk memastikan bahwa
aturan selanjutnya akan
berbeda
z
Mengapa kita menghilangkan
negative instances?
–
Untuk mencegah
underestimating keakurasian
aturan
–
Untuk Memmbadingkan
aturan R2 dan R3 pada
diagram
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 21
Rule Evaluation
z
Metrik:
–
Accuracy
–
Laplace
–
M-estimate
k
n
n
c
+
+
=
1
k
n
kp
n
c
+
+
=
n : Number of instances
covered by rule
n
c: Number of instances
covered by rule
k : Number of classes
p : Prior probability
n
n
c
=
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 22
Stopping Criterion and Rule Pruning
z
Stopping criterion
–
Menghitung hasil yang didapat (gain)
–
Jika gain tidak signifikan, maka jangan perhatikan
aturan yang bar
z
Rule Pruning
–
Serupa dengan pasca pemangkasan (post-pruning)
pada pohon keputusan
–
Mereduksi Error Pruning:
Hilangkan satu konjungsi dalam aturan
Bandingkan tingkat error pada himpunan validasi sebelum
dan sesudah pruning
Jika error berubah, lakukan pemangkasan pada konjungsi
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 23
Kesimpulan Metode Langsung
z
Kembangkan aturan tunggal
z
Menghilangkan Instances dari aturan
z
Lakukan Pemangkasan aturan (jika diperlukan)
z
Tambah aturan ke dalam himpunan Current Rule
z
Ulangi langkah-langkah sebelumnya
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 24
Metode Langsung : RIPPER
z
Untuk permasalahan 2-kelas, pilih satu kelas sebagai
kelas positif dan lainnya sebagai kelas negatif
–
Pelajari aturan untuk kelas positif
–
Kelas negatif sebagai kelas default
z
Untuk permasalahan banyak-kelas
–
Urutkan kelas menurut kelaziman kelas meningkat
(bagian dari instances yang dimiliki oleh kelas
tertentu)
–
Pelajari himpunan aturan untuk kelas pertama
(lakukan pertama kali) dan perlakukan sisanya
sebagai kelas negatif
–
Ulangi dengan kelas terkecil selanjutnya sebagai
kelas positif
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 25
Metode Langsung : RIPPER
z
Mengembangkan aturan:
–
Mulai dari aturan hampa
–
Tambah konjungsi apabila dapat merubah FOIL’s
information gain
–
Berhenti ketika aturan tidak lagi melingkupi
conoth-contoh negatif
–
Pangkas aturan segera, menggunakan incremental
reduced error pruning
–
Mengukur nilai pruning: v = (p-n)/(p+n)
p: banyaknya contoh positif yang dilingkupi aturan dalam
himpinan validasi
n: banyaknya contoh negative yang dilingkupi aturan dalam
himpinan validasi
–
Metode Pangkas: Hapus semua barisan akhir dari
kondisi yang memaksimumkan v
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 26
Metode Langsung : RIPPER
z
Membangun himpunan Aturan:
–
Menggunakan algoritma sequential covering
Cari aturan terbaik yang melingkupi himpunan
sekarang/terbaru dari contoh positif
Eliminasi contoh positif dan negatif yang dilingkupi
aturan
–
Pada setiap aturan ditambahkan ke dalam
himpunan aturan, maka hitung panjang
deskripi yang baru
hentikan penambahan aturan baru ketika panjang
deskripsi yang baru lebih panjang d bits dibanding
panjang deskripsi terkecil yang pernah didapat
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 27
Metode Langsung : RIPPER
z
Optimalkan himpunan aturan:
–
Untuk setiap aturan r dalam himpunan aturan R
Pertimbangkan 2 aturan alternatif:
– Aturan Penggantian (r*): mengembagkan aturan baru dari mula
– Aturan Revisi (r’): tambahkan konjungsi untuk memperluas aturanadd
r
Bandingkan himpunan aturan r terhadap himpunan aturan r*
dan r’
Pilih himpunan aturan yang meminimumkan prinsip MDL
–
Ulangi pembangkitan aturan dan pengoptimalan
aturan untuk sisa-sisa contoh positif
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 28
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 29
Metode Tidak Langsung : C4.5rules
z
Ekstrak aturan dari pohon aturan yang tidak
dipangkas (unprunned)
z
Untuk tiap aturan, r: A → y,
–
Pertimbangkan aturan alternatif r’: A’
→ y
diman A’ didapat dengan memindahkan satu
konjungsi di A
–
Bandingkan tingkat error pessimistic untuk r
terhadap semua r
–
Pangkas jika satu dari rmempunyai tingkat
error pessimistic lebih rendah
–
Ulangi sampai kita tidak dapat merubah error
generalisasi
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 30
Metode Tidak Langsung : C4.5rules
z
Lakukan pengurutan subset dari aturan
(pengurutan kelas)
–
Setiap subset adalah koleksi aturan-aturan
dengan aturan selanjutnya yang sama (kelas)
–
Hitung panjang deskripsi untuk setiapsubset
Panjang deskripsi = L(error) + g L(model)
g adalah parameter yang dibutuhkan kedalam
akun kemunculan dari atribut redundan dalam
himpunan aturan (nilai default = 0.5)
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 31
Contoh
Name Give Birth Lay Eggs Can Fly Live in Water Have Legs Class
human
yes
no
no
no
yes
mammals
python
no
yes
no
no
no
reptiles
salmon
no
yes
no
yes
no
fishes
whale
yes
no
no
yes
no
mammals
frog
no
yes
no
sometimes yes
amphibians
komodo
no
yes
no
no
yes
reptiles
bat
yes
no
yes
no
yes
mammals
pigeon
no
yes
yes
no
yes
birds
cat
yes
no
no
no
yes
mammals
leopard shark yes
no
no
yes
no
fishes
turtle
no
yes
no
sometimes yes
reptiles
penguin
no
yes
no
sometimes yes
birds
porcupine
yes
no
no
no
yes
mammals
eel
no
yes
no
yes
no
fishes
salamander
no
yes
no
sometimes yes
amphibians
gila monster
no
yes
no
no
yes
reptiles
platypus
no
yes
no
no
yes
mammals
owl
no
yes
yes
no
yes
birds
dolphin
yes
no
no
yes
no
mammals
eagle
no
yes
yes
no
yes
birds
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 32
C4.5 versus C4.5rules versus RIPPER
C4.5rules:
(Give Birth=No, Can Fly=Yes) → Birds (Give Birth=No, Live in Water=Yes) → Fishes (Give Birth=Yes) → Mammals
(Give Birth=No, Can Fly=No, Live in Water=No) → Reptiles ( ) → Amphibians
Give
Birth?
Live In
Water?
Can
Fly?
Mammals
Fishes
Amphibians
Birds
Reptiles
Yes
No
Yes
Sometimes
No
Yes
No
RIPPER:
(Live in Water=Yes) → Fishes (Have Legs=No) → Reptiles
(Give Birth=No, Can Fly=No, Live In Water=No) → Reptiles
(Can Fly=Yes,Give Birth=No) → Birds () → Mammals
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 33
C4.5 versus C4.5rules versus RIPPER
PREDICT ED CLASS
Amphibians Fishes
Reptiles Birds
M ammals
ACT UAL Amphibians
0
0
0
0
2
CLASS
Fishes
0
3
0
0
0
Reptiles
0
0
3
0
1
Birds
0
0
1
2
1
M ammals
0
2
1
0
4
PREDICT ED CLASS
Amphibians Fishes
Reptiles Birds
M ammals
ACT UAL Amphibians
2
0
0
0
0
CLASS
Fishes
0
2
0
0
1
Reptiles
1
0
3
0
0
Birds
1
0
0
3
0
M ammals
0
0
1
0
6
C4.5 dan C4.5rules:
RIPPER:
© Tan,Steinbach, Kumar Pengantar Data Mining 4/18/2004 34