Contoh Penggunaan Adaboost
Contoh Penggunaan Adaboost
Death
Age Anaemia
Event
40 0 0
40 0 0
45 1 0
45 1 1
53 0 0
62 0 1
65 1 0
70 0 0
70 0 1
81 0 0
Prosedur dalam membangun pemodelan klasifikasi AdaBoost sebagai berikut (Hastie et al.,
2008):
1. Menentukan bobot awal w i setiap amatan pada gugus data latih ( x i , y i) dengan i=1,2,3 , … , N
1 (3)
w i=
N
Death
Age Anaemia Weight
Event
40 0 0 0,1
40 0 0 0,1
45 1 0 0,1
45 1 1 0,1
53 0 0 0,1
62 0 1 0,1
65 1 0 0,1
70 0 0 0,1
70 0 1 0,1
81 0 0 0,1
2. Pada setiap iterasi m, dengan m=1,2,3 , … , M dilakukan hal berikut:
ITERASI 1(m=1)
(m)
a. Sampel dataset menggunakan bobot w i untuk mendapatkan sampel training x i.
Iterasi 1 (m=1)
Death
Age Anaemia Weight
Event
40 0 0 0,1
40 0 0 0,1
45 1 0 0,1
45 1 1 0,1
53 0 0 0,1
62 0 1 0,1
65 1 0 0,1
70 0 0 0,1
70 0 1 0,1
81 0 0 0,1
memilih variabel dengan nilai maximum dari persamaan (2), pada data sampel training x i
Membentuk model decision tree G1 (x i) dengan atribu yang memiliki nilai information
gain terbesar.
Death
Age <=70 Anaemia Weight
Event
-1 -1 -1 0,1
-1 -1 -1 0,1
-1 1 -1 0,1
-1 1 1 0,1
-1 -1 -1 0,1
-1 -1 1 0,1
-1 1 -1 0,1
-1 -1 -1 0,1
-1 -1 1 0,1
1 -1 -1 0,1
Gain(Y,X1) = 0,816
Gain(Y,X2) = 0,002
Sesuai dengan aturan pemodelan decision tree kita akan menggunakan X1(atribut dengan
∑ w(m)
i (4)
yi ≠G m ( x i )
er r m =
∑ w(mi )
yi
Keterangan:
Gm ( x i ) : Nilai prediksi yang dihasilkan oleh algoritma weak learner (stump) saat
Age(Age<=yes,incorrect) = 3 (missclassify)
0,1+0,1+0,1+ 0,1
er r 1=
1
er r 1=0,4
1 1−er r m (5)
α m= ln ( ¿) ¿
2 er r m
1 1−0,4
α 1= ln ( ¿)¿
2 0,4
α 1=0,2
w m+1
i =wmi exp (−α m y i Gm ( xi ) ) ,i =1,2,3 ,… , N (6)
Dengan keterangan:
Jika data diklasifikasikan dengan salah, y i Gm ( x i ) =−1 dan jika data diklasifikasikan
2
w 1=0,1 exp (−0,2(−1)(−1) )
2
w 1=0,0
2
w 1=0,1 exp (−0,2(−1)(−1) )
w 21=0,08
w 4=w 4 exp ( −α 1 y 4 G 1 (x 4 ))
2 1
2
w 3=0,122
…………
2 1
w 10=w 10 exp (−α 1 y10 G1 ( x10 ) )
2
w 10 =0,1 exp (−0,2(1)(−1) )
w 210=0,122
Death New
Age <=70 Anaemia Weight
Event Weight
-1 -1 -1 0,1 0,08
-1 -1 -1 0,1 0,08
-1 1 -1 0,1 0,08
-1 1 1 0,1 0,122
-1 -1 -1 0,1 0,08
-1 -1 1 0,1 0,122
-1 1 -1 0,1 0,08
-1 -1 -1 0,1 0,08
-1 -1 1 0,1 0,122
1 -1 -1 0,1 0,122
ITERASI 1(m=2)
(m)
Sampel dataset menggunakan bobot w i untuk mendapatkan sampel training x i.
Iterasi 2 (m=2)
Death Normalize
Age <=70 Anaemia Freq
Event Weight
-1 -1 -1 0,08 0-0,08
-1 -1 -1 0,08 0,08-0,16
-1 1 -1 0,08 0,16-0,24
-1 1 1 0,13 0,24-0,37
-1 -1 -1 0,08 0,37-0,45
-1 -1 1 0,13 0,45-0,58
-1 1 -1 0,08 0,58-0,66
-1 -1 -1 0,08 0,66-0,74
-1 -1 1 0,13 0,74-0,87
1 -1 -1 0,13 0,87-1,00
pengembalian.
1. Mengambil sampel satu: tentukan satu angka secara random dengan range 0-1
(contohnya kita memilih angka 0,4, maka kita berpacu ke tabel freq angka 0,4 masuk
ke bucket mana. Maka untuk data sample 1 kita menggunakan data ke-5 (karena 0,4
2. Sampel 2 (memilih secara random angka 0,1), maka untuk sampel 2 kita memilih
3. ……..
4. Sampel 10 (memilih secara random angka 0,5), maka untuk sampel 6 kita memilih
Death
Age <=70 Anaemia
Event New Weight
-1 -1 -1 0,08
-1 -1 -1 0,08
-1 1 1 0,13
-1 -1 -1 0,08
-1 -1 1 0,13
-1 -1 -1 0,08
1 -1 -1 0,13
-1 1 1 0,13
1 -1 -1 0,13
-1 -1 1 0,13
Menentukan pendugaan klasifikasi menggunakan weak learner (stump), didapat dengan
memilih variabel dengan nilai maximum dari persamaan (2), pada data sampel training x i
Membentuk model decision tree G1 (x i) dengan atribu yang memiliki nilai information
gain terbesar.
Gain(Y,X1) = 0,171
Gain(Y,X2) = 0,473
Sesuai dengan aturan pemodelan decision tree kita akan menggunakan X2(atribut dengan
∑ (m)
wi (4)
yi ≠G m ( x i )
er r m =
∑ w(mi )
yi
Keterangan:
w(m)
i : Bobot dari sampel i pada iterasi m
Gm ( x i ) : Nilai prediksi yang dihasilkan oleh algoritma weak learner stump) saat
er r 1=0,2
1 1−er r m (5)
α m= ln ( ¿) ¿
2 er r m
1 1−0,2
α 2= ln ( ¿ )¿
2 0,2
α 2=0,693
w m+1
i =wmi exp (−α m y i Gm ( xi ) ) ,i =1,2,3 ,… , N (6)
Dengan keterangan:
Jika data diklasifikasikan dengan salah, y i Gm ( x i ) =−1 dan jika data diklasifikasikan
w i =w i exp ( −α 2 y i G2 (x i )) ,i=1,2,3 , … , N
3 2
w 1=w 1 exp ( −α 2 y 1 G 2 (x 1) )
3 2
w 2=w 2 exp ( −α 2 y 2 G 2 (x 2) )
3 2
3
w 1=0,04
w 5=w 5 exp ( −α 2 y 5 G2 (x 5 ) )
3 2
3
w 5=0,13 exp (−0,693 (−1)(1) )
3
w 5=0,26
…….
3
w 10=0,13 exp (−0,693(−1)(1))
3
w 10 =0,26
Death New
Age <=70 Anaemia Weight
Event Weight
-1 -1 -1 0,08 0,04
-1 -1 -1 0,08 0,04
-1 1 1 0,13 0,04
-1 -1 -1 0,08 0,04
-1 -1 1 0,13 0,26
-1 -1 -1 0,08 0,04
1 -1 -1 0,13 0,04
-1 1 1 0,13 0,04
1 -1 -1 0,13 0,04
-1 -1 1 0,13 0,26
Normalize the new weight
Death New
Age <=70 Anaemia Weight Normalize
Event Weight
-1 -1 -1 0,08 0,04 0,05
-1 -1 -1 0,08 0,04 0,05
-1 1 1 0,13 0,04 0,05
-1 -1 -1 0,08 0,04 0,05
-1 -1 1 0,13 0,26 0,31
-1 -1 -1 0,08 0,04 0,05
1 -1 -1 0,13 0,04 0,05
-1 1 1 0,13 0,04 0,05
1 -1 -1 0,13 0,04 0,05
-1 -1 1 0,13 0,26 0,31
3. Dugaan akhir prediksi merupakan total terboboti dugaan prediksi tiap iterasi dengan
persamaan:
[ ]
M
G ( x )=sign ∑ αm Gm (x i) (7)
m =1
Tanda sign[] memiliki arti bahwa kita mengikutsertakan tanda positif dan negatif ketika
[∑ ]
2
G ( x )=sign α 1 G1 ( x ujicoba ) +α 2 G2 ( x ujicoba)
m =1
Anaemia(X2 Death
Age(X1)
) Event
30 yes ?
Anaemia(X2 Death
Age(X1)
) Event
-1 1 ?
[ ]
2
G ( x )=sign ∑ 0,2(−1)+ 0,693(1)
m =1
G ( x )=sign [ 0,493 ]
G ( x )=1
Anaemia(X2 Death
Age(X1)
) Event
-1 1 1
Anaemia(X2 Death
Age(X1)
) Event
30 yes 1
Sehingga menggunakan data uji tersebut, model adaboost mengklasifikasikan pasien dengan
umur 30 dan mengidap anemia diklasifikasikan akan meninggal.