Skip to content Skip to sidebar Skip to footer

Teknik Perhitungan Pada Atribut Data Numerik Algoritma C4.5

Menentukan Split Point pada Data Numerikal Pada Algoritma C4.5

Algoritma C4.5 adalah salah satu algoritma pembelajaran mesin yang digunakan untuk membangun model pembelajaran mesin yang dapat memprediksi kelas suatu objek berdasarkan fitur-fitur yang dimilikinya. Algoritma ini termasuk dalam kelas algoritma pembelajaran mesin yang disebut "pemutusan pohon keputusan", yang artinya algoritma ini membangun model pembelajaran mesin dengan memecah data menjadi kelompok-kelompok yang semakin kecil berdasarkan fitur-fitur yang dimiliki oleh objek-objek tersebut.

Salah satu kelebihan dari algoritma C4.5 adalah kemampuannya untuk menangani data yang memiliki fitur kategorikal maupun numerikal. Selain itu, algoritma ini juga dapat menangani data yang tidak balance (jumlah kelas tidak sama) dan dapat mengelola missing value dengan baik.

Algoritma C4.5 merupakan perkembangan dari algoritma ID3 (Iterative Dichotomiser 3) yang dikembangkan oleh Ross Quinlan. Algoritma ini pertama kali diperkenalkan pada tahun 1993 dan masih sering digunakan sampai sekarang untuk membangun model pembelajaran mesin yang efektif.

Salah satu kelebihan dari algoritma C4.5 adalah kemampuannya untuk menangani data yang memiliki fitur numerikal. Data numerikal adalah data yang merupakan nilai-nilai yang dapat diukur secara tepat, seperti berat badan, tinggi badan, dan sebagainya.

Baca Juga : Cara Menghitung Entropy Lebih Dari 2 Kelas

Beberapa manfaat dari algoritma C4.5 dalam menangani data numerikal adalah:

  1. Dapat menghitung titik pembagian dengan mudah: Algoritma C4.5 dapat menghitung titik pembagian dari fitur numerikal dengan mencari nilai tengah dari setiap pasangan nilai yang berdekatan. Ini memudahkan kita dalam menentukan split point yang tepat untuk setiap fitur numerikal.
  2. Dapat mengelola missing value dengan baik: Algoritma C4.5 dapat mengelola missing value pada fitur numerikal dengan menggunakan nilai mean atau median dari fitur tersebut sebagai pengganti nilai yang hilang. Ini membantu kita dalam membangun model yang akurat meskipun ada missing value pada data.
  3. Dapat menangani data dengan skala yang berbeda: Algoritma C4.5 dapat menangani data numerikal dengan skala yang berbeda, seperti data yang diukur dalam meter dan kilogram. Algoritma ini tidak terpengaruh oleh skala yang berbeda pada fitur numerikal, sehingga dapat membangun model yang akurat meskipun fitur tersebut memiliki skala yang berbeda.

Dalam algoritma C4.5, split point ditentukan dengan mencari titik pembagian yang memiliki nilai entropy terendah untuk setiap fitur yang tersedia. Proses ini dilakukan dengan cara mencari nilai entropy setiap fitur pada setiap titik pembagian yang mungkin, kemudian memilih titik pembagian dengan nilai entropy terendah.

Untuk menentukan titik pembagian, pertama-tama kita perlu menentukan rentang nilai setiap fitur. Kemudian, kita dapat mencari titik pembagian dengan mencari nilai tengah dari setiap pasangan nilai yang berdekatan dalam rentang tersebut. Misalnya, jika fitur tersebut memiliki rentang nilai 1-10, kita dapat mencari titik pembagian dengan mencari nilai tengah dari setiap pasangan nilai berdekatan seperti (1,2), (2,3), (3,4), dan seterusnya. Kemudian, kita dapat menghitung nilai entropy untuk setiap titik pembagian dan memilih titik pembagian dengan nilai entropy terendah.

Sebagai contoh, jika kita memiliki data berikut dengan fitur X dan Y yang ingin kita gunakan untuk memprediksi kelas:

Contoh Dasar Pembagian

Untuk fitur X, kita dapat mencari titik pembagian dengan mencari nilai tengah dari setiap pasangan nilai berdekatan seperti (1,2), (2,3), (3,4), dan (4,5). Kemudian, kita dapat menghitung nilai entropy untuk setiap titik pembagian dan memilih titik pembagian dengan nilai entropy terendah. Misalnya, jika titik pembagian adalah 2.5, maka kita akan memiliki dua kelompok: kelompok dengan nilai X < 2.5 dan kelompok dengan nilai X ≥ 2.5.

Kita dapat melakukan hal yang sama untuk fitur Y dan kemudian membandingkan nilai entropy dari setiap titik pembagian untuk memilih fitur dengan titik pembagian yang memiliki nilai entropy terendah.

Itu adalah informasi dasarnya dan untuk selanjutnya kita akan masuk kedalam contoh kasusnya.

Cara Menentukan Split Point Data Numerikal Pada Algoritma C4.5

Mungkin pada artikel saya sebelumnya pernah membahas tentang menghitung algoritma C4.5 pada atribut data numerik. Dimana didalamnya saya pernah menjelaskan tentang penggunaan penentuan split point nya hanya dengan menghitung nilai rata-rata dan nilai median.

Ternyata setelah melewati garis waktu ke waktu, dengan menentukan dari nilai rata-rata atau median, dalam beberapa kasus tidak memberikan hasil yang maksimal, dalam arti lain, Pohon Keputusan yang dibuatnya bisa menciptakan pohon yang berantai panjang.

Baca Juga : Cara menghitung Gain Ratio Algoritma C4.5

Yang artinya hal itu tentunya akan membuang waktu kita untuk menghitung algoritma C4.5 dan dengan pohon keputusan yang panjang bisa menyebabkan tidak keseimbangan dalam penentuan keputusannya yang juga berakibat memberikan akurasi yang rendah. 

Oleh karena itu saya akan memberikan sedikit solusi dengan menentukan split point atau mencari titik tengah dari data yang bernilai numerikal tersebut.

Contoh Tabel Data 

Contoh Data Numerikal

Dari tabel data diatas bisa kita lihat bahwa ada 5 atribut data yang bernilai numerikal yaitu, Usia, Jawaban A, B, C dan D

Nah, pada kasus tersebut memang tidak ada salahnya jika kita menentukan split point nya hanya dengan mencari nilai rata-rata. Namun dari pengalaman saya pribadi, pohon keputusan yang dihasilkan akan panjang dan harus melakukan tahap pruning atau pemangkasan.

Contoh pohon keputusan yang dihasilkan jika mencari dengan nilai rata-rata.


Nah, untuk menentukan split point selain dengan mencari nilai rata-rata. Kita juga bisa mencarinya dengan mencari nilai titik tengah dengan menghitung menggunakan rumus panjang kelas.

1. Pertama, tentukan panjang kelas atau interval kelas

Untuk menghitung panjang kelas dengan Rumus P = Rentangan (R) / jumlah kelas (K)

Untuk menghitung Nilai R = Nilai MAX - Nilai MIN

Dalam contoh pada tabel diatas untuk atribut Usia nilai tertinggi = 40 dan nilai terendag = 20, maka untuk nilai R = 20

dan untuk menentukan nilai K = 1+(3.3*log n ). Dimana n adalah jumlah data. Pada contoh kasus diatas jumlah datanya = 79. Maka K = 1 + (3.3 * log 79 ), dan K = 7.262169

Panjang Kelas/Interval Kelas = 20 : 7.262169. Dan hasilnya = 3

2. Buat Rentang Data Berdasarkan Panjang Kelasnya

Nah, seletah kita sudah menentukan nilai panjang kelasnya, selanjutnya untuk atribut data Usia kamu kelompokkan berdasarkan rentang atau panjang kelas dengan nilai = 3. Maka untuk atribut Usia setelah dikelompokkan akan tampak seperti dibawah ini

Contoh Rentang Data
Selanjutnya kita akan memiliki dua kelompok dengan masing-masing sebagai berikut:
      • kelompok dengan nilai Usia < 20 dan kelompok dengan nilai Usia ≥ 20
      • kelompok dengan nilai Usia < 23 dan kelompok dengan nilai Usia ≥ 23
      • kelompok dengan nilai Usia < 26 dan kelompok dengan nilai Usia ≥ 26
      • kelompok dengan nilai Usia < 29 dan kelompok dengan nilai Usia ≥ 29
      • kelompok dengan nilai Usia < 32 dan kelompok dengan nilai Usia ≥ 32
      • kelompok dengan nilai Usia < 35 dan kelompok dengan nilai Usia ≥ 35
      • kelompok dengan nilai Usia < 38 dan kelompok dengan nilai Usia ≥ 38
dari 7 kriteria tersebut kamu tentukan dari nilai Entropy sampai dengan nilai Gain Ratio. Kemudian kamu pilih yang memiliki nilai Gain Ratio Terbesar-nya

3. Tentukan semua pada masing-masing atribut numerikal

Seperti yang sudah saya sebutkan diatas bahwa atrbut yang bertipe numerikal adalah Usia, Jawaban A, B, C dan D. Maka kamu tentukan panjang kelas dan pengelompokkan seperti pada tahapan nomer 1 dan 2 tadi.

Dan setelah berhasil menentukan nilai Gain Ratio-nya maka kamu cari mana yang memiliki nilai Gain Ratio Terbesar, kemudian kamu pilih salah satu dan kamu jadikan Root untuk pohon keputusannya.

Dalam contoh saya berhasil menemukan gain ratio terbesar pada atribut Jawaban C dengan kolompok data Jawavan C > 12 dan Jawaban C<=12

Kemudian saya lakukan perhitungan lagi sampai akhir perhitungan berakhir dan berhasil membuat pohon keputusan seperti dibawah ini

Pohon Keputusan Algoritma C4.5

KESIMPULAN

Nah, dengan hasil yang berbeda maka sudah sangat jelas perbedaanya antara kita menentukan split point pada data numerikal dengan hanya mencari nilai rata-rata dan menentukan split point dengan mencari nilai titik tengahnya.

Dengan model Pohon keputusan yang lebih pendek dari model pohon keputusan yang pertama, hal ini juga tidak akan mempengaruhi nilai akurasi yang dihasilkan. Seperti yang telah saya lakukan dengan melakukan perbandingan dari kedua model tersebut, nilai akurasi yang diberikan masing-masing memberikan angkan 0.9 atau sekitar 90%.

Nah, memang jika kita menghitung split point dengan mencari nilai titik tengahnya hal ini akan memakan waktu yang panjang pada saat menghitung nilai Gain Ratio-nya namun juga bisa jadi mempersingkat perhitungan untuk menentukan pohon keputusannya.

Mungkin dari informasi diatas bisa memberikan kamu jalan lain dan semoga kamu bisa menemukan apa yang kamu cari. "Jangan Lupa Bernafas dan Tetap Bahagia dalam Tautan Rasa Syukur".

Apabila kamu berkenan bisa bantu donasi untuk pengembangan blog dan channel yang saya bangun melalui link ini  https://saweria.co/PenS