Dokumen tersebut membahas tentang klasifikasi data mining, meliputi definisi klasifikasi, langkah-langkah klasifikasi, contoh task klasifikasi, teknik klasifikasi seperti decision tree dan Naive Bayes, serta parameter evaluasi model."
3. Definisi Klasifikasi
Terdapat sejumlah record (training set )
–Tiap record terdiri dari sejumlah atribut dan
salah satunya merupakan atribut kelas /label.
Cari model untuk atribut kelas sebagai
fungsi nilai dari atribut lain.
Tujuannya: record yang belum diketahui
kelasnya akan diberi label seakurat
mungkin.
–Untuk mengetahui dan menEntukan tingkat akurasi
model maka digunakan test set.
–Biasanya dataset akan dibagi menjadi dua bagian yang
pertama untuk pembangunan model (training) dan yang
kedua sebagai data untuk memvalidasi model tersebut
(test set)
3
4. Illustrasi
Sepal L Sepal W Petal L Petal W Type
5.4 3.9 1.7 0.4 Iris Setosa
4.6 3.4 1.4 0.3 Iris setosa
6.0 2.7 5.1 1.6 Iris-versicolor
5.4 3.0 4.5 1.5 Iris versi-color
5.5 2.6 4.4 1.2 Iris versicolor
7.7 2.8 6.7 2.0 Iris-virginica
5.6 2.8 4.9 2.0 Iris-virginica
Class Attribute
4
5. 2 Langkah dalam Klasifikasi
1. Pembangunan Model: dengan
mendeskripsikan kelas yang sudah
ditentukan sebelumnya.
Tiap tuple/sample diasumsikan termasuk dalam
salah satu kelas yang ditunjukkan oleh atribut kelas
Tuple atau record yang digunakan untuk
pembangunan model disebut sebagai training set
Model yang dihasilkan bisa berupa: rule klasifikasi,
decision trees, atau rumus matematika
5
6. 2. Pengujian Model: untuk mengklasifikasikan objek yg
selanjutnya atau yg belum diketahui kelasnya
Perhitungan akurasi model
▪ Label test set yang sebenarnya akan dibandingkan dengan
hasil pelabelan test set dari penggunaan model
▪ Tingkat akurasi adalah persentase test set yang terklasifikasi
dengan benar oleh model
▪ Test set independen terhadap training set, jika tidak maka
kondisi over-fitting akan terjadi
Jika akurasi dapat diterima, maka model bisa digunakan untuk
mengklasifikasikan data yang labelnya belum diketahui
3. Menggunakan Model untuk mengklasifikasikan tuple yang
belumdiketahui kelasnya
7. Proses Klasifikasi (1):
Pembangunan Model
7
Training
Data
NAMA GRADE YEARS TENURED
Mike Assistant Prof 3 no
Mary Assistant Prof 7 yes
Bill Professor 2 yes
Jim Associate Prof 7 yes
Dave Assistant Prof 6 no
Anne Associate Prof 3 no
Algoritma klasifikasi
IF rank = ‘professor’
OR years > 6
THEN tenured = ‘yes’
Classifier
(Model)
8. Proses Klasifikasi (2):
Penggunaan Model untuk Prediksi
8
Classifier
Testing
Data
NAME RANK YEARS TENURED
Tom Assistant Prof 2 no
Merlisa Associate Prof 7 no
George Professor 5 yes
Joseph Assistant Prof 7 yes
Unseen Data
(Jeff, Professor, 4)
Tenured?
9. Contoh Task Klasifikasi
Memprediksi sel tumor jinak atau ganas
Mengklasifikasikan transaksi kartu
kredit yang sah atau tidak
Mengklasifikasikan struktur protein
sebagai alpha-helix, beta-sheet, atau
random coil
Kategorisasi berita dalam finance,
weather, entertainment, sports, dll
9
10. Teknik Klasifikasi
Metode Berdasarkan Decision Tree
Metode Berdasarkan Rule
Memory based reasoning
Neural Networks
Naïve Bayes dan Bayesian Belief Networks
Support Vector Machines
Lainnya : KNN ( K-Nearest Neighbor), Algoritma
Genetika, Regresi,dll
10
13. Contoh Decision Tree
13
age income student credit_rating buys_computer
<=30 high no fair no
<=30 high no excellent no
31…40 high no fair yes
>40 medium no fair yes
>40 low yes fair yes
>40 low yes excellent no
31…40 low yes excellent yes
<=30 medium no fair no
<=30 low yes fair yes
>40 medium yes fair yes
<=30 medium yes excellent yes
31…40 medium no excellent yes
31…40 high yes fair yes
>40 medium no excellent no
age?
overcast
student? credit rating?
no yes fair
excellent
>40
no no
yes yes
yes
30..40
<=30
Model: DecisionTree
Training Data
Splitting Attributes
Class
14. Contoh Lain Decision Tree
14
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
10
MarSt
Refund
TaxInc
YES
NO
NO
NO
Yes No
Married
Single,
Divorced
< 80K > 80K
15. Task Klasifikasi
berdasarkan Decision Tree
Apply
Model
Induction
Deduction
Learn
Model
Model
Tid Attrib1 Attrib2 Attrib3 Class
1 Yes Large 125K No
2 No Medium 100K No
3 No Small 70K No
4 Yes Medium 120K No
5 No Large 95K Yes
6 No Medium 60K No
7 Yes Large 220K No
8 No Small 85K Yes
9 No Medium 75K No
10 No Small 90K Yes
10
Tid Attrib1 Attrib2 Attrib3 Class
11 No Small 55K ?
12 Yes Medium 80K ?
13 Yes Large 110K ?
14 No Small 95K ?
15 No Large 67K ?
10
Test Set
Tree
Induction
algorithm
Training Set
15
16. Penggunaan Model
terhadap Test Data
16
Refund
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single, Divorced
< 80K > 80K
Refund Marital
Status
Taxable
Income Cheat
No Married 80K ?
10
Test Data
Start from the root of tree.
17. Penggunaan Model
terhadap Test Data
17
Refund
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single, Divorced
< 80K > 80K
Refund Marital
Status
Taxable
Income Cheat
No Married 80K ?
10
Test Data
18. Penggunaan Model
terhadap Test Data
18
Refund
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single, Divorced
< 80K > 80K
Refund Marital
Status
Taxable
Income Cheat
No Married 80K ?
10
Test Data
19. Penggunaan Model
terhadap Test Data
19
Refund
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single, Divorced
< 80K > 80K
Refund Marital
Status
Taxable
Income Cheat
No Married 80K ?
10
Test Data
20. Penggunaan Model
terhadap Test Data
20
Refund
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single, Divorced
< 80K > 80K
Refund Marital
Status
Taxable
Income Cheat
No Married 80K ?
10
Test Data
21. Penggunaan Model
terhadap Test Data
21
Refund
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single, Divorced
< 80K > 80K
Refund Marital
Status
Taxable
Income Cheat
No Married 80K ?
10
Test Data
Assign Cheat to “No”
22. Induksi Tree
Algoritma Dasar (algoritma greedy)
Tree dibangun secara top-down recursive divide-and-conquer
Awalnya, semua training examples sebagai root
Atribut kategoris (jika kontinu, maka harus didiskritkan lebih
dulu)
Examples dipartisi secara rekursif berdasarkan atribut
tertentu
Atribut Test dipilih berdasarkan perhitungan heuristik atau
statistik (contoh: information gain)
Kondisi untuk berhenti mempartisi:
Semua samples di node tersebut merupakan kelas yang sama
Tidak ada atribut lagi untuk dipartisi– majority voting
digunakan untuk mengklasifikasikan leaf
Samples sudah habis
22
24. Splitting berdasar
Atribut Nominal
24
Multi-way split: jumlah partisi sesuai dengan
jumlah distinct values.
Binary split: membagi nilai menjadi 2 subset
dan mencari yang paling optimal
TipeMobil
Family
Sports
Luxury
{Family,
Luxury} {Sports}
{Sports,
Luxury} {Family} OR
TipeMobil TipeMobil
25. Splitting berdasar
Atribut Ordinal
25
Multi-way split: jumlah partisi sesuai dengan
jumlah distinct values.
Binary split: membagi nilai menjadi 2 subset dan
mencari yang paling optimal
.
Bagaimana split ini?
Ukuran
Small
Medium
Large
Ukuran
{Medium,
Large} {Small}
Ukuran
{Small,
Medium} {Large}
atau
Ukuran
{Small,
Large} {Medium}
26. Splitting berdasar
Atribut Kontinu
Diskretisasi menjadi bentuk atribut
kategoris ordinal
▪ Static – discretize once at the beginning
▪ Dynamic – ranges bisa ditentukan dengan
cara equal interval bucketing, equal frequency
bucketingv(percentiles), atau clustering.
Binary Decision: (A < v) or (A v)
▪ memperhitungkan semua kemungkinan split
dan mencari yang paling baik
▪ Secara komputasi harus intensif
26
28. Menentukan Best Split
Own
Car?
C0: 6
C1: 4
C0: 4
C1: 6
C0: 1
C1: 3
C0: 8
C1: 0
C0: 1
C1: 7
Car
Type?
C0: 1
C1: 0
C0: 1
C1: 0
C0: 0
C1: 1
Student
ID?
...
Yes No Family
Sports
Luxury c1
c10
c20
C0: 0
C1: 1
...
c11
28
Sebelum Splitting: 10 record : Class 0,
10 record : Class 1
Mana yang terbaik?
29. Menentukan Best Split
Own
Car?
C0: 6
C1: 4
C0: 4
C1: 6
C0: 1
C1: 3
C0: 8
C1: 0
C0: 1
C1: 7
Car
Type?
C0: 1
C1: 0
C0: 1
C1: 0
C0: 0
C1: 1
Student
ID?
...
Yes No Family
Sports
Luxury c1
c10
c20
C0: 0
C1: 1
...
c11
29
Sebelum Splitting: 10 record : Class 0,
10 record : Class 1
Mana yang terbaik?
30. Menentukan Best Split
C0: 5
C1: 5
C0: 9
C1: 1
30
Pendekatan Greedy :
Node dengan distirbusi kelas yang homogen yang
dipilih
Perlu pengukuran node impurity:
Non-homogeneous,
High degree of impurity
Homogeneous,
Low degree of impurity
32. Pengukuran Impurity: GINI
Gini Index untuk node t :
(NOTE: p( j | t) adalah frekuensi relatif class j padanode t).
–Maximum (1 - 1/nc) jika record terdistribusi
merata untuk semua kelas,
–Minimum (0.0) jika semua records adalah satu
kelas
32
j
t
j
p
t
GINI 2
)]
|
(
[
1
)
(
C1 0
C2 6
Gini=0.000
C1 2
C2 4
Gini=0.444
C1 3
C2 3
Gini=0.500
C1 1
C2 5
Gini=0.278
34. Splitting berdasarkan GINI
Digunakan pada CART, SLIQ, SPRINT.
Saat node p dibagi jadi k partisi
(children), kualitas split dihitung sebagai
,
dimana, ni = jumlah record pada child i,
n = jumlah record pada node p.
34
k
i
i
split i
GINI
n
n
GINI
1
)
(
35. Atribut Binary : Menghitung GINI Index
l Split jadi 2 partisi
l cek yang akan menghasilkan purity yang lebih
baik
35
B?
Yes No
Node N1 Node N2
Parent
C1 6
C2 6
Gini = 0.500
N1 N2
C1 5 1
C2 2 4
Gini=0.333
Gini(N1)
= 1 – (5/6)2 – (2/6)2
= 0.194
Gini(N2)
= 1 – (1/6)2 – (4/6)2
= 0.528
Gini(Children)
= 7/12 * 0.194 +
5/12 * 0.528
= 0.333
36. Atribut kategoris : Menghitung GINI Index
Untuk tiap distinct value, hitung
distribusi kelasnya
Gunakan count matrix untuk
menentukan pilihan
36
CarType
{Sports,
Luxury}
{Family}
C1 3 1
C2 2 4
Gini 0.400
CarType
{Sports}
{Family,
Luxury}
C1 2 2
C2 1 5
Gini 0.419
CarType
Family Sports Luxury
C1 1 2 1
C2 4 1 1
Gini 0.393
Multi-way split
Two-way split
(find best partition of values)
37. Atribut kontinu : Menghitung GINI Index
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
10
Taxable
Income
> 80K?
Yes No
37
Menggunakan Binary Decisions
berdasarkan satu nilai
Terdapat beberapa pilihan untuk splitting
value yaitu sejumlah distinct value
Setiap splitting value memiliki matrix
perhitungan
Jumlah Class dalam tiap partisi untuk,
A < v dan A v
Cara mudah memilih v terbaik adalah
Untuk tiap v, scan database untuk
mendapat matriks jumlah lalu
komputasi Gini index
Secara komptuasi tidak efisien banyak
terjadi repetisi
38. Atribut kontinu : Menghitung GINI Index...
38
Untuk komputasi yang lebih efisien : maka pada tiap atribut
harus dilakukan
Urutkan atribut berdasarkan nilai
Gunakan linear scan, update matrix jumlah dan simpan hasil
perhitungan gini index
Pilih poisi split yang memiliki gini terendah/terkecil
Cheat No No No Yes Yes Yes No No No No
Taxable Income
60 70 75 85 90 95 100 120 125 220
55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0
No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0
Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420
Split Positions
SortedValues
39. Mencari Best Split
C0 N10
C1 N11
39
B?
Yes No
Node N3 Node N4
A?
Yes No
Node N1 Node N2
Sebelum Splitting:
C0 N20
C1 N21
C0 N30
C1 N31
C0 N40
C1 N41
C0 N00
C1 N01
M0
M1 M2 M3 M4
M12 M34
Gain = M0 – M12 vs M0 – M34
40. Kriteria Splitting Alternatif
berdasarkan INFO
40
Entropy pada node t:
(NOTE: p( j | t) adalah frekuensi relatif class j pada
node t).
Pengukuran homogeneity sebuah node.
▪ Maximum (log nc) jika semua class record
terdistribusi merata
▪ Minimum (0.0 ) jika semua class record sama
Komputasi berdasarkan Entropy serupa dengan proses
komputasi GINI index
j
t
j
p
t
j
p
t
Entropy )
|
(
log
)
|
(
)
(
42. Splitting Berdasarkan INFO...
42
Information Gain:
Parent Node, p displit menjadi k partisi
ni jumlah record dalam partisi i
Meghitung reduksi entropi yang dihasilkan proses
split. Pilih split yang akan mencapai reduksi
terbanyak (GAIN maksimal)
Digunakan dalam ID3 dan C4.5
Kekurangan: kecenderungan membagi partisi
dalam jumlah banyak, tiap partisi kecil namun
‘murni’
k
i
i
split
i
Entropy
n
n
p
Entropy
GAIN 1
)
(
)
(
43. Splitting Berdasarkan INFO...
43
Gain Ratio:
Parent Node, p displit menjadi k partisi
ni jumlah record dalam partisi i
Adjusts Information Gain by the entropy of the
partitioning (SplitINFO). Higher entropy
partitioning (large number of small partitions) is
penalized!
Digunakan dalam C4.5
Didesain untuk mengatasi kekurangan dari
Information Gain
SplitINFO
GAIN
GainRATIO Split
split
k
i
i
i
n
n
n
n
SplitINFO 1
log
44. Kriteria Splitting
berdasarkan Classification Error
44
Error klasifikasi pada node t :
Menghitung eror misklasifikasi oleh satu node.
▪ Maximum (1 - 1/nc) when records are equally distributed
among all classes, implying least interesting information
▪ Minimum (0.0) when all records belong to one class,
implying most interesting information
)
|
(
max
1
)
( t
i
P
t
Error i
45. Contoh untuk Computing Error
45
C1 0
C2 6
C1 2
C2 4
C1 1
C2 5
P(C1) = 0/6 = 0 P(C2) = 6/6 = 1
Error = 1 – max (0, 1) = 1 – 1 = 0
P(C1) = 1/6 P(C2) = 5/6
Error = 1 – max (1/6, 5/6) = 1 – 5/6 = 1/6
P(C1) = 2/6 P(C2) = 4/6
Error = 1 – max (2/6, 4/6) = 1 – 4/6 = 1/3
)
|
(
max
1
)
( t
i
P
t
Error i
47. Kriteria Berhenti
untuk Induction Tree
Stop membagi node seandainya semua
record yang ada merupakan kelas yang
sama
Stop membagi node saat semua record
yang ada memiliki nilai atribut yang
sama.
Pemberhentian secara awal (Early
termination)
47
48. Klasifikasi berdasarkan
Decision Tree
Keuntungan:
–Murah untuk dibangun
–Bisa mengklasifikasikan unknown record
dengan sangat cepat
–Mudah untuk menginterpretasikan tree
yang berukuran kecil
–Akurasinya bisa dibandingkan dengan
teknik klasifikasi lain untuk dataset yang
sederhana
48
49. Naïve Bayes
49
Misalkan D adalah data latih, posteriori probability dari
hypothesis h, P(h|D) memenuhi teorema Bayes
MAP (maximum posteriori) hypothesis
Tantangan dalam implementasi: membutuhkan pengetahuan
awal dari berbagai peluang sehingga membutuhkan
komputasi yang cukup mahal.
Masalah klasifikasi dapat diformalisasi dengan menghitung a-
posteriori probabilities:
P(C|X) = prob. that the sample tuple X=<x1,…,xk> is of class
C.
)
(
)
(
)
|
(
)
|
(
D
P
h
P
h
D
P
D
h
P
.
)
(
)
|
(
max
arg
)
|
(
max
arg h
P
h
D
P
H
h
D
h
P
H
h
MAP
h
50. 50
Klasifikasi Naïve Bayesian
Asumsi Naïve : independensi atribut
P(x1,…,xk|C) = P(x1|C)·…·P(xk|C)
Jika atribut ke-i bertipe categorical:
P(xi|C) dapat diestimasi dengan menghitung
frekuensi sampel yang bernilai xi sebagia atribut
ke-I pada kelas C
Jika atribut ke-i bertipe continuous:
P(xi|C) diestimasi dengan menggunakan fungsi
padat peluang Gaussian.
51. 51
Play-tennis example: estimating P(xi|C)
Outlook Temperature Humidity Windy Class
sunny hot high false N
sunny hot high true N
overcast hot high false P
rain mild high false P
rain cool normal false P
rain cool normal true N
overcast cool normal true P
sunny mild high false N
sunny cool normal false P
rain mild normal false P
sunny mild normal true P
overcast mild high true P
overcast hot normal false P
rain mild high true N
outlook
P(sunny|p) = 2/9 P(sunny|n) = 3/5
P(overcast|p) = 4/9 P(overcast|n) = 0
P(rain|p) = 3/9 P(rain|n) = 2/5
temperature
P(hot|p) = 2/9 P(hot|n) = 2/5
P(mild|p) = 4/9 P(mild|n) = 2/5
P(cool|p) = 3/9 P(cool|n) = 1/5
humidity
P(high|p) = 3/9 P(high|n) = 4/5
P(normal|p) = 6/9 P(normal|n) = 2/5
windy
P(true|p) = 3/9 P(true|n) = 3/5
P(false|p) = 6/9 P(false|n) = 2/5
P(p) = 9/14
P(n) = 5/14
52. 52
Play-tennis example: classifying X
An unseen sample X = <rain, hot, high, false>
P(X|p)·P(p) =
P(rain|p)·P(hot|p)·P(high|p)·P(false|p)·P(p) =
3/9·2/9·3/9·6/9·9/14 = 0.010582
P(X|n)·P(n) =
P(rain|n)·P(hot|n)·P(high|n)·P(false|n)·P(n) =
2/5·2/5·4/5·2/5·5/14 = 0.018286
Sample X is classified in class n (don’t play)
53. 53
The k-Nearest Neighbor Algorithm
All instances correspond to points in the n-D space.
The nearest neighbor are defined in terms of Euclidean
distance.
The target function could be discrete- or real- valued.
For discrete-valued, the k-NN returns the most common
value among the k training examples nearest to xq.
.
_
+
_ xq
+
_ _
+
_
_
+
54. 54
Discussion on the k-NN Algorithm
The k-NN algorithm for continuous-valued target functions
–Calculate the mean values of the k nearest neighbors
Distance-weighted nearest neighbor algorithm
–Weight the contribution of each of the k neighbors according to
their distance to the query point xq
giving greater weight to closer neighbors
–Similarly, for real-valued target functions
Robust to noisy data by averaging k-nearest of dimensionality:
distance between neighbors could be dominated by irrelevant
attributes.
Curse of dimensionality: distance between neighbors could be
dominated by irrelevant attributes.
–To overcome it, axes stretch or elimination of the least relevant
attributes.
w
d xq xi
1
2
( , )
55. Parameter Pengevaluasi Kinerja Model
Fokus pada kemampuan model untuk
memprediksi
–Daripada mengukur kecepatan dan skalabilitas model.
Confusion Matrix:
PREDICTED CLASS
ACTUAL
CLASS
Class=Yes Class=No
Class=Yes a b
Class=No c d
a: TP (true positive)
b: FN (false negative)
c: FP (false positive)
d: TN (true negative)
57. Kelemahan Accuracy
Misalkan untuk masalah 2 kelas
–Jumlah objek di Kelas A = 9990
–Jumlah objek di Kelas B = 10
Jika model memprediksi semua objek merupakan
anggota kelas A , maka akurasi dari model
tersebut adalah 9990/10000 = 99.9 % semua
anggota kelas B salah prediksi!
–Accuracy memberi nilai yang bagus padahal maknanya
salah, model sebenarnya sama sekali tidak mampu
memprediksi objek kelas B.
59. Contoh Perhitungan Cost
Cost
Matrix
PREDICTED CLASS
ACTUAL
CLASS
C(i|j) + -
+ -1 100
- 1 0
Model
M1
PREDICTED CLASS
ACTUAL
CLASS
+ -
+ 150 40
- 60 250
Model
M2
PREDICTED CLASS
ACTUAL
CLASS
+ -
+ 250 45
- 5 200
Accuracy = 80%
Cost = 3910
Accuracy = 90%
Cost = 4255
60. Cost vs Accuracy
Count PREDICTED CLASS
ACTUAL
CLASS
Class=Yes Class=No
Class=Yes a b
Class=No c d
Cost PREDICTED CLASS
ACTUAL
CLASS
Class=Yes Class=No
Class=Yes p q
Class=No q p
N = a + b + c + d
Accuracy = (a + d)/N
Cost = p (a + d) + q (b + c)
= p (a + d) + q (N – a – d)
= q N – (q – p)(a + d)
= N [q – (q-p) Accuracy]
Accuracy is proportional to cost if
1. C(Yes|No)=C(No|Yes) = q
2. C(Yes|Yes)=C(No|No) = p
Klasifikasi merupakan proses pencarian model yang akan menentukan pola kelas tertentu,
tentu saja yang dibutuhkan dalam klasifikasi adalah sejumlah data yang memiliki atribut yang fix di mana salah satunya merupakan atribut label atau atribut kelas, kita sebut sebagai training set dan kemudian data untuk mengevaluasi model yang kita sebut test set
Note : Don’t forget to discuss the classification vs clustering
Demikian materi kita hari ini untuk klasifikasi. Terima kasih tetap semnagat dan sampai jumpa lagi di materi asosiasi