• Tidak ada hasil yang ditemukan

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

Dokumen terkait