Sebuah Studi Perbandingan Memprediksi Penyakit Jantung dengan Algoritma Machine Learning
1. Introduction
Sebuah Studi Perbandingan Memprediksi Penyakit Jantung dengan Algoritma Machine Learning
1. Introduction
Penyakit jantung adalah salah satu penyebab kematian utama di seluruh dunia. Deteksi dini penyakit ini menjadi penting untuk meningkatkan peluang perawatan yang efektif. Proyek ini berfokus pada prediksi penyakit jantung dengan memanfaatkan machine learning, yang bertujuan untuk membantu tenaga medis mengidentifikasi pasien dengan risiko tinggi terkena serangan jantung. Teknologi prediktif seperti ini berpotensi mengurangi biaya perawatan kesehatan dan menyelamatkan nyawa.
Motivasi untuk menyelesaikan masalah ini muncul dari pentingnya menyediakan alat bantu yang cepat dan akurat bagi dokter. Dengan menggunakan model machine learning, prediksi dapat dilakukan secara real-time berdasarkan berbagai faktor kesehatan pasien. Sebagai contoh, karakteristik seperti usia, jenis kelamin, tekanan darah, kadar kolesterol, dan variabel lainnya menjadi input bagi model.
Photo by Alexander Grey on Unsplash
Input dan Output:
Input dari permasalahan ini adalah fitur-fitur klinis dari pasien, termasuk variabel seperti usia, jenis kelamin, tekanan darah, kadar kolesterol, detak jantung maksimal, dan lain-lain.
Outputnya adalah prediksi apakah seseorang berisiko terkena penyakit jantung atau tidak. Dengan menggunakan berbagai algoritma machine learning seperti Logistic Regression, K-Nearest Neighbors (KNN), Random Forest, Adaboost dan Support Vector Classifier (SVC), kita memprediksi probabilitas pasien terkena penyakit jantung.
Proyek ini berbeda dari yang lain karena menggunakan pendekatan beragam model serta mengombinasikan beberapa teknik untuk mengatasi masalah ketidakseimbangan data. Penggunaan Hyperparameter Tuning seperti GridSearchCV dan RandomizedSearchCV juga dilakukan untuk mengatasi tantangan tersebut.
Tujuan akhir dari proyek ini adalah menemukan model yang memberikan performa prediksi terbaik dan robust pada data baru, sehingga dapat diimplementasikan dalam konteks dunia nyata untuk membantu dokter mengambil keputusan.
2. Related Work
Untuk mendukung pengembangan model prediksi penyakit jantung ini, beberapa penelitian sebelumnya telah dilakukan dengan pendekatan yang serupa. Beberapa karya yang relevan adalah sebagai berikut:
- Machine Learning-Based Predictive Models for Detection of Cardiovascular Diseases Paper ini mengeksplorasi berbagai model machine learning termasuk K-Nearest Neighbors, Support Vector Machine, Logistic Regression, dan XGBoost untuk prediksi penyakit jantung. Penelitian ini fokus pada tantangan dataset yang tidak seimbang, mirip dengan masalah yang mungkin Anda hadapi dalam proyek Anda. Hasil optimal menggunakan XGBoost mencapai akurasi 98.50%. (link)
- Heart Disease Prediction Using Machine Learning Methods Paper ini dari Birmingham City University menggunakan berbagai algoritma machine learning, termasuk Random Forest dan Gradient Boosting, untuk memprediksi penyakit jantung. Paper ini gratis diakses dan memberikan analisis mendalam terhadap dataset yang seimbang dan tidak seimbang. (link)
- A Review of Machine Learning Algorithms for Heart Disease Prediction Paper ini meninjau berbagai algoritma dan teknik optimasi dalam deteksi dini penyakit jantung, termasuk Logistic Regression, Decision Trees, dan ensemble methods seperti AdaBoost. Penelitian ini menawarkan wawasan tentang kekuatan dan kelemahan setiap metode. (link)
- Predictive Analytics for Heart Disease Using Machine Learning Fokus paper ini adalah evaluasi beberapa model prediksi jantung menggunakan teknik seperti SVM dan Random Forest. Pendekatan ini relevan dengan proyek Anda karena membahas bagaimana standarisasi data dapat mempengaruhi kinerja model. (link)
- Heart Disease Prediction Using Hybrid Machine Learning Models Paper ini membahas tentang penggunaan model hybrid yang menggabungkan beberapa teknik seperti KNN dan SVM untuk meningkatkan performa model prediksi. Model hybrid dapat menjadi pilihan jika model individual Anda tidak memberikan hasil optimal. (link)
Kategori Pendekatan:
- Algoritma Klasifikasi Tradisional (Logistic Regression, SVM, KNN): Penelitian pada kategori ini menekankan pada kecepatan dan interpretasi yang baik, namun sering kali tidak optimal untuk dataset yang besar dan kompleks seperti prediksi penyakit jantung
- Ensemble Learning (Random Forest, XGBoost, AdaBoost): Kategori ini lebih fokus pada penggunaan beberapa model untuk meningkatkan akurasi, cocok untuk dataset yang kompleks dan tidak seimbang. Hasilnya menunjukkan performa yang unggul dalam beberapa kasus, tetapi bisa memerlukan sumber daya komputasi yang lebih besar.
Kelebihan dan Kekurangan:
- Kelebihan dari ensemble methods seperti Random Forest dan XGBoost adalah kemampuan mereka dalam menangani dataset besar dan memberikan akurasi yang tinggi. Namun, kekurangannya adalah kebutuhan waktu komputasi yang lebih lama dan model yang lebih sulit untuk diinterpretasikan.
- Kelebihan dari algoritma tradisional seperti Logistic Regression dan KNN adalah mereka mudah diinterpretasi dan relatif cepat dalam melakukan prediksi, tetapi kekurangannya adalah akurasi yang cenderung lebih rendah, terutama pada dataset yang tidak seimbang.
Persamaan dan Perbedaan:
- Persamaan: Kedua pendekatan ini, baik yang Anda gunakan maupun yang ada di paper, memanfaatkan dataset yang serupa (Heart Disease UCI), dan menghadapi tantangan data yang tidak seimbang
- Perbedaan: Paper yang saya referensikan fokus pada optimasi menggunakan model ensemble atau hybrid, sementara Anda menggunakan model-model individu seperti Logistic Regression, KNN, dan SVC.
Opini:
Model-model yang saya gunakan ( Logistic Regression, Random Forest, KNN, AdaBoost, dan SVC) sesuai dengan pendekatan umum dalam prediksi penyakit jantung. Sebagian besar makalah menekankan pentingnya metode ensemble seperti Random Forest dan AdaBoost karena ketahanannya terhadap overfitting dan peningkatan generalisasi pada dataset medis yang terstruktur.
Namun, integrasi metode voting ensemble dan teknik boosting tambahan, seperti yang ditunjukkan dalam beberapa makalah, dapat memberikan kinerja prediktif yang lebih baik. Selain itu, fokus pada tuning hyperparameter menggunakan cross-validation, seperti dalam studi-studi tersebut, kemungkinan akan meningkatkan keandalan dan performa model. Mengingat hasil yang beragam di berbagai dataset, tuning dan pengujian yang cermat sangat penting untuk memaksimalkan akurasi model pada project prediksi penyakit jantung.
3. Dataset & Features
Dataset yang digunakan dalam proyek ini adalah “Heart Disease Dataset” dari UCI Machine Learning Repository. Dataset ini terdiri dari 303 sampel dengan 13 fitur input, seperti usia, jenis kelamin, tekanan darah, kolesterol, dan hasil pemeriksaan klinis lainnya.
Secara khusus, database Cleveland adalah satu-satunya yang telah digunakan oleh peneliti machine learning hingga saat ini. Kolom “target” mengacu pada keberadaan penyakit jantung pada pasien, dengan nilai integer dari 0 (tidak ada penyakit) hingga 4 (kehadiran penyakit). Eksperimen yang dilakukan dengan database Cleveland berfokus pada usaha untuk membedakan antara keberadaan penyakit (nilai 1, 2, 3, 4) yang akan dikonversikan menjadi 1 dengan tidak adanya penyakit (nilai 0)
Dataset dibagi menjadi dua bagian: 80% untuk training dan 20% untuk testing. Proses preprocessing mencakup imputasi nilai missing, standarisasi data dengan RobustScaler, serta One-Hot Encoding untuk variabel kategorikal. Selain itu, saya melakukan teknik oversampling untuk mengatasi masalah ketidakseimbangan kelas target.

Dataset atribut
4. Methodology
Bagian ini saya memperkenalkan metodologi untuk membangun model prediksi dengan menggunakan beberapa algoritma machine learning. Gambar alur dibawah menunjukkan langkah-langkah metodologi untuk menentukan seberapa besar kita dapat mengandalkan survei awal untuk mendiagnosis penyakit jantung sebelum melanjutkan tes penyakit jantung lebih lanjut.

4.1 Exploratory Data Analysis
Sebelum melakukan analisis statistik ada permodelan prediktif lebih lanjut, analisis awal data ini perlu kita lakukan karena kita perlu memahami karakteristik, struktur, dan komponen penting dari dataset. Dalam hal ini membantu memahami konteks data, mengidentifikasi pertanyaan yang relevan dan memilih metode analisis yang tepat.

Numerikal EDA
Insight:
- Distribusi: Sebagian besar variabel numerik (usia, tekanan darah, kolesterol, denyut jantung maksimum) cenderung memiliki distribusi yang tidak simetris, dengan ekor kanan yang lebih panjang. Ini mengindikasikan adanya beberapa outlier atau nilai ekstrim pada variabel-variabel tersebut.
- Outlier: Beberapa variabel seperti tekanan darah dan kolesterol menunjukkan adanya outlier yang cukup signifikan. Outlier ini dapat mempengaruhi analisis statistik dan model prediksi jika tidak ditangani dengan baik.
- Variabilitas: Variabel seperti usia dan kolesterol memiliki rentang yang cukup luas, menunjukkan adanya variasi yang cukup besar di antara pasien.

Pairplot
Insight:
- **Distribusi Variabel:
- **Sebagian besar variabel numerik (usia, tekanan darah, kolesterol, denyut jantung maksimum, dan depresi ST) cenderung memiliki distribusi yang tidak simetris, dengan ekor kanan yang lebih panjang. Ini mengindikasikan adanya beberapa outlier atau nilai ekstrim pada variabel-variabel tersebut.
- Variabel target (penyakit jantung) terdistribusi cukup seimbang, dengan jumlah pasien yang memiliki dan tidak memiliki penyakit jantung relatif sama.
- **Hubungan Antar Variabel:
- **Terdapat beberapa hubungan yang menarik antara variabel-variabel tersebut. Misalnya, terlihat adanya tren peningkatan risiko penyakit jantung seiring bertambahnya usia dan kadar kolesterol.
- Beberapa variabel seperti tekanan darah dan denyut jantung maksimum juga menunjukkan hubungan yang signifikan dengan risiko penyakit jantung.
- Outlier: Beberapa plot menunjukkan adanya outlier, terutama pada variabel kolesterol dan depresi ST. Outlier ini dapat mempengaruhi analisis dan model prediksi jika tidak ditangani dengan baik.
Interpretasi:
- Usia: Semakin tua usia seseorang, semakin tinggi kemungkinan mereka memiliki penyakit jantung.
- Tekanan Darah: Peningkatan tekanan darah juga dikaitkan dengan peningkatan risiko penyakit jantung.
- Kolesterol: Kadar kolesterol yang tinggi merupakan faktor risiko yang signifikan untuk penyakit jantung.
- Denyut Jantung Maksimum: Denyut jantung maksimum yang rendah mungkin mengindikasikan adanya masalah jantung, sehingga dapat menjadi indikator risiko penyakit jantung.
- Depresi ST: Peningkatan nilai depresi ST menunjukkan adanya masalah pada jantung dan dapat menjadi indikator risiko penyakit jantung.

Heatmap
Insight:
Korelasi Positif Kuat:
- Usia dan penyakit jantung: Semakin tua usia seseorang, semakin tinggi risiko terkena penyakit jantung.
- Kolesterol dan penyakit jantung: Kadar kolesterol yang tinggi dikaitkan dengan peningkatan risiko penyakit jantung.
- Depresi ST dan penyakit jantung: Peningkatan nilai depresi ST menunjukkan adanya masalah pada jantung dan dapat menjadi indikator risiko penyakit jantung.
- Beberapa variabel lain juga menunjukkan korelasi positif dengan penyakit jantung, meskipun tidak sekuat yang disebutkan di atas.
Korelasi Negatif:
- Thalach (denyut jantung maksimum) dan penyakit jantung: Denyut jantung maksimum yang rendah sering dikaitkan dengan penyakit jantung.
Korelasi Rendah:
- Banyak pasangan variabel yang menunjukkan korelasi yang sangat rendah atau tidak ada korelasi sama sekali. Ini menunjukkan bahwa variabel-variabel tersebut tidak memiliki hubungan yang signifikan satu sama lain.

Visualisasi Data Kategorikal
Insight:
- sex: Sebagian besar data adalah laki-laki (nilai 1).
- cp: Terdapat beberapa tipe nyeri dada (cp), dengan tipe 3 (nyeri non-angina) yang paling sering muncul.
- fbs: Sebagian besar pasien memiliki gula darah puasa yang normal (nilai 0).
- restecg: Hasil elektrokardiografi istirahat paling banyak menunjukkan kondisi normal (nilai 0).
- exang: Sebagian besar pasien tidak mengalami angina yang disebabkan oleh olahraga (nilai 0).
- slope: Sebagian besar pasien memiliki kemiringan segmen ST puncak latihan yang bernilai 1.
- ca: Sebagian besar pasien memiliki jumlah pembuluh besar yang diwarnai oleh fluoroskopi bernilai 0.
- thal: Sebagian besar pasien memiliki nilai thal bernilai 3.
4.2 Model yang Digunakan:
Saya menggunakan beberapa model machine learning untuk prediksi, di antaranya:
- Logistic Regression: digunakan untuk klasifikasi biner. Model ini memprediksi probabilitas suatu peristiwa terjadi, dengan batasan nilai antara 0 dan 1 menggunakan fungsi sigmoid. Algoritma: Model dioptimalkan menggunakan metode Maximum Likelihood Estimation (MLE), yang bertujuan untuk menemukan parameter yang memaksimalkan probabilitas mengamati data yang diberikan Cara Kerja: Logistic regression menggunakan turunan gradien untuk memperbarui parameter secara iteratif hingga ditemukan titik di mana loss function (negatif dari log-likelihood) mencapai minimum. Notasi Matematis:
- X: Fitur input
- β: Koefisien regresi yang dipelajari
- σ(z): Fungsi sigmoid

Notasi Matematis Logreg
- K-Nearest Neighbors (KNN): adalah algoritma non-parametrik untuk klasifikasi yang bekerja berdasarkan jarak antara sampel. Algoritma:
- Hitung jarak antara data uji dengan semua data latih
- Pilih k tetangga terdekat
- Klasifikasi dilakukan berdasarkan mayoritas label dari tetangga terdekat Cara Kerja: Algoritma menghitung jarak dari tiap data ke sampel uji, kemudian memprediksi berdasarkan suara terbanyak dari k tetangga terdekat Notasi Matematis:
- d(x,x ′): Fungsi jarak, umumnya Euclidean distance:

Notasi Matematis KNN
- Random Forest: adalah algoritma ensemble yang menggabungkan banyak decision trees untuk menghasilkan prediksi yang lebih akurat dan stabil. Algoritma:
- Buat banyak decision trees menggunakan bootstrap sampling.
- Setiap pohon hanya menggunakan subset acak dari fitur.
- Gabungkan prediksi semua pohon menggunakan majority vote (untuk klasifikasi) atau rata-rata (untuk regresi). Cara Kerja: Random Forest memitigasi overfitting yang sering terjadi pada single decision tree dengan mengombinasikan banyak pohon yang dilatih dari subset acak data dan fitur Notasi Matematis:
- pk : Proporsi kelas 𝑘 pada node tersebut
- Setiap decision tree membagi data berdasarkan informasi gain atau Gini impurity. Gini impurity untuk node j dihitung sebagai:

Notasi Matematis Random Forest
- AdaBoost: adalah algoritma ensemble yang meningkatkan kinerja model lemah secara bertahap dengan memberikan bobot lebih besar pada data yang sulit diklasifikasikan. Algoritma:
- Latih model dasar pada data.
- Hitung kesalahan dan perbarui bobot data.
- Data yang salah diklasifikasikan diberi bobot lebih tinggi pada iterasi selanjutnya. Cara kerja: AdaBoost melatih model lemah secara iteratif, memberi lebih banyak perhatian pada sampel yang salah diklasifikasikan, sehingga model selanjutnya fokus pada kesalahan dari model sebelumnya. Notasi Matematis:
- αt : Bobot model dasar pada iterasi 𝑡, yang dihitung berdasarkan error dari model tersebut
- Misalkan ℎ𝑡(x) adalah model dasar pada iterasi 𝑡, maka total prediksi adalah:

Notasi Matematis Adaboost
- Support Vector Classifier (SVC): bertujuan untuk menemukan hyperplane yang memisahkan kelas-kelas dalam ruang fitur dengan margin maksimum. Algoritma:
- Cari w dan 𝑏 yang memaksimalkan margin.
- Jika data tidak bisa dipisahkan secara linear, gunakan kernel trick untuk memetakan data ke dimensi yang lebih tinggi. Cara kerja: SVC memisahkan data dengan margin maksimum, dan untuk data yang tidak terpisahkan secara linear, kernel (seperti RBF atau polynomial) digunakan untuk memetakan ke ruang fitur yang lebih tinggi agar dapat dipisahkan. Notasi matematis:
- Hyperplane didefinisikan sebagai 𝑤𝑇𝑥+b=0, dengan margin dihitung sebagai:

Notasi matematis SVC
- Experiments / Result / Discussion
Eksperiment:
- Penjelasan Hyperparameter yang DipilihDalam rekap evaluasi model, GridSearchCV dan RandomizedSearchCV digunakan untuk mengubah hyperparameter. Kedua metode ini menggunakan cross-validation (CV) untuk memilih kombinasi hyperparameter yang optimal.
- GridSearchCV secara eksplisit mencoba setiap kombinasi hyperparameter yang disediakan. Pada proyek ini ini terlihat dari hasil RandomForestClassifier dan SVC yang memiliki beberapa parameter yang diujikan, seperti max_depth, n_estimators, dan min_samples_split.
- RandomizedSearchCV mencoba menggabungkan hyperparameter secara acak dari distribusi yang ditentukan; teknik ini lebih cepat daripada GridSearchCV, terutama dalam situasi di mana ruang pencarian hyperparameter sangat besar.
Kedua metode ini biasanya menggunakan cross-validation (CV) dengan kolom k, yang membagi data menjadi beberapa subset. Dalam kasus CV 5-fold, data dibagi menjadi 5 bagian, 4 untuk pelatihan dan 1 untuk validasi, dan ini diulang 5 kali, sehingga setiap subset hanya digunakan untuk validasi sekali. Karena memberikan keseimbangan antara waktu pelatihan dan kinerja model, cross-validation yang umum adalah CV 5-fold atau 10-fold. Namun saya menggunakan GridSearchCV default biasanya 5-fold.
Hyperparameter yang dipilih:
- Logistic Regression
- Best Param Grid: {‘C’: 0.01, ‘max_iter’: 100, ‘penalty’: ‘l2’, ‘solver’: ‘liblinear’}
- Best Param Random: {‘solver’: ‘liblinear’, ‘penalty’: ‘l2’, ‘max_iter’: 300, ‘C’: 0.01}
- Pada model Logistic Regression, parameter C mengontrol regularisasi. Nilai kecil (seperti 0.01) memberikan regularisasi yang lebih besar untuk mengurangi overfitting. max_iter adalah jumlah iterasi maksimum untuk konvergensi model, dan penalty=’l2' mengindikasikan regularisasi ridge.
- KNeighborsClassifier:
- Best Param Grid: {‘metric’: ‘euclidean’, ‘n_neighbors’: 9, ‘weights’: ‘distance’}
- Best Param Random: {‘weights’: ‘distance’, ‘n_neighbors’: 9, ‘metric’: ‘euclidean’}
- n_neighbors menentukan jumlah tetangga terdekat yang akan dipertimbangkan untuk klasifikasi. weights=’distance’ membuat tetangga yang lebih dekat memiliki bobot lebih besar.
- Random Forest Classifier:
- Best Param Grid: {‘max_depth’: 30, ‘min_samples_leaf’: 4, ‘min_samples_split’: 10, ‘n_estimators’: 300}
- Best Param Random: {‘n_estimators’: 300, ‘min_samples_split’: 10, ‘min_samples_leaf’: 1, ‘max_depth’: None}
- Hyperparameter seperti max_depth (kedalaman pohon) membatasi kompleksitas pohon untuk mencegah overfitting. min_samples_leaf dan min_samples_split menentukan minimal sampel di node atau saat memecah node. n_estimators adalah jumlah pohon.
- Support Vector Classifier (SVC):
- Best Param Grid: {‘C’: 0.1, ‘gamma’: ‘auto’, ‘kernel’: ‘sigmoid’}
- Best Param Random: {‘kernel’: ‘sigmoid’, ‘gamma’: ‘auto’, ‘C’: 0.1}
- Parameter C mengontrol margin SVC, di mana nilai kecil mendorong margin yang lebih lebar (lebih banyak salah klasifikasi). gamma menentukan seberapa jauh pengaruh satu sampel meluas (semakin besar, semakin sempit). Kernel sigmoid digunakan untuk memperkenalkan non-linearitas.
Metrik Utama yang Digunakan
Untuk evaluasi model, beberapa metrik utama digunakan:
- Accuracy (Akurasi): Metrik yang paling umum untuk klasifikasi, menghitung persentase prediksi yang benar dari total prediksi. Formula:

- Precision: Metrik yang mengukur ketepatan prediksi positif, yakni proporsi dari prediksi positif yang benar. Formula:

- Recall (Sensitivity): Mengukur seberapa baik model mendeteksi kelas positif yang sebenarnya. Formula:

- F1 Score: Kombinasi dari precision dan recall, memberikan keseimbangan ketika ada ketidakseimbangan antara positive dan negative class. Formula:

- AUC (Area Under the Curve): Metrik ini mengukur seberapa baik model dapat membedakan antara kelas. Semakin dekat nilai AUC ke 1, semakin baik model dalam memprediksi kelas yang benar.
- Confusion Matrix: Matriks yang menggambarkan performa klasifikasi dari model, mengidentifikasi TP, FP, TN, dan FN.

Ini memberikan informasi mendalam tentang kesalahan model, seperti apakah model banyak memprediksi false positif atau false negatif.
Evaluasi Model Berdasarkan Metrik
Logistic Regression dan Random Forest mencapai hasil yang sangat baik pada rekapan model, masing-masing dengan akurasi sekitar 0.83 pada set tes. Namun, Random Forest tampaknya overfit karena akurasi pelatihannya yang sangat tinggi (1.00), tetapi menurun saat diterapkan pada data tes (0.816). Sebaliknya, hasil test AdaBoostClassifier dan SVC tidak stabil.
Untuk mengevaluasi keseimbangan antara precision dan recall, Confusion Matrix dan ROC-AUC curves juga diperlukan. Dalam klasifikasi medis seperti prediksi penyakit jantung, ini sangat penting karena FN (false negatives) yang tinggi dapat menyebabkan diagnosis yang terlewatkan, yang dapat fatal dalam hal medis.
Overfitting dan Solusi
Overfitting terjadi ketika model bekerja dengan sangat baik pada data pelatihan tetapi buruk pada data tes (data yang belum pernah dilihat sebelumnya). Ini terlihat jelas pada Random Forest, di mana akurasi pelatihan 100%, menunjukkan bahwa model telah mempelajari data yang terlalu spesifik, termasuk bias.
Untuk mengatasi overfitting:
- Untuk mengurangi kompleksitas model, ubah parameter RandomForest seperti max_depth dan n_estimators.
- Regularization: Untuk membatasi kompleksitas model, gunakan regularization seperti Logistic Regression.
- Data Peningkatan: Untuk membuat model lebih umum, gunakan metode seperti cross-validation yang lebih intensif (misalnya, CV stratified atau 10-fold) atau lebih banyak data.
Result
- Logistic Regression Confusion Metrix & Classification Report

- KneighborsClassifier Confusion Metrix & Classification Report

- RandomForestClassifier Confusion Metrix & Classification Report

- AdaBoostClassifier Confusion Metrix & Classification Report

- SVC Confusion Metrix & Classification Report

Rekap hasil akurasi performa + tuning hyperparameter menggunakan GridSearchCV dan RandomSearchCV

⚠️ Batasan Proyek & Catatan Refleksi Teknis (Post-Mortem Analysis)
Saat mengevaluasi kembali rekapitulasi performa di atas, terdapat anomali di mana model Random Forest mencapai akurasi pelatihan sempurna (1.00) namun turun signifikan pada data pengujian (0.816). Setelah dilakukan audit mendalam secara retrospektif, hal ini diidentifikasi sebagai akibat dari adanya Data Leakage (kebocoran data). Prosedur oversampling untuk menangani ketidakseimbangan kelas target diterapkan pada seluruh dataset sebelum proses pemisahan data train dan test dilakukan.
Karena adanya kendala teknis pada penyimpanan lokal (hardware failure pada HDD), berkas skrip Python (.ipynb) asli untuk proyek ini saat ini bersifat read-only (arsip statis) dan tidak dapat dilatih atau dieksekusi ulang untuk perbaikan langsung.
Rekomendasi Arsitektur Skala Enterprise:
Dalam implementasi dunia nyata atau lingkungan produksi, teknik manipulasi distribusi data seperti oversampling (SMOTE/RandomOverSampler) wajib diisolasi secara ketat dan hanya dieksekusi di dalam Training Fold pada setiap iterasi Stratified Cross-Validation. Langkah ini krusial untuk mencegah bias optimisme palsu dan menjamin estimasi performa model yang jujur serta robust saat dihadapkan pada data klinis baru.
Kesimpulan
Logistic Regression adalah model yang baik untuk baseline karena performa yang konsisten di data training dan test.
Random Forest dapat memiliki hasil yang lebih baik jika overfitting dikurangi melalui tuning lebih lanjut.
Model seperti AdaBoost dan SVC memberikan hasil yang cukup stabil dan bisa menjadi kandidat yang baik untuk lebih dieksplorasi.
Klik 👉disini 👈untuk melihat codenya
Thank you for taking the time to read this.
I’m learning to write, and mistakes are inescapable even when I do my hardest. Please feel free to offer feedback and recommendations. Let me know if you spot any difficulties or mistakes 🤝
메타데이터
- post_id
- 1d9fddd91e15
- slug
- sebuah-studi-perbandingan-memprediksi-penyakit-jantung-dengan-algoritma-machine-learning-1d9fddd91e15
- url
- https://medium.com/@wiradp/sebuah-studi-perbandingan-memprediksi-penyakit-jantung-dengan-algoritma-machine-learning-1d9fddd91e15
- canonical_url
- https://medium.com/@wiradp/sebuah-studi-perbandingan-memprediksi-penyakit-jantung-dengan-algoritma-machine-learning-1d9fddd91e15
- author_url
- https://medium.com/@wiradp
- status
- ok
- fetched_at
- 2026-07-22 15:34:17