Heart Disease Classification
Klasifikasi Risiko Penyakit Jantung Berbasis Deep Learning (TensorFlow/Keras) & Inferensi Web TensorFlow.js
Proyek diagnosis prediktif risiko penyakit jantung menggunakan dataset klinis UCI Cleveland (291 sampel pasien bersih, 13 parameter klinis). Model dibangun menggunakan arsitektur Deep Neural Network (TensorFlow/Keras) dengan regularisasi Early Stopping yang mencapai akurasi uji 96,67%, presisi 100%, dan recall 94,12%, serta diekspor ke format TensorFlow.js untuk inferensi langsung di browser.
Business Understanding & Strategic Context
Penyakit kardiovaskular adalah penyebab kematian nomor satu di dunia, di mana hampir separuh pasien (49% kasus asimtomatik) tidak merasakan gejala nyeri dada tipikal pada tahap awal. Skrining medis konvensional memerlukan waktu interpretasi yang cukup lama, sehingga dibutuhkan sistem asisten AI klinis yang mampu memberikan penilaian risiko instan dan akurat.
Mengembangkan model klasifikasi biner berbasis Deep Learning yang andal untuk mendeteksi indikasi penyakit jantung dengan memprioritaskan sensitivitas/recall tinggi (meminimalkan false negative) dan mengekspor model ke TensorFlow.js untuk aksesibilitas web klinis.
Tangible Business Impact
Target Users & Stakeholders
Dataset Specifications & Processing Pipeline
303 rekam medis pasien dari UCI Cleveland Heart Disease Dataset, disaring menjadi 291 data bersih setelah pembersihan missing values tersembunyi (13 fitur klinis + 1 target).
Arsitektur Multi-Layer Perceptron (Sequential: Dense 64 ReLU -> Dense 32 ReLU -> Dense 1 Sigmoid) dengan optimasi Adam (lr=0.001), Binary Crossentropy, dan Early Stopping (patience=20, best weights restored pada epoch 6).
Key Variable Dimensions
Data Preprocessing & Feature Engineering Architecture
Hidden Missing Values Handling: Mengidentifikasi 6 nilai string "?" pada kolom ca (4) dan thal (2) yang lolos dari deteksi isnull(), lalu dikonversi ke numeric dan dilakukan pembersihan baris.
Binary Target Rebinning: Menstandarkan label target multi-kelas (0–4) menjadi biner (0 = Sehat, 1 = Penyakit Jantung).
Feature Standardization: Penerapan StandardScaler pada 13 variabel input numerik dan kategorikal terenkode.
Stratified Train/Test Split: Pembagian data 90/10 dengan random_state=42 dan stratifikasi target (Train: 261 sampel | Test: 30 sampel).
Deep Neural Network Architecture & Training Pipeline
Early Stopping (Best Epoch 6)Clinical Confusion Matrix (Test Set: 30 Pasien)
Model berhasil mendeteksi 16 dari 17 pasien penyakit jantung tanpa satupun vonis salah pada pasien sehat (False Positive = 0).
Model Export & Web Deployment
model.json + group1-shard1of1.bin untuk inferensi langsung di browser.scaler_info.json menyimpan mean & scale untuk standardisasi 13 input pasien.saved_model.pb untuk integrasi TFX / TensorFlow Serving.Empirical Discoveries & Key Findings
49% Pasien Penyakit Jantung Bersifat Asymptomatic
Sebanyak 144 pasien masuk dalam kategori nyeri dada Asymptomatic (tipe 4). Ketiadaan gejala nyeri dada nyata menjadi bukti krusial pentingnya pemodelan prediktif berbasis biomarker elektrokardiografi dan pembuluh darah.
Missing Values Tersembunyi pada Karakter String "?"
Fungsi isnull() standar gagal mendeteksi nilai hilang karena tercatat sebagai string "?". Konversi eksplisit numeric membongkar 4 missing value di kolom ca dan 2 di kolom thal sebelum pelatihan model.
Kombinasi Thalach Rendah & ST-Depression Tinggi
Pasien terkonfirmasi penyakit jantung memiliki kecenderungan detak jantung maksimum (thalach) yang lebih rendah saat uji stres dan depresi segmen ST (oldpeak) yang signifikan pasca aktivitas fisik.
Konvergensi Optimal pada Epoch 6 via Early Stopping
Model mencapai performa validasi tertinggi pada epoch 6 dari 100 epoch maksimal. Mekanisme Early Stopping memulihkan bobot terbaik pada epoch 26, mencegah overfitting pada dataset sampel kecil.
Actionable Strategic Recommendations
Integrasikan model.json dan scaler_info.json ke antarmuka aplikasi web untuk inferensi instan tanpa biaya server backend.
Menghadirkan kalkulator risiko jantung real-time berlatensi <20ms dengan privasi data medis 100% terjaga di sisi klien.
Terapkan 10-Fold Cross Validation dan uji komparasi dengan model TF-Decision Forests serta XGBoost.
Memperoleh interval kepercayaan (confidence interval) yang lebih stabil sebelum integrasi sistem rumah sakit.
Tambahkan visualisasi kontribusi fitur per pasien untuk menjelaskan alasan di balik skor probabilitas risiko.
Meningkatkan transparansi keputusan (Explainable AI) dan mempermudah verifikasi oleh dokter spesialis.
CRISP-DM Standard Methodology Execution
Business & Clinical Understanding
Merumuskan kebutuhan deteksi dini penyakit kardiovaskular dengan toleransi False Negative serendah mungkin.
Data Understanding
Eksplorasi data 303 pasien, deteksi anomali karakter string, dan profil distribusi demografis.
Data Preparation
Pembersihan data menjadi 291 sampel bersih, rebinning target biner, dan standardisasi fitur.
Modeling
Pembangunan arsitektur Multi-Layer Perceptron Keras dengan regularisasi Early Stopping.
Evaluation
Evaluasi performa model pada 30 data uji independen dengan matriks konfusi klinis.
Deployment
Ekspor model ke format TensorFlow.js dan SavedModel untuk integrasi web dan produksi.
Model klasifikasi ini dikembangkan untuk tujuan educational / research only. Hasil prediksi dan probabilitas risiko bukan merupakan diagnosis medis resmi dan tidak boleh dijadikan pengganti konsultasi, pemeriksaan fisik, atau evaluasi medis langsung oleh dokter spesialis jantung dan tenaga medis profesional bersertifikasi.