Beberapa penelitian telah dilakukan untuk mengklasifikasikan penyakit diabetes menggunakan Machine Studying, khususnya dengan algoritma Determination Tree dan Naïve Bayes. Dalam penelitian yang dilakukan oleh Maulana Muhammad Jogo Samodro et al. (2021) , algoritma Naïve Bayes dan Determination Tree digunakan untuk memprediksi diabetes. Studi ini menggunakan 520 information, dengan 300 information sebagai coaching dan 220 sebagai testing. Hasil penelitian menunjukkan bahwa algoritma Naïve Bayes menghasilkan akurasi sebesar 90,45%, sementara Determination Tree memiliki tingkat akurasi yang lebih tinggi, yaitu 96,36%. Penelitian ini menunjukkan bahwa Determination Tree unggul dalam memprediksi diabetes dibandingkan Naïve Bayes dalam dataset tersebut.
Penelitian serupa dilakukan oleh Fathorazi Nur Fajri (2021), yang juga membandingkan metode Naïve Bayes dan Determination Tree untuk klasifikasi penyakit diabetes. Penelitian ini menunjukkan hasil bahwa Naïve Bayes memberikan akurasi optimum sebesar 75,28%, sedangkan Determination Tree hanya mencapai akurasi 71,75%, keduanya menggunakan break up rasio 30%. Berdasarkan penelitian ini, Naïve Bayes menunjukkan performa yang lebih baik dalam klasifikasi diabetes dibandingkan Determination Tree, terutama pada information dengan break up rasio tertentu.
Dari kedua penelitian ini, terlihat adanya variasi hasil antara dua algoritma tersebut, yang menunjukkan bahwa performa dari algoritma tergantung pada karakteristik dataset dan teknik yang digunakan. Oleh karena itu, dalam penelitian ini, kami juga membandingkan tiga algoritma yang sering digunakan dalam klasifikasi, yaitu Regresi Logistik, Naïve Bayes, dan Determination Tree. Perbandingan ini bertujuan untuk mengevaluasi kinerja masing-masing mannequin pada dataset diabetes yang lebih besar dan lebih beragam, sehingga dapat menentukan algoritma mana yang paling efektif dalam melakukan klasifikasi diabetes.
Dataset yang digunakan dalam penelitian ini adalah Pima Indians Diabetes Database dari kaggle, yang berisi 768 baris dan 9 kolom. Setiap baris merepresentasikan seorang pasien, dan setiap kolom menggambarkan atribut atau fitur yang relevan untuk memprediksi apakah pasien tersebut positif atau negatif diabetes. Kolom-kolom dalam dataset ini adalah sebagai berikut:
- Pregnancies: Jumlah kehamilan yang pernah dialami oleh pasien.
- Glucose: Konsentrasi glukosa dalam plasma dua jam setelah tes toleransi glukosa.
- BloodPressure: Tekanan darah sistolik pasien (mm Hg).
- SkinThickness: Ketebalan lipatan kulit trisep pasien (mm).
- Insulin: Konsentrasi insulin dalam serum dua jam setelah tes toleransi glukosa (mu U/ml).
- BMI: Indeks Massa Tubuh (Physique Mass Index) pasien (kg/m²).
- DiabetesPedigreeFunction: Fungsi riwayat diabetes keluarga (menunjukkan kemungkinan genetik pasien menderita diabetes).
- Age: Usia pasien dalam tahun.
- Final result: Variabel goal yang menunjukkan apakah pasien positif atau negatif diabetes, dengan nilai 1 untuk pasien yang positif diabetes dan 0 untuk pasien yang negatif.
1. Regresi Logistik
Regresi logistik adalah sebuah metode algoritma pembelajaran mesin yang umumnya digunakan untuk melakukan klasifikasi pada information dengan variabel goal yang bersifat biner (misalnya, positif/negatif atau 0/1). Regresi logistik menggunakan fungsi logistik (atau sigmoid) untuk menghasilkan prediksi probabilitas kelas positif (y=1) berdasarkan nilai-nilai enter yang diberikan.
2. Naïve Bayes
Algoritma Naïve Bayes adalah sebuah metode klasifikasi probabilistik sederhana yang didasarkan pada teorema Bayes. Teorema Bayes menyatakan bahwa probabilitas suatu kejadian A, yang terjadi di bawah kondisi B, dapat dihitung menggunakan probabilitas B, yang terjadi di bawah kondisi A, dan probabilitas A dan B secara independen,
3. Determination Tree
Determination Tree adalah salah satu algoritma supervised studying yang populer digunakan untuk memecahkan masalah klasifikasi maupun regresi. Tujuan dari algoritma ini adalah untuk membangun mannequin prediksi berupa pohon keputusan yang terdiri dari serangkaian aturan dan kondisi yang memisahkan information ke dalam kelas-kelas yang berbeda. Setiap node dalam pohon keputusan mewakili suatu kondisi pada atribut information, sedangkan cabang-cabangnya mewakili nilai-nilai yang mungkin dari atribut tersebut. Di setiap node, keputusan dibuat berdasarkan nilai dari atribut yang sedang dinilai, sehingga information dipisahkan ke dalam subset-subset yang semakin kecil dan homogen
Langkah pertama dalam proses analisis adalah melakukan pra-pemrosesan information
<class 'pandas.core.body.DataFrame'>
RangeIndex: 768 entries, 0 to 767
Information columns (whole 9 columns):
# Column Non-Null Rely Dtype
--- ------ -------------- -----
0 Pregnancies 768 non-null int64
1 Glucose 768 non-null int64
2 BloodPressure 768 non-null int64
3 SkinThickness 768 non-null int64
4 Insulin 768 non-null int64
5 BMI 768 non-null float64
6 DiabetesPedigreeFunction 768 non-null float64
7 Age 768 non-null int64
8 Final result 768 non-null int64
dtypes: float64(2), int64(7)
reminiscence utilization: 54.1 KB
Mengubah jenis information kategorikal pada variabel Final result
Pregnancies int64
Glucose int64
BloodPressure int64
SkinThickness int64
Insulin int64
BMI float64
DiabetesPedigreeFunction float64
Age int64
Final result class
dtype: object
Memeriksa lacking worth setiap variabel
Pregnancies False
Glucose False
BloodPressure False
SkinThickness False
Insulin False
BMI False
DiabetesPedigreeFunction False
Age False
Final result False
dtype: bool
dari hasil tersebut tidak ditemukan information yang mengandung lacking worth
Melihat distribusi setiap variabel
Correlation
- Kadar Glukosa: Glukosa memiliki korelasi positif yang kuat dengan beberapa faktor risiko diabetes lainnya, seperti BMI, insulin, dan usia. Ini menunjukkan bahwa semakin tinggi kadar glukosa seseorang, semakin tinggi kemungkinan mereka memiliki faktor risiko diabetes lainnya.
- BMI: BMI juga memiliki korelasi positif yang cukup kuat dengan beberapa faktor risiko, termasuk glukosa, insulin, dan ketebalan kulit. Ini menunjukkan bahwa obesitas (BMI tinggi) terkait erat dengan risiko diabetes.
- Insulin: Insulin memiliki korelasi positif yang kuat dengan ketebalan kulit dan BMI, menunjukkan hubungan antara resistensi insulin, obesitas, dan risiko diabetes.
- Usia: Usia memiliki korelasi positif dengan beberapa faktor risiko, termasuk glukosa. Ini menunjukkan bahwa risiko diabetes cenderung meningkat seiring bertambahnya usia.
- Jumlah Kehamilan: Jumlah kehamilan memiliki korelasi yang relatif lemah dengan faktor risiko lainnya.
- Tekanan Darah: Tekanan darah memiliki korelasi sedang dengan beberapa faktor risiko, seperti BMI dan insulin.
- Ketebalan Kulit: Ketebalan kulit memiliki korelasi positif dengan insulin dan BMI.
- Riwayat Keluarga Diabetes: Riwayat keluarga diabetes memiliki korelasi yang relatif lemah dengan faktor risiko lainnya.
Information Splitting
Pada proses analisis ini, variabel prediktor (X) terdiri dari beberapa fitur yang digunakan untuk memprediksi kemungkinan seorang pasien terdiagnosis diabetes atau tidak. Fitur-fitur tersebut meliputi jumlah kehamilan (Pregnancies), tingkat glukosa dalam darah setelah tes toleransi glukosa (Glucose), tekanan darah sistolik pasien (BloodPressure), ketebalan lipatan kulit trisep (SkinThickness), konsentrasi insulin dalam darah setelah tes (Insulin), indeks massa tubuh atau BMI (Physique Mass Index), riwayat diabetes keluarga yang diwakili oleh DiabetesPedigreeFunction, dan usia pasien (Age). Sementara itu, variabel goal (y) adalah Final result, yang menunjukkan apakah seorang pasien positif (1) atau negatif (0) terkena diabetes. Variabel prediktor ini membantu dalam membangun mannequin untuk memprediksi risiko diabetes pada pasien.
#Membagi information menjadi information coaching dan information testing (80% Coaching dan 20% Testing)
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2,random_state=1)
Information dibagi menjadi dua set, yaitu coaching information (80%) dan testing information (20%).
Regresi Logistik
precision recall f1-score assist0 0.79 0.90 0.84 99
1 0.76 0.56 0.65 55
accuracy 0.78 154
macro avg 0.77 0.73 0.74 154
weighted avg 0.78 0.78 0.77 154
Mannequin Regresi Logistik menunjukkan akurasi keseluruhan sebesar 78%. Dalam evaluasi klasifikasi, precision untuk kelas negatif (0) adalah 79%, menunjukkan bahwa mannequin ini cukup baik dalam mengidentifikasi kasus negatif yang benar dari whole prediksi negatif yang dibuat. Recall untuk kelas negatif adalah 90%, yang berarti mannequin ini mampu mendeteksi 90% dari whole kasus negatif yang sebenarnya. Untuk kelas positif (1), precision adalah 76%, menandakan bahwa dari semua prediksi positif yang dibuat, 76% di antaranya benar-benar positif. Namun, recall untuk kelas positif hanya 56%, yang menunjukkan bahwa mannequin ini kurang efektif dalam mendeteksi semua kasus positif yang ada. Dengan F1-score keseluruhan sebesar 0.74, Regresi Logistik menunjukkan keseimbangan antara precision dan recall, tetapi ada ruang untuk perbaikan dalam mendeteksi kasus positif.
Dalam matrix ini, angka 89 mewakili jumlah prediksi benar untuk kelas negatif (0), sedangkan angka 10 adalah jumlah kasus negatif yang diprediksi sebagai positif. Angka 24 menunjukkan jumlah kasus positif yang diprediksi sebagai negatif, dan angka 31 adalah jumlah prediksi benar untuk kelas positif (1). Confusion matrix ini menunjukkan bahwa mannequin Regresi Logistik memiliki kemampuan yang baik dalam mengidentifikasi kasus negatif dengan sedikit kesalahan, namun kurang efektif dalam mendeteksi kasus positif, dengan banyak kasus positif yang terlewatkan.
Naive Bayes
precision recall f1-score assist0 0.80 0.86 0.83 99
1 0.71 0.62 0.66 55
accuracy 0.77 154
macro avg 0.76 0.74 0.74 154
weighted avg 0.77 0.77 0.77 154
Mannequin Naive Bayes memiliki akurasi keseluruhan 77%. Precision untuk kelas negatif adalah 80% dengan recall sebesar 86%, menunjukkan bahwa mannequin ini baik dalam mengidentifikasi kasus negatif dan mampu mendeteksi sebagian besar kasus negatif yang sebenarnya. Precision untuk kelas positif adalah 71%, menunjukkan bahwa 71% dari prediksi positif benar-benar positif. Recall untuk kelas positif adalah 62%, mengindikasikan bahwa mannequin ini dapat mendeteksi 62% dari kasus positif yang sebenarnya. F1-score keseluruhan sebesar 0.74 menunjukkan keseimbangan antara precision dan recall yang baik, menjadikan Naive Bayes sebagai mannequin yang cukup stabil dalam mendeteksi kedua kelas, meskipun masih ada potensi untuk perbaikan dalam deteksi kasus positif.
Angka 85 menunjukkan jumlah prediksi benar untuk kelas negatif (0), sedangkan angka 14 adalah jumlah kasus negatif yang diprediksi sebagai positif. Angka 21 menunjukkan jumlah kasus positif yang diprediksi sebagai negatif, dan angka 34 adalah jumlah prediksi benar untuk kelas positif (1). Matrix ini menunjukkan bahwa Naive Bayes memiliki performa yang baik dalam mendeteksi kasus negatif dan positif dengan kesalahan yang relatif lebih rendah dibandingkan dengan Regresi Logistik, tetapi masih ada beberapa kasus positif yang tidak terdeteksi.
Determination Tree
precision recall f1-score assist0 0.74 0.79 0.76 99
1 0.57 0.51 0.54 55
accuracy 0.69 154
macro avg 0.66 0.65 0.65 154
weighted avg 0.68 0.69 0.68 154
Mannequin Determination Tree memiliki akurasi keseluruhan sebesar 69%. Dalam evaluasi klasifikasi, precision untuk kelas negatif (0) adalah 74%, menunjukkan bahwa dari semua prediksi negatif yang dibuat, 74% di antaranya benar-benar negatif. Recall untuk kelas negatif adalah 79%, berarti mannequin ini dapat mendeteksi 79% dari whole kasus negatif yang sebenarnya. Untuk kelas positif (1), precision adalah 57%, yang menunjukkan bahwa hanya 57% dari prediksi positif yang benar-benar positif. Recall untuk kelas positif adalah 51%, mengindikasikan bahwa mannequin ini hanya dapat mendeteksi 51% dari kasus positif yang sebenarnya. F1-score keseluruhan sebesar 0.65 menunjukkan performa yang sedang dalam hal keseimbangan antara precision dan recall. Determination Tree menunjukkan kemampuan yang lebih baik dalam mendeteksi kasus negatif dibandingkan dengan kasus positif, tetapi performa keseluruhan dalam mendeteksi kasus positif masih perlu ditingkatkan.
Dalam matrix ini, angka 74 mewakili jumlah prediksi benar untuk kelas negatif (0), sementara angka 25 adalah jumlah kasus negatif yang diprediksi sebagai positif. Angka 27 menunjukkan jumlah kasus positif yang diprediksi sebagai negatif, dan angka 28 adalah jumlah prediksi benar untuk kelas positif (1). Confusion matrix ini menunjukkan bahwa Determination Tree lebih efektif dalam mendeteksi kasus negatif, tetapi memiliki kesulitan signifikan dalam mendeteksi kasus positif. Ada banyak kasus positif yang tidak terdeteksi, yang menyebabkan rendahnya precision dan recall untuk kelas positif. Ini mengindikasikan bahwa mannequin Determination Tree memerlukan perbaikan untuk meningkatkan kemampuan deteksi kasus positifnya
Dalam studi ini, tiga algoritma klasifikasi Regresi Logistik, Naive Bayes, dan Determination Tree dianalisis untuk memprediksi diabetes menggunakan dataset Pima Indians Diabetes Database dari kaggle . Regresi Logistik mencapai akurasi 78%, efektif dalam mendeteksi kasus negatif tetapi kurang dalam mengidentifikasi kasus positif dengan recall yang rendah untuk kelas positif. Naive Bayes memiliki akurasi 77% dan menunjukkan keseimbangan yang lebih baik antara deteksi kasus negatif dan positif, menjadikannya sebagai mannequin yang paling baik di antara ketiga algoritma. Determination Tree, dengan akurasi 69%, menunjukkan kesulitan terbesar dalam mendeteksi kasus positif, dengan banyak kasus positif yang terlewatkan. Secara keseluruhan, Naive Bayes memberikan performa terbaik dalam keseimbangan antara kelas dan akurasi, sementara Regresi Logistik dan Determination Tree menunjukkan keterbatasan dalam deteksi kasus positif.