Klasifikasi dengan Algoritma C4.5
Algoritma C4.5 — Halo halo sobat Exsight, dalam era big data seperti sekarang ini, tentunya kita dibanjiri oleh jutaan informasi setiap detik nya. Data hadir dalam berbagai bentuk seperti transaksi belanja, riwayat kesehatan, aktivitas media sosial, dan berbagai hal lainnya yang menerapkan Internet of Things (IoT). Namun, data yang melimpah tidak akan memberi manfaat jika hanya disimpan begitu saja. Tantangan utamanya adalah bagaimana mengubah data mentah tersebut menjadi knowledge yang bisa membantu pengambilan keputusan.
Salah satu pendekatan populer dalam data mining adalah metode klasifikasi. Di antara sekian banyak algoritma klasifikasi, pohon keputusan (decision tree) menjadi favorit karena hasilnya mudah dipahami oleh peneliti. Dari berbagai varian pohon keputusan, algoritma C4.5 menempati posisi penting. Algoritma C4.5 banyak digunakan dalam berbagai bidang, mulai dari memprediksi kelayakan kredit nasabah, mengidentifikasi penyakit berdasarkan gejala pasien, hingga memutuskan strategi pemasaran yang tepat.
Dalam artikel ini, kita akan membahas lebih mendalam mengenai konsep dasar, tahapan kerja, kelebihan dan kelemahan, hingga contoh penerapan algoritma C4.5. Dengan memahami algoritma ini, kita bisa melihat bagaimana data yang kompleks dapat diubah menjadi suatu dasar dalam analisis statistik, khususnya dalam pengambilan keputusan di kehidupan nyata.
Konsep Dasar Teori
Algoritma C4.5 adalah salah satu metode populer dalam machine learning yang digunakan untuk membuat pohon keputusan (decision tree). Sehingga dalam hal ini untuk memahami C4.5, kita perlu paham terlebih dahulu mengenai konsep dasar decision tree.
Pohon Keputusan (Decision Tree)
Pohon keputusan (decision tree) merupakan salah satu metode dalam pemodelan prediktif yang bisa dipakai untuk dua tujuan utama: mengklasifikasikan data maupun melakukan prediksi. Prinsip yang digunakan adalah divide and conquer atau “membagi lalu menyelesaikan”, yaitu dengan memecah permasalahan besar menjadi bagian-bagian yang lebih kecil dan sederhana
Dalam penerapannya, data yang semula berbentuk tabel diolah menjadi sebuah struktur menyerupai pohon. Dari pohon ini akan dihasilkan aturan-aturan (rules) yang dapat dipakai untuk menarik kesimpulan, dan aturan tersebut biasanya diringkas agar lebih mudah dipahami.
Secara umum, pohon keputusan (decision tree) adalah salah satu metode klasifikasi terhadap objek atau record. Struktur pohonnya terdiri dari simpul keputusan (decision node) yang saling terhubung dengan cabang, dimulai dari simpul akar (root node) dan berakhir pada simpul daun (leaf node) sebagai hasil akhir klasifikasi. Ilustrasi dari konsep dasar Pohon Keputusan (Decision Tree) ditampilkan sebagaimana gambar berikut.

Berdasarkan gambar di atas, pada decision tree, terdapat 3 jenis node, yaitu:
a. Root Node
Merupakan node paling atas. Pada node ini tidak ada input dan bisa tidak mempunyai output atau pun mempunyai output lebih dari satu.
b. Internal Node
Merupakan node percabangan. Pada node ini hanya terdapat satu input dan mempunyai output minimal dua.
c. Leaf Node atau Terminal Node
Merupakan node akhir. Pada node ini hanya terdapat satu input dan tidak mempunyai output.
Tahapan Algoritma C4.5
1. Menentukan Target (Kelas yang Akan Diprediksi)
Menentukan terlebih dahulu variabel mana yang ingin diprediksi. Contoh: “Apakah mahasiswa lulus tepat waktu atau tidak”, atau “Apakah pelanggan membeli produk atau tidak”.
2. Mempersiapkan Data Training
Data latih atau data training berisi data-data yang sudah dikelompokkan dalam kelas-kelas tertentu. Data training dapat diambil berdasarkan data historis yang pernah terjadi sebelumnya.
3. Menghitung Nilai Entropy (Nilai Ketidakpastian Data)
Nilai Entropy menunjukkan seberapa banyak informasi yang dibutuhkan untuk menjelaskan suatu data; jika semua data sudah pasti dalam satu kelas maka entropy = 0 karena tak perlu informasi tambahan, tetapi jika data masih beragam antar kelas maka entropy meningkat karena ketidakpastian atau kebingungan untuk menentukan kelasnya juga makin besar.
Adapun rumus yang digunakan untuk menghitung nilai entropy yaitu
Entropy\left( S \right)=\sum_{i=1}^{n}-p_{i}log_{2}\left( p_{i} \right)Keterangan:
S = Himpunan kasus
n = Jumlah partisi S
pi = Proporsi Si terhadap S
3. Menghitung Information Gain untuk Tiap Atribut
Information Gain adalah ukuran seberapa besar pengurangan ketidakpastian (entropy) setelah data dibagi berdasarkan suatu atribut. Semakin besar nilai Information Gain, semakin banyak “informasi baru” yang kita dapat dari atribut itu, artinya atribut tersebut sangat membantu untuk memisahkan data ke dalam kelas yang benar. Atribut dengan Information Gain besar berarti sangat membantu memisahkan kelas.
Gain\left( S,A \right)=Entropy\left( S \right)-\sum_{i=1}^{n}\frac{\left| S_{i} \right|}{\left| S \right|}Entropy\left( S_{i} \right)Keterangan:
S = Himpunan kasus
A = Atribut
n = Jumlah partisi atribut A
|Si| = Jumlah kasus pada partisi ke-i
|S| = Jumlah kasus dalam S
4. Membagi Dataset Berdasarkan Atribut yang Terpilih
Dataset dibagi menjadi cabang-cabang sesuai nilai atribut yang dipilih. Jika atributnya numerik (kontinu), algoritma C4.5 akan menentukan threshold (misalnya: “Umur ≤ 25” dan “Umur > 25”).
5. Mengulangi Proses
Pada tiap cabang, langkah 2 sampai dengan langkah 4 diulang kembali dengan data subset, sampai semua data dalam cabang sudah homogen (satu kelas), atau tidak ada atribut yang tersisa.
6. Menangani Missing Value
Jika ada data yang hilang, algoritma C4.5 akan tetap bisa bekerja dengan memberikan probabilitas ke tiap cabang berdasarkan distribusi data yang ada.
7. Melakukan Proses Pruning (Pemangkasan Pohon)
Setelah pohon terbentuk, algoritma C4.5 melakukan pemangkasan (pruning) untuk mengurangi kompleksitas pohon. Tujuannya agar pohon tidak terlalu bergantung dengan data latih (overfitting) dan lebih mampu melakukan generalisasi pada data baru.
Kelebihan dan Kelemahan
Kelebihan
- Dapat Menangani Variabel Kontinu dan Diskrit
Algoritma C4.5 bisa bekerja pada atribut diskrit maupun kontinu dengan melakukan pembagian (threshold) otomatis saat membangun pohon. - Menangani Data yang Terdapat Nilai Hilang (Missing Values)
Algoritma ini memiliki mekanisme untuk tetap menggunakan data yang memiliki atribut yang hilang, sehingga tidak perlu membuang data. - Algoritma C4.5 Mudah Diinterpretasikan
Karena algoritma C4.5 menghasilkan pohon keputusan, aturan-aturan (“if … then …”) yang dihasilkan relatif jelas dan mudah dipahami. - Memiliki Mekanisme Pruning
Untuk menghindari adanya overfitting, dalam algoritma C4.5 dilakukan pruning pohon keputusan sehingga model tidak terlalu kompleks dan secara generalisasi bisa lebih baik. - Dapat Digunakan dalam Berbagai Bidang
Banyak penelitian empiris menunjukkan bahwa algoritma C4.5 memberikan hasil evaluasi akurasi dan recall yang tinggi dalam tugas klasifikasi di berbagai bidang (kesehatan, kepuasan pelanggan, status gizi, dll.).
Kelemahan
- Kebutuhan komputasi yang lebih besar
Karena harus menghitung gain ratio, menangani atribut kontinu, menangani missing value atau nilai hilang, dan melakukan pruning, maka perhitungan menjadi lebih berat dibanding algoritma yang lebih sederhana. - Rentan terhadap Overfitting bila Pruning kurang tepat
Jika pohon terlalu dalam dan terlalu banyak percabangan tanpa pruning yang memadai, bisa jadi pohon model terlalu cocok dengan data training tapi buruk dalam generalisasi data baru. - Interpretasi Bisa Menjadi Sulit Ketika Pohonnya Sangat Besar
Meski aturan umumnya mudah dibaca, jika pohonnya memiliki banyak cabang dan kedalaman, membaca seluruh pohon bisa menjadi rumit dan aturan bisa banyak sekali. - Kinerja Mungkin Kurang Optimal jika Data Sangat Besar atau Sangat Banyak Variabel
Untuk dataset yang sangat besar dan fitur banyak, waktu pelatihan bisa menjadi lama, dan penggunaan memori bisa tinggi.
Penerapan Algoritma C4.5
Misalnya kita ingin memprediksi apakah seseorang akan membeli asuransi jiwa atau tidak, berdasarkan beberapa atribut:
| No | Usia | Penghasilan | Status Keluarga | Beli Asuransi |
| 1 | Muda | Rendah | Lajang | Tidak |
| 2 | Muda | Tinggi | Menikah | Ya |
| 3 | Dewasa | Sedang | Menikah | Ya |
| 4 | Dewasa | Tinggi | Lajang | Ya |
| 5 | Tua | Sedang | Menikah | Ya |
| 6 | Tua | Rendah | Lajang | Tidak |
Penyelesaian:
Berdasarkan tabel di atas, terdapat total 6 data, dimana 4 orang membeli asuransi dan 2 orang tidak membeli asuransi. Tahapan pertama dilakukan perhitungan entropy awal (S) sebagai berikut.
Entropy\left( S \right)=-\left( \frac{4}{6}log_{2}\frac{4}{6}+\frac{2}{6}log_{2}\frac{2}{6} \right)=0.918Berdasarkan perhitungan nilai entropy awal (S) di atas dapat diartikan bahwa sebelum dipisahkan, data masih cukup acak atau belum pasti.
Selanjutnya dilakukan perhitungan nilai entropy untuk setiap atribut (Usia, Penghasilan, Status Keluarga).
ATRIBUT USIA
*Usia Muda
Total jumlah responden berusia muda pada tabel yaitu 2 orang, dimana 1 membeli asuransi (ya) dan 1 tidak.
\begin{matrix}
p\left( Ya \right)=\frac{1}{2}=0.5,\text{ }p\left( Tidak \right)=\frac{1}{2}=0.5\\
Entropy\left( Muda \right)=-\left[ 0.5log_{2}\left( 0.5 \right)+ 0.5log_{2}\left( 0.5 \right) \right]=1
\end{matrix}
*Usia Dewasa
Total jumlah responden berusia dewasa pada tabel yaitu 2 orang, dimana keduanya membeli asuransi (ya)
\begin{matrix}
p\left( Ya \right)=\frac{2}{2}=1,\text{ }p\left( Tidak \right)=\frac{0}{2}=0\\
Entropy\left( Muda \right)=-\left[ 1log_{2}\left( 1\right)+ 0log_{2}\left( 0 \right) \right]=0
\end{matrix}
*Usia Tua
Total jumlah responden berusia tua pada tabel yaitu 2 orang, dimana 1 membeli asuransi (ya) dan 1 tidak.
\begin{matrix}
p\left( Ya \right)=\frac{1}{2}=0.5,\text{ }p\left( Tidak \right)=\frac{1}{2}=0.5\\
Entropy\left( Tua \right)=-\left[ 0.5log_{2}\left( 0.5 \right)+ 0.5log_{2}\left( 0.5 \right) \right]=1
\end{matrix}
Selanjutnya setelah mengetahui nilai entropy untuk atribut usia muda, dewasa, dan tua, dilakukan perhitungan rata-rata entropy (Weighted Average) untuk entropy usia.
Entropy\left( Usia \right)=\frac{2}{6}\left( 1 \right)+\frac{2}{6}\left( 0 \right)+\frac{2}{6}\left( 1 \right)=0.667Setelah mendapatkan nilai rata-rata entropy Usia sebesar 0.667, berikutnya dilakukan perhitungan Information Gain untuk atribut Usia
\text{Information Gain (Usia)}=0.918-0.667=0.251Tahapan berikutnya, dengan cara yang sama dihitung pula masing-masing nilai entropy dan information gain untuk atribut Penghasilan dan atribut Status Keluarga
ATRIBUT PENGHASILAN
- Penghasilan Rendah dimana semua “Tidak Membeli Asuransi” maka Entropy = 0
- Penghasilan Sedang dimana semua “Ya (Membeli Asuransi)” maka Entropy = 0
- Penghasilan Tinggi dimana semua “Ya (Membeli Asuransi)” maka Entropy = 0
Rata-rata Entropy(Penghasilan) = 0
sehingga didapatkan
Information Gain(Penghasilan) = 0.918 – 0 = 0.918
ATRIBUT STATUS KELUARGA
- Status Lajang dimana 1 orang Ya (Membeli Asuransi), 2 orang Tidak Membeli Asuransi maka Entropy = 0.918
- Status Menikah dimana semua Ya (Membeli Asuransi) maka Entropy = 0
Rata-rata Entropy(Status Keluarga) = 0.459
sehingga didapatkan
Information Gain(Penghasilan) = 0.918 – 0.459 = 0.459
Setelah dilakukan perhitungan Information Gain untuk masing-masing atribut, diketahui bahwa atribut dengan Information Gain tertinggi yaitu atribut Penghasilan. Maka untuk atribut Penghasilan, paling baik untuk dijadikan node pertama (root) dalam pohon keputusan (decision tree)
Interpretasi dari hasil perhitungan berdasarkan atribut Penghasilan sebagai root yaitu
- Jika penghasilan rendah, kemungkinan responden kedepannya tidak beli asuransi.
- Jika penghasilan sedang ataupun tinggi , maka kemungkinan responden kedepannya beli asuransi.
Referensi
Nah, sampai juga kita di akhir artikel. Sampai disini dulu penjelasan terkait Klasifikasi dengan Algoritma C4.5. Jika masih ada yang dibingungkan atau ada yang ingin didiskusikan, bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya. See you!
Klasifikasi dengan Algoritma C4.5 Read More »











