Implementasi Random Forest dengan LASSO dalam Klasifikasi Penyakit yang Ditularkan Melalui Nyamuk
on
JNATIA Volume 1, Nomor 4, Agustus 2023
Jurnal Nasional Teknologi Informasi dan Aplikasinya
p-ISSN: 2986-3929
Implementasi Random Forest dengan LASSO Dalam Klasifikasi Penyakit yang Ditularkan Melalui Nyamuk
Kadek Dwitya Adhi Pradytoa1, Made Agung Raharjaa2
Program Studi Informatika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Udayana
Jalan Raya Kampus Udayana, Bukit Jimbaran, Kuta Selatan, Badung, Bali Indonesia 1[email protected] 2[email protected]
Abstract
Several diseases that can attack human health can be transmitted through disease vectors. One of the insects belonging to the disease vector is the mosquito. Diseases that can attack humans due to transmission through mosquitoes include malaria, dengue fever, chikungunya, yellow fever, rift valley fever, and many more. With so many types of diseases that are transmitted by mosquitoes and the symptoms that look quite similar, a classification process is carried out to distinguish the types of diseases. In this study, the classification was carried out using the Random Forest algorithm with the LASSO algorithm for feature selection. It was found that the average accuracy values of the Random Forest before and after carrying out feature selection using LASSO were 88% and 76%, respectively. From the values obtained, it can be concluded that the Random Forest has better performance without feature selection using the LASSO method.
Keywords: Classification, Random Forest, LASSO, Mosquito-Borne Diseases
Beberapa penyakit yang bisa menyerang kesehatan manusia dapat ditularkan melalui vektor penyakit. Vektor penyakit merupakan jenis serangga yang bisa menularkan penyakit. Terjadi pertumbuhan sumber penyakit seperti virus di dalam tubuh vektor dengan jumlah yang cukup untuk menimbulkan penyakit baru [1]. Salah satu serangga yang tergolong ke dalam vektor penyakit adalah nyamuk. Nyamuk betina menghisap darah manusia untuk dijadikan sumber energi bagi perkembangan telurnya. Melalui proses menghisap darah inilah nyamuk dapat menularkan penyakit yang mereka bawa. Penyakit-penyakit yang dapat menyerang manusia akibat penularan melalui nyamuk antara lain yaitu malaria, demam berdarah dengue (DBD), chikungunya, demam kuning, demam rift valley, dan masih banyak lagi.
Dengan banyaknya jenis penyakit yang ditularkan melalui nyamuk serta gejala yang terlihat cukup mirip yaitu adanya demam, maka untuk membedakan jenis-jenis penyakit tersebut dilakukan proses klasifikasi. Klasifikasi merupakan proses pengelompokkan sekumpulan kelas berdasarkan data-data yang ada [2]. Klasifikasi dapat digunakan untuk mengelompokkan dua jenis kelas (binary class) ataupun lebih dari dua jenis kelas (multi-class). Salah satu algoritma yang bisa digunakan baik untuk klasifikasi binary class ataupun multi-class yaitu Random Forest. Algoritma Random Forest merupakan pengembangan dari Classification and Regression Tree (CART) dengan menerapkan random feature selection dan bagging (bootstrap-aggregating). Model klasifikasi dari algoritma Random Forest merupakan sekumpulan Decision Tree. Kelemahan dari penggunaan Decision Tree dalam proses klasifikasi yaitu terbentuknya model yang overfitting karena terpengaruh noise dari data latih. Overfitting adalah suatu kondisi dimana model yang dilatih lebih condong dalam memprediksi data latih daripada data uji. Dalam mengatasi overfitting, diterapkan algoritma Random Forest yang terdiri dari sekumpulan Decision Tree yang dilatih dengan keadaan yang berbeda di tiap pohonnya dan masih bisa mendapatkan akurasi yang maksimum [3].
Terdapat banyak cara yang bisa dilakukan dalam mengoptimalkan proses klasifikasi salah satunya yaitu dengan menyeleksi fitur yang tidak ada hubungannya dengan kelas prediksi. Proses seleksi fitur akan menghapus variabel yang tidak bisa diprediksi dan berlebihan. Proses klasifikasi dengan fitur yang optimal akan menghasilkan model klasifikasi yang bekerja lebih cepat serta dapat mengurangi overfitting [4].
Pada penelitian ini, dilakukan proses klasifikasi penyakit yang ditularkan melalui nyamuk menggunakan algoritma Random Forest. Adapun optimasi yang dilakukan yaitu penyeleksian fitur dengan menggunakan LASSO. Penelitian ini juga akan menguji tingkat akurasi Random Forest sebelum dan sesudah seleksi fitur menggunakan LASSO.
Data yang akan digunakan dalam penelitian ini merupakan data sekunder yang didapat dari website Kaggle (https://www.kaggle.com/datasets/richardbernat/vector-borne-disease-
prediction). Data pada Kaggle masih berupa data penyakit yang ditularkan melalui vektor penyakit. Maka dari itu, data akan dibatasi sampai baris ke-184 yang merupakan bagian data penyakit yang ditularkan melalui nyamuk.
Gambar 1. Data Penyakit Yang Ditularkan Oleh Nyamuk
Pada data tersebut, terdapat 64 jenis fitur untuk mendeteksi penyakit yang ditularkan melalui nyamuk. Fitur-fitur tersebut terdiri dari “sudden_fever” sampai “bullseye_rash”. Terdapat 8 kelas yang akan diklasifikasikan. Kelas-kelas tersebut antara lain “Chikungunya”, “Dengue”, “Rift Valley fever”, “Yellow Fever”, “Zika”, “Malaria”, “Japanese encephalitis”, dan “West Nile fever” Total keseluruhan data yang digunakan sebanyak 184 data dengan pembagian data latih dan data uji adalah 70:30.
-
2.2. Seleksi Fitur Menggunakan LASSO
LASSO adalah singkatan dari Least Absolute Shrinkage and Selection Operator dan merupakan metode yang cukup bagus dalam melakukan seleksi fitur. Metode ini bekerja dengan proses penyusutan nilai koefisien dari fitur yang sedang diuji menjadi nol. Setelah itu, metode ini memilih variabel-variabel yang tidak bernilai nol untuk menjadi fitur yang digunakan untuk proses klasifikasi [4].
-
2.3. Random Forest
Random Forest merupakan salah satu algoritma Machine Learning yang bekerja dengan mengombinasikan sejumlah algoritma Decision Tree dalam pengambilan keputusannya [5].
Metode ini digunakan untuk membangun Decision Tree yang terdiri dari root node, internal node, dan leaf node dengan mengambil fitur secara acak (random). Root node merupakan bagian yang terletak paling atas, atau biasa disebut sebagai akar dari pohon. Internal node adalah bagian percabangan, dimana bagian ini memiliki keluaran minimal dua dan hanya ada satu masukkan. Sedangkan leaf node merupakan bagian terakhir yang hanya memiliki satu masukkan dan tidak memiliki keluaran [6].
Proses klasifikasi menggunakan algoritma Random Forest akan dilakukan sebelum dan sesudah melakukan seleksi fitur dengan LASSO. Pencarian model terbaik dari Random Forest akan dilakukan dengan menggunakan metode Random Search. Metode ini digunakan karena lebih unggul dibandingkan dengan Grid Search dan Bayesian Search dalam mencari parameter dari Random Forest [5]. Adapun parameter yang dicari menggunakan Random Search yaitu “n_estimators”, “criterion”, “max_depth”, “min_samples_split”, dan “max_features”.
-
2.4. Evaluasi
Evaluasi dilakukan dengan menghitung nilai akurasi dan presisi dari model. Pengujian akurasi dilakukan untuk mengetahui seberapa akurat model dalam melakukan prediksi. Sedangkan pengujian presisi dilakukan untuk mengetahui seberapa benar model melakukan prediksi di tiap kelasnya. Nilai akurasi dan presisi dapat ditentukan dengan rumus berikut.
Akurasi =
Prediksi benar
Total prediksi
Presisi =
True positive
True positive+False positive
(1)
(2)
Proses seleksi fitur, nilai alpha yang digunakan pada LASSO adalah 0,1. Adapun nilai koefisien setiap fitur yang didapat setelah melakukan seleksi fitur dengan metode LASSO dapat dilihat pada Gambar 2 di bawah.
array([0.14982622, |
Q- , |
Q- > |
0.34365757, |
0.26094839, |
Q- , |
0.Θ4326Θ63, |
Q- > |
0- > |
0- , |
Q- > |
0.06598752, |
Q- , |
0- , |
0- , |
Q- j |
0.03846259, |
Q- j |
0- > |
0- , |
0.16111974, |
0.0686008 , |
0.33595216, |
0.05387347, |
0- , |
0.046126 , |
0.3407998 , |
0.23243593, |
0- , |
0- , |
0.15462936, |
Q- , |
0.20797139, |
0.99854777, |
0.85869685, |
0.32251722, |
0.14780409, |
0.21390347, |
0.4914114 , |
0- , |
0.13825577, |
0.62696595, |
0.29986494, |
0- , |
0- , |
0.09864327, |
0.35127592, |
Q- , |
0- , |
0- , |
Q- , |
0.05747193, |
Q- , |
θ- , |
0.58092856, |
Q- > |
Q- > |
Q- > |
0- > |
0. j |
Q- > |
Q- j |
Q- > |
0- D |
I |
Gambar 2. Nilai Koefisien Setiap Fitur
Fitur-fitur yang akan digunakan dalam proses klasifikasi memiliki nilai koefisien yang lebih dari nol (koefisien > 0). Berdasarkan nilai koefisien yang didapat di atas, daftar fitur-fitur yang terpilih dan tidak terpilih dapat dilihat pada Gambar 3 dan Gambar 4.
array(['sudden_fever', 'nose-bleed', 'nuscle_pain', 'vomiting', 'ascites', 'myalgia', 'stomach_pain', 'orbital_pain', 'neck_pain', ’weakness', 'weight-loss', ’gum_bleed', 'jaundice', 'inflammation', 'losS-of_appetite', 'urination_loss', 'slow_heart_rate', 'abdominal-pain', 'Iight-Sensitivity', 'yellow_skin', 'yelloW-eyes', 'microcephaly', 'rigor', 'bitter_tongue’, 'Cocacola urine', 'hypoglycemia', 'confusion', 'Iyniph swells'], dtype='<U21')
Gambar 3. Hasil Seleksi Fitur Yang Terpilih
array(['headache,, ,mouth_bleed,, 'joint_pain', 'rash', 'diarrhea', 'hypotension', 'pleuraleffusion', 'gastrobleeding', 'swelling', 'nausea', 'chills', ,digestion_trouble', 'fatigue', 'skin_lesions', 'back—pain', 'coma', 'diziness', 'red_eyes', 'facial—distortion', 'convulsion', 'anemia', ,prostraction', 'hyperpyrexia', "stiff—neck,, 'irritability', 'tremor', 'paralysis',
' breathing—restriction,, ,toe_infIaimiation', 'finger_infIammation', 'lipS—irritation', 'itchiness', 'ulcers', 'toenail_loss', 'speech—problem', 'bullseye_rash'], dtype='<U21')
Gambar 4. Hasil Seleksi Fitur Yang Tidak Terpilih
Pada penelitian ini, proses klasifikasi dilakukan sebanyak 2 kali yaitu sebelum melakukan seleksi fitur dan sesudah melakukan seleksi fitur. Sebelum melakukan klasifikasi dengan Random Forest, dicari model terbaik dengan metode Random Search. Adapun nilai-nilai dari hyperparameter yang akan dicari bisa dilihat pada Tabel 1.
Tabel 1. Nilai Hyperparameter
Nama Parameter |
Nilai |
n_estimators |
[50, 100, 150, 200] |
criterion |
[‘gini’, ‘entropy’] |
max_depth |
[None, 5, 10] |
min_samples_split |
[2, 4, 6, 8, 10] |
max_features |
['sqrt', 'log2'] |
Pada saat sebelum melakukan seleksi fitur didapatkan model dengan nilai parameter optimal seperti pada Tabel 2.
Tabel 2. Nilai Parameter Optimal Sebelum Melakukan Seleksi Fitur
Nama Parameter |
Nilai |
n_estimators |
200 |
criterion |
‘entropy’ |
max_depth |
10 |
min_samples_split |
4 |
max_features |
'log2' |
Berdasarkan parameter tersebut, dilakukan proses klasifikasi dan didapatkan rata-rata akurasi dan presisi setiap kelas seperti pada Tabel 3.
Tabel 3. Hasil Akurasi Dan Presisi Sebelum Melakukan Seleksi Fitur
Kelas |
Rata-Rata Rata-Rata Presisi (%) Akurasi (%) |
Chikungunya |
89 |
Dengue |
97 |
Rift Valley fever |
79 |
Yellow Fever |
100 |
Zika |
88 81 |
Malaria |
83 |
Japanese encephalitis |
84 |
West Nile fever |
85 |
Setelah melewati tahap seleksi fitur, pencarian model Random Forest yang optimal dilakukan sekali lagi menggunakan metode Random Search. Hasil pencarian tersebut dapat dilihat pada Tabel 4.
Tabel 4. Nilai Parameter Optimal Setelah Melakukan Seleksi Fitur
Nama Parameter |
Nilai |
n_estimators |
150 |
criterion |
‘gini’ |
max_depth |
5 |
min_samples_split |
8 |
max_features |
'log2' |
Setelah pencarian parameter optimal dilakukan, tahap selanjutnya adalah menguji Random Forest berdasarkan parameter di atas dan fitur yang sudah diseleksi. Adapun hasil dari pengujian tersebut dapat dilihat pada Tabel 5.
Tabel 5. Hasil Akurasi Dan Presisi Setelah Melakukan Seleksi Fitur
Kelas |
Rata-Rata Presisi (%) |
Rata-Rata Akurasi (%) |
Chikungunya |
62 | |
Dengue |
100 | |
Rift Valley fever |
64 | |
Yellow Fever |
71 |
76 |
Zika |
68 | |
Malaria |
81 | |
Japanese encephalitis |
73 | |
West Nile fever |
84 |
Berdasarkan hasil evaluasi yang sudah dilakukan, didapatkan bahwa nilai rata-rata akurasi dari Random Forest sebelum dan sesudah melakukan seleksi fitur menggunakan LASSO secara berturut-turut yaitu 88% dan 76%. Dari nilai yang sudah didapat, dapat disimpulkan bahwa Random Forest memiliki performa yang lebih baik tanpa adanya seleksi fitur dengan metode LASSO. Hal tersebut dapat terjadi karena beberapa faktor seperti nilai alpha dari LASSO yang kurang optimal dalam menentukan fitur-fitur terbaik, adanya fitur yang sebenarnya berpengaruh besar terhadap akurasi dan presisi namun tidak terpilih saat penyeleksian fitur, dan faktor lainnya yang belum bisa penulis dapatkan.
Daftar Pustaka
-
[1] A. Dinata, Bersahabat dengan Nyamuk: Jurus Jitu Atasi Penyakit Bersumber Nyamuk.
Arda Publishing House, 2018.
-
[2] I. Fadilla, P. P. Adikara, dan R. S. Perdana, “Klasifikasi Penyakit Chronic Kidney Disease
(CKD) Dengan Menggunakan Metode Extreme Learning Machine (ELM),” J. Pengemb. Teknol. Inf. dan Ilmu Komput. e-ISSN, vol. 2548, hlm. 964X, 2018.
-
[3] R. Wasono, “Perbandingan Metode Random Forest dan naive bayes untuk Klasifikasi
Debitur Berdasarkan Kualitas Kredit,” 2022.
-
[4] M. Parzinger, L. Hanfstaengl, F. Sigg, U. Spindler, U. Wellisch, dan M. Wirnsberger,
“Comparison of different training data sets from simulation and experimental measurement with artificial users for occupancy detection — Using machine learning methods Random Forest and LASSO,” Build Environ, vol. 223, hlm. 109313, 2022, doi:
https://doi.org/10.1016/j.buildenv.2022.109313.
-
[5] U. Sunarya dan T. Haryanti, “Perbandingan Kinerja Algoritma Optimasi pada Metode
Random Forest untuk Deteksi Kegagalan Jantung,” Jurnal Rekayasa Elektrika, vol. 18, no. 4, 2022.
-
[6] V. W. Siburian dan I. E. Mulyana, “Prediksi Harga Ponsel Menggunakan Metode Random
Forest,” dalam Annual Research Seminar (ARS), 2019, hlm. 144–147.
1202
Discussion and feedback