Setelah mendapatkan hasil entropy, berikut mengukur mengukur evektivitas suatu atribut dalam mengklasifikasikan data. Ukuran evektivitas ini disebut sebagai information gain, secara matematis information gain dari suatu atribut A, dituliskan sebagai berikut:
Gain(S, A) = ( ) − |Sv||S| Entropy(Sv)
≡ ( )
Di mana:
A : atribut
Values(A) : himpunan nilai-nilai yag mungkin untuk atribut A |Sv| : jumlah sampel untuk nilai v
|S| : jumlah seluruh sampel data
Entropy(Sv) : entropy untuk sampel_sampel yang memiliki nilai v Untuk memahami information gain lebih detail, perhatikan bagaimana menghitung information gain untuk IPK di bawah ini :
Pada table 2.8 di atas atribut dapat beasiswa =’Ya’ dikatakan sebagai
sampel positif (+),dan atribut dapat beasiswa =’Tidak’ dikatakan sebagai sampel negatif (-), dari sampel data pada table 2.8 didapatkan:
Values(IPK)=Bagus,Cukup,Kurang S=[8+,3-],|S|=11
SBagus=[3+,1-],|SBagus|=4 SCukup=[3+,1-],|SCukup|=4 SKurang=[2+,1-],|SKurang|=3
Selanjutnya,nilai-nilai entropy untuk S, SBagus,SCukup,SKurang dan information gain untuk IPK adalah:
Entropy(S)=-(8/11)log2(8/11)-(3/11)log2(3/11) =0,8454 Entropy(SBagus)=-(3/4)log2(3/4)-(1/4)log2(1/4) =0,8113 Entropy(SCukup) =-(3/4)log2(3/4)-(1/4)log2(1/4) =0,8113 Entropy(SKurang)=-(2/3)log2(2/3)-(1/3)log2(1/3) =0,9183
Gain(S,IPK)= Entropy(S)-(4/11)Entropy(SBagus)-(4/11)Entropy(SCukup) – 3/11)Entropy(SKurang)
=0,8454-(4/11)0,8113-(4/11)0,8113-(3/11)0,9183 =0,0049
2.6.2. AlgoritmaID3
IDE3 adalah algoritma decision tree learning (algoritma pembelajaran pohon keputusan ) yang paling dasar. Algoritma ID3 melakukan pencarian secara rakus/menyeluruh (greedy) pada semua kemungkinan pohon keputusan. Alogoritma IDE3 dapat diimplementasikan mengunakan fungsi rekursif (fungsi yang memangil dirinya sendiri ),sebagai berikut:
Function IDE3 (Kumpulan sampel,Atribut Target,Kumpulan Atribut ) 1. Buat simpul Root
2. If semua sampel adalah kelas i,maka Return pohon satu simpul Rootn dengan label=i
3. If kumpulan Atribut kosong ,Return pohon satu simpul Root dengan label =nila atribut target yang paling umum (yang paling sering muncul)
Else
A←Atribut yang merupakan the best classifer (dengan information
gain terbesar)
Atribut untuk keputussan untuk root←A Forvi(setiap nilai pada A)
Tambahkan suatu cabang di bawah Root sesuai nilaivi
Buat satu variabel ,misalnya sampel vi,sebagai himpunan bagian(subset)dari kumpulan sampel yang bernilai vi pada atribut A
If sampelvikosong Then
di bawah cabang ini tambahkan suatu simpul daun(leaf node,simpul yang tidak punya anak di bawahnya )dengan label=nilai atribut target yang paling umum(yang pling sering muncul)
Else
di bawah cabang ini tambahkan subtree dengan memanggil fungsi ID3(Sampelvi,Atribut Target Atribut-{A}
End End
End 4.Retrun Root
Agar lebih memehami algoritma ID3 di atas,marilah kita terapkan algoritma tersebut untuk menemukan decision tree yang tepat untuk data tabel 2.8 tentang data penerima beasiswa sebagai berikut:
Rekursi level 0 interasi ke-1
Memanggil fungsi ID3 dengan kumpulan sampel berupa semua sampel data=[8+,3-],Atribut Target=’diterima’,dan kumpulan
atribut={IPK,Kehadiran,Attitude}. Pada halaman sebelumnya, kita sudah menghitung information gain untuk IPK, yaitu Gain(S,IPK)=0,0049. Untuk menemukan atribut yang merupakan the best classifer dan di letakkan sebagai Root ,kita perlu menghitung information gain untuk 2 atribut yang lain, yaitu Kehadiran dan Attitude. Dari tabel 2.8 dengan cara yang sama pada proses penghitungan gain(S,IPK),kita dapatkan Gain (S,Kehadiran):
Values(Kehadiran)=Tinggi, Sedang, Rendah S=[8+3-],|S|=11
STinggi=[3+.0-],|STinggi|=3,Entropy(STinggi)=0
SSedang=[4+,1-] ,|SSedang|=5,Entropy(SSedang)=0,7219 SRendah=[1+,2-],|SRendah|=3,Entropy(SRendah)=0,9183
Gain(S,Kehadiran)=Entropy(S)-(3/11)Entropy(STinggi) -(5/11) Entropy(SSedang )-(3/11)Entropy(SRendah)
=0,8454-(3/11)0-(5/11)0,7219-(3/11)0,9183 =0,2668
Dari tabel 2.8 dan dengan cara yang sama pada proses penghitungan gain (S,IPK),kita dapatkan Gain(S,Attitude):
Values(Attitude)=Baik,Buruk S=[8+,3-),|S|=11
SBaik=[6+,0-),|SBaik|=6, Entropy(SBaik)=0
SBuruk=[2+,3-],|SBuruk|=5 Entropy(SBuruk)=0,9710
Gain (S, Attitude)= Entropy(S)-(6/11) Entropy(SBaik)-(5/11) Entropy(SBuruk) =0,8454-(6/11)0-(5/11)0,9710
=0,4040
Dari tiga nilai information gain di atas,Gain(S, Attitude)adalah yang terbesar, sehingga Attitude adalah atribut yang merupakan the best classifer dan harus di letakkan sebagai Root. Selanjutnya ,setiap nilai pada atribut Attitude akan dicek
apakah perlu di buat subtree di level berikutnya atau tidak. Untuk nilai ‘baik’
terdapat 6 sampel ,berarti SampleBaik tidak kosong .Sehingga ,perlu memanggil fungsi ID3 dengan kumpulan sampel berupa SampleBaik=[6+,0-],AtributTarget
=’Diterima’,dan Kumpulan Atribut={IPK,Kehadiran }.Pada tahap ini ,diperoleh
Gambar 2.9. Pohon keputusan yang dihasilkan pada rekursi level 1 iterasi ke-1
Rekursi Level 1 iterasi ke-1
Memangil fungsi ID3 dengan kumpulan sampel berupa SampleBaik=[6+,0-]
Atribut Target=’Diterima’,dan KumpulanAtribut ={IPK,Kehadiran }.Karena
semua sample pada SampleBaiktermasuk dalam kelas ‘ya’,maka fungsi ini akan berhenti dan menggembalikan satu simpul tunggal Root dengan label ‘ya’ pada
tahap ini,dihasilkan pohon pada gambar 5-3 selanjutnya,proses akan kembali ke rekkursi level o ke 2.
Gambar 2.10. Pohon keputusan yang di hasilkan pada rekursi level 1 iterasi ke-1 Baik Attitude Ya Attitude Baik
Rekursi Level o Iterasi ke-2
Pada rekursi level 0 iterasi ke-1 sudah dilakukan pengecekan untuk atribut
‘Attitude’ dengan nilai ’baik’. Selanjutnya,dilakukan pengecekan untuk atribut ’Attitude’ dengan nilai ’Buruk’. Untuk nilai ‘Buruk’ terdapat 5 sampel, berarti
sample Buruk tidak kosong, sehingga perlu memenggil fungsi ID3 dengan kumpulan sampel berupa sampleBuruk =[2+,3-], Atribut Target=’diterima’, dan kumpulan atribut ={IPK,Kehadiran}, pada tahap ini dihasilkan pohon sebagai berikut.
Gambar 2.11 : pohon keputasan yang dihasilkan pada rekursi level 0 iterasi ke-2
Rekursi Level 1 iterasi ke-2
Memanggil fungsi ID3 dengan kumpulan sampel berupa SampleBuruk=[2+,3- ] ,AtributTarget=’Diterima’,dan kumpulan
atribut={IPK,Kehadiran}. Pada tahap ini,dilakukan perhitungan information gain untuk atribut IPK dan Kehadiran, tetapi kumpulan semple yang diperhitungkan adalah sampleBuruk dengan 5 sample data,yaitu [2+,3-].dengan kata lain ,S=SampleBuruk
Attitude
Baik Buruk
Values(IPK)=Bagus,Cukup,Kurang S=SampleBuruk=[2+,3-],|S|=5
SBagus=[1+,1-],|SBagus|=2 SCukup=[1+,1-],|SCukup|=2 SKurang=[0+,1-],|SKurang|=1
Selajutnya, nilai-nilai entropy untuk S, SBagus, SCukup, SKurang,dan information gain untuk IPK adalah:
Entropy(S)=-(2/5)log2,(2/5)-(3/5)log2(3/5) =0,9710 Entropy(SBagus)=-(1/2)log2(1/2)-(1/2)log2(1/2) =1 Entropy(SCukup)=-(1/2)log2(1/2)-(1/2)log2(1/2) =1 Entropy(SKurang)=(0)log2(0)-(1)log2(1) =0
Gain(S,IPK)= Entropy(S) (2/5)Entropy(SBagus) (2/5)Entropy(SCukup) -(1/5)Entropy(SKurang)
=0,9710-(2/5)1-(2/5)1-(1/5)0 =0,1710
Values(Kehadiran)=Tinggi,Sedang,Rendah
S=SampleBuruk=[2+,3-],|S|=5, Entropy(S)=0,9710 STinggi=[0+,0-],|STinngi|=0,Entropy(STinggi)=0
SSedang=[2+,1-]|SSedang|=3 Entropy(SSedang)=0,9183 SRendah=[0+,2-],|SRendah|=2, Entropy(SRendah)=0
Gain(S, Kehadiran)= Entropy(S) - (0/5)Entropy(STinggi) - (3/5)Entropy(SSedang) -(2/5)Entropy(SRendah)
=0,9710-(0/5)0-(3/5)0,9183-(2/5)0 =0,4200
Dari dua nilai information gain di atas ,gain (S, Kehadiran) adalah yang terbesar, sehingga Kehadiran adalah adalah atribut yang merupakan the best classifer dan
harus di letakkan sebagai simpul di bawah simpul ‘Attitude ‘ pada cabang nilai ‘Buruk’ . Selanjutnya ,setiap nilai pada atribut Kehadiran akan di cek apakah perlu di buat subtree di level berikut nya atau tidak .Utuk nilai ‘Tinggi ‘(Pada
kumpulan sampel berupa SampleBuruk=[2+,3-]),terdapat 0 sampel, berarti SampleTinggi kosong. Sehingga perlu dibuat satu simpul daun (leaf node,simpul yang tidak punyak anak di bawahnya) dengan label yang paling sering muncul pada SampleBuruk yaitu ‘tidak’. Kemudian dilakukan pengecekan untuk atribut
Kehadiran bernilai ’sedang’. Untuk nilai ‘Sedang’ (Pada Kumpulan Sampel
berupa SampleBuruk =[2+,3-]),terdapat tiga sample ,berarti sampleSedang tidak kosong. Sehingga perlu memangil fungsi IDE3 dengan kumpulan sample berupa SampleSedang=[2+,1-], Atribut Target =’Diterima’ ,dan kumpulan Atribut
Gambar 2.11: pohon keputusan yang dihasilkan pada rekursi level 1 iterasi ke-2
Rekursi level 2 iterasi ke-1
Memanggil funggsi ID3 dengan kumpulan Sample berupa SampleSedang=[2+,1-],Atribut Target=’Diterma’, dan kumpulan Atribut={IPK}, karena kumpulan Atribut hanya berisi 1 Atribut(yaitu IPK), maka Atribut yang menjadi the best classifier adalah IPK dan harus diletakkan sebagai simpul di bawah simpul
‘Kehadiran’pada cabang nilai ‘Sedang’. Selanjutnya,setiap nilai pada Atribut IPK
akan dicek apakah perlu di buat sub tree di level berikutnya atau tidak. Untuk nilai
’Bagus’(pada kumpulan sampel berupa SampleSedang=[2+,1-]), terdapat 1 sampel ,berarti sample bagus tidak kosong .Sehingga pelu memanggil fungsi ID3 dengan kumpulan sample bagus=[1+,0-], Atribut Target =’Diterima’ dan kumpulan Atribut={}. Sehingga,diperoleh pohon pad gambar 2.12 di bawah ini.
Attitude Kehadiran Baik Buruk Ya Tidak Tinggi Sedang
Gambar 2.12: pohon keputusan yang dihasilkan pada rekursi level 2 iterasi ke-1
Rekursi Level 3 iterasi ke-1
Memangil fungsi ID3 dengan kumpulanSampel berupa SampleBagus=[1+,0-],
AtributTarget =’Diterima’ dan kumpulan Atribut ={}. Karena semua sampel pada
SampleBagus termasuk dalam kelas ‘Ya’ maka fungsi ini akan berhenti dan mengembalikan satu simpul tunggal Root dengan label ‘Ya’ . Sehingga dihasilkan
pohon pada gambar 2.13 di bawah ini .Selanjutnnya ,proses akan kembali ke rekursi level 2 untuk iterasi ke -2
Kehadira n Attitude IPK Ya Buruk Baik Bagus Sedang Tinggi Tidak
Gambar 2.13: pohon keputusan yang dihasilkan pada rekursi level 3 iterasi ke-1
Rekursi Level 2 iterasi ke-2
Pada rekursi Level 2 iterasi ke-1, sudah dilakukan pengecekan atribut IPK
untuk nilai ‘Bagus‘. Selanjutnya pengecekan dilakukan pada atribut IPK untuk nilai ‘Cukup’ .Ternyata ,terdapat 1 sampel pada kumpulan sampel dimana
Attitude bernilai ’Buruk’ dan Kehadiran bernilai ‘Sedang’. Karena SampleCukup tidak kosong, maka perlu memanggil fungsi ID3 dengan kumpulan Sampel berupa
Tidak Kehadiran Attitude Baik Buruk Ya IPK Ya Bagus Sedang Tinggi
SampleCukup=[1+,0-] ,AtributTarget =’Diterima ‘,dan kumpulan Atribut ={}. Sehingga diproleh pohon pada gambar 2.14 di bawah ini.
Gambar 2.14. Pohon keputusan yang dihasilkan pada rekursi level 2 iterasi ke-2 Hadir IPK attitude Cukup Ya Buruk Ya Baik Bagus Tidak Tinggi Sedang
Rekursi Level 3 iterasi ke-2
Memangil fungsi ID3 dengan KumpulanSampel berupa SampleCukup=[1+,0-],
AtributTargget =’Diterima’ dan KumpulanAtribut ={}.karena semua sampel pada
SampleCukuptermasuk ke dalam kelas ‘ya’. Sehinga dihasilkan pohon pada gambar
2.15 di bawah ini. Selanjutnya proses akan kembali ke rekursi level 2 untuk iterasi ke-3.
Gambar 2.15. Pohon keputusan yang dihasilkan pada rekursi level 3 iterasi ke-2 Hadir IPK Atitude Baik Ya Buruk Tinggi Sedang Bagus Tidak Ya Ya Cukup
Rekursi Level 2 iterasi ke-3
Pada rekursi level 2 iterasi ke-1 dan ke-2, sudah dilakukan pengecekan atribut IPK
untuk nilai ‘Bagus’ dan ‘Cukup’. Selanjutnya, pengecekan dilakukan atribut IPK untuk nilai ‘Kurang’.ternyata, terdapat 1 sampel pada kumpulan sampel dimana Wawancara bernilai ‘Buruk’ dan psikologi bernilai’Sedang’. Karena SampleKurang tidak kosong ,maka perlu memanggil fungsi ID3 dengan kumpulsn sampel berupa SapleKurang=[o+,1-], AtributTarget =’Diterma’,dan Kumpulan Atribut ={}.pada tahap ini ,diproleh pohon pada gambar 2.16 di bawah ini:
Gambar 2.16. Pohon keputusan yang di hasilkan pada rekursi level 2 itersai ke-3 Hadir Attitude Baik Ya Buruk Sedang Tinggi Tidak IPK Bagus Cukup Ya Ya Kurang
Rekursi Level 3 iterasi ke-3
Memanggil funsi ID3 dengan kumpulan sampel berupa sampleKurang
=[0+,1-],AtributTarget=’Diterima’ dan kumpulanAtribut ={}. Karena sumua sampel pada
SampleKurangtermasuk kedalam kelas’Tidak’ ,maka fungsi ini akan berhenti dan
mengembalikan satu simpul tunggal Root dengan label’Tidak’ .sehinga dihasilkan pohon pada gambar 2.17 di bawah ini. Selanjutnya,proses akan kembali ke rekursi level1untuk iterasi ke-3.
Atttude Baik Buruk Ya Hadir Sedang Tinggi Tidak IPK Cukup Ya Kurang Bagus Ya Tidak
Gambar 2.17. Pohon keputusan yang dihasilkan pada rekursi level 3 iterasi ke-3
Rekursi level 1 interasi ke-3
Pada rekursi level 1 iterasi ke-2,sudah dilakukan pengecekan atribut Kehadiran
untuk nilai ‘Tinggi’ dan ‘Sedang’ . Selanjutnya pengecekan dilakukan pada atribut
Kehadiran untuk nilai’Rendah’ .ternyata ,terdapat 2 sampel pada kumpulan sampel dimana attutude bernilai ‘Buruk’ dan kehadiran bernilai’Rendah’. Karena SampleRendahtidak klosong,maka perlu memanggil fumgsi ID3 dengan kumpulan sampel berupa SampleRendah =[0+,2-], AtributTarget =’Diterima’ ,dan KumpulanAtribut ={IPK}.pada tahap ini, di piproleh pohon pada gambar 5-12 di bawah ini.Selanjutnya, proses akan kembali kerekursi level 2 untuk iterasi ke-4.
Hadir IPK Attitude Buruk Ya Cukup Baik Sedang Tinggi Tidak Bagus Kurang
Gambar 2.18. Pohon keputusan yang dihasilkan pada rekursi level 1 iterasi ke-3
Rekursi level 2 interasi ke-4
Memangiil fungsi ID3 dengan kumpulan sample berupa
SampleRendah=[0+,2-],AtributTarget=’Diterima’,dan kumpulan Atribut={IPK}.karna semua Sample
pada Sample Rendah termasuk dalam kelas’Tidak’,maka fungsi ini akan berhenti dan mengembalikan 1 simpul tunggal’Root’dengan label’Tidak‘.proses selesai dan mengembalikan pohon keputusan pada Gambar 2.19 dibawah ini.
Gambar 2.19. Pohon keputusan akhir yang dihasilkan oleh fungsi ID3 . Bagus Ya Cukup Hadir IPK attitude Baik Sedang Tidak Ya Buruk Kurang Ya Kurang Tidak
Ilustrasi langkah-langkah algoritma ID3 di atas menunjukkan bahwa ID3 melakukan strategi pencarian hill-climbing: dimulai dari pohon kosong, kemudian secara progresif berusaha menemukan sebuah pohon keputusan yang mengklasifikasikan sampel-sampel data secara akurat tanpa kesalahan.pada akhir proses ,ID3 mengembalikan sebuah pohon keputusan (lihat gambar 5-13 di atas) yang manpu mengklasifikasikan 11 sampel data pada tabel 5-1 secara akurat tanpa kesalahan. Pohon keputusan tersebut dapat di tuliskakn dalam first order logic pada persamaan di bawah ini .konversi dilakukan dengan melihat leaf node yang
bernilai ‘Ya’ .lakukan penelusuran mulai dari simpul root menuju ke tiga leaf
node tersebut.lakukan operasi conjunction (^)pada setiap simpul yang dikunjungi
sampai ditemukan leaf node ‘Ya’ .kemudian ,lakukan operasi disjunction (V)
pada ketiga hasi penelusuran tersebut. Dengan demikian persamaan ini bisa menggantikan pohon keputusan tersebut dalam mengklasifikasikan sampel data ke
dalam kelas ‘Ya’ dan ‘Tidak’
(attiude=’Baik,)V
((attitude=’Buruk’)^(kehadiran=’Sedang’)^ (IPK=’Bagus’))V ((attitude=’Buruk’)^(kehadiran=’Sedang’)^(IPK=’Cukup’))
=>Diterima=’Ya’
Tetapi, apakah pohon keputusan yang dihasilkan tersebut adalah yang baik?suatu proses decision Tree learning (pembelajaran pohon keputusan) di katakan berhasil jika pohon keputusan yang dihasilkan bisa mengklasifikasikan sampel-sampel data lainnya yang belum pernah di perlajari. Pohon keputusan gambar 2.19 tersebut di hasilkan dari proses belajar terhadap 11 sampel data yang telah tersedia pada tabel 2.8. Masih ada 7 sample data lainnya yang belum pernah dipelajari. Pertanyaannya,apakah pohon keputusan tersebut juga mampu mengklasifasikan ke tujuh sampel data lainnya secara akurat? misalkan,ketujuh sample data yang lain adalah seperti pada tabel 2.9 di bawah ini. Ternyata,ketujuh sample data berhasil di klasifikasikan secara akurat oleh pohon keputusan tersebu. Kejadian
seperti ini bisa jadi hanya 1 kebetulan saja karna jumlah sample data yang belum pernah di pelajari lebih sedikit di bandingkan jumlah data yang sudah pernah di pelajari.bagaimana jika kita menghadapi masalah dimana sample data yang belum pernah di pelajari berjumlah sangat besar? Misalkan terdapat 20 atribut yang masing-masing atribut memiliki 3 nilai berbeda, sehingga terdapat 3,486,784.401sample data yang mungkin. Tetapi,kita hanya memiliki 10.000 sample data untuk dilatihkan ke ID3. Apakah pohon keputusan yang di hasilkan akan mampu mengklasifasikan 3,486,784.401 sample data lainnya secara akurat? tentu saja kemungkinannya sangat kecil.
Tabel 2.9: Tujuh sample data uji.
Nim IPK Kehadiran Attitude Dapat
Beasiswa
012 Bagus Tinggi Buruk Tidak
013 Bagus Rendah Baik Ya
014 Cukup Tinggi Buruk Tidak
015 Cukup Rendah Baik Ya
016 Kurang Tinggi Buruk Tidak
017 Kurang Sedang Baik Ya
018 Kurang Rendah Buruk Tidak
2.6.2. Permasalahan pada Decision Tree Learning
Pada aplikasi dunia nyata, terdapat lima permasalahan pada decision tree learning, yaitu berapa ukuran pohon keputusan yang tepat? selain informasion Gain, adakah ukuran pemilihan atribut yang lain? bagaimana jika atribut nya bernilai kontinyu? Bagaimana menangani sample data yang atributnya bernilai kosong? dan bagaimana menangani atribut-atribut yang memiliki biaya yang berbeda?
BAB III