◆ StrokePredict

Prediksi Stroke Berbasis Decision Tree

Analisis data kesehatan komprehensif menggunakan dataset healthcare-dataset-stroke-data.csv. Algoritma Decision Tree dikonfigurasi dengan teknik pembebanan kelas seimbang (Class Weight Balanced) untuk menangani ketidakseimbangan kelas imbalanced yang ekstrem pada variabel target Stroke

Jumlah data
5.110
11 kolom
Kasus stroke
249
4.87% dari total
Rata-rata umur
43.2
penderita stroke: 67.7
Rata-rata gula darah
106.1
penderita stroke: 132.5

Performa Model (data uji)

Akurasi
72.5%
Recall (stroke)
72.0%
Precision
11.9%
F1-score
20.4%
ROC-AUC
0.783

Data latih 4088 · data uji 1022 (split 80/20, stratified). Karena kasus stroke hanya ~5%, model memakai class_weight = balanced agar lebih peka mendeteksi stroke (recall tinggi).

Confusion Matrix

Prediksi: Tidak
Prediksi: Stroke
Aktual: Tidak
705
267
Aktual: Stroke
14
36

Model berhasil mendeteksi 36 dari 50 kasus stroke pada data uji.

Kepentingan Fitur

Umur
77.4%
BMI
11.3%
Gula darah
5.9%
Penyakit jantung
2.1%
Status merokok
1.6%
Jenis pekerjaan
1.5%
Tempat tinggal
0.1%
Hipertensi
0.1%
Jenis kelamin
0.0%
Status menikah
0.0%

Statistik Deskriptif

StatistikUmurGula darahBMI
count5110.05110.04909.0
mean43.23106.1528.89
std22.6145.287.85
min0.0855.1210.3
25%25.077.2423.5
50%45.091.8828.1
75%61.0114.0933.1
max82.0271.7497.6

201 data BMI kosong (N/A) diisi dengan nilai median saat pelatihan model.

Aturan Decision Tree (4 level teratas)

|--- num__age <= 47.5
|   |--- num__age <= 37.5
|   |   |--- num__age <= 1.4
|   |   |   |--- num__bmi <= 19.8
|   |   |   |   |--- class: 0
|   |   |   |--- num__bmi >  19.8
|   |   |   |   |--- class: 1
|   |   |--- num__age >  1.4
|   |   |   |--- class: 0
|   |--- num__age >  37.5
|   |   |--- num__bmi <= 45.7
|   |   |   |--- num__avg_glucose_level <= 59.0
|   |   |   |   |--- class: 0
|   |   |   |--- num__avg_glucose_level >  59.0
|   |   |   |   |--- cat__smoking_status_formerly smoked <= 0.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |   |--- cat__smoking_status_formerly smoked >  0.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |--- num__bmi >  45.7
|   |   |   |--- class: 1
|--- num__age >  47.5
|   |--- num__age <= 67.5
|   |   |--- num__bmi <= 27.2
|   |   |   |--- num__bmi <= 26.4
|   |   |   |   |--- cat__smoking_status_smokes <= 0.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |   |--- cat__smoking_status_smokes >  0.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |--- num__bmi >  26.4
|   |   |   |   |--- class: 0
|   |   |--- num__bmi >  27.2
|   |   |   |--- num__bmi <= 28.6
|   |   |   |   |--- num__age <= 53.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |   |--- num__age >  53.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |--- num__bmi >  28.6
|   |   |   |   |--- num__heart_disease <= 0.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |   |--- num__heart_disease >  0.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |--- num__age >  67.5
|   |   |--- num__age <= 73.5
|   |   |   |--- num__avg_glucose_level <= 177.0
|   |   |   |   |--- num__avg_glucose_level <= 94.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |   |--- num__avg_glucose_level >  94.5
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |--- num__avg_glucose_level >  177.0
|   |   |   |   |--- num__bmi <= 28.1
|   |   |   |   |   |--- class: 1
|   |   |   |   |--- num__bmi >  28.1
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |--- num__age >  73.5
|   |   |   |--- num__bmi <= 34.2
|   |   |   |   |--- num__bmi <= 27.9
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |   |--- num__bmi >  27.9
|   |   |   |   |   |--- truncated branch of depth 2
|   |   |   |--- num__bmi >  34.2
|   |   |   |   |--- cat__work_type_Private <= 0.5
|   |   |   |   |   |--- class: 0
|   |   |   |   |--- cat__work_type_Private >  0.5
|   |   |   |   |   |--- class: 1

Cuplikan Data (10 baris pertama)

genderagehypertensionheart_diseaseever_marriedwork_typeResidence_typeavg_glucose_levelbmismoking_statusstroke
Male67.001YesPrivateUrban228.6936.6formerly smoked1
Female61.000YesSelf-employedRural202.21N/Anever smoked1
Male80.001YesPrivateRural105.9232.5never smoked1
Female49.000YesPrivateUrban171.2334.4smokes1
Female79.010YesSelf-employedRural174.1224.0never smoked1
Male81.000YesPrivateUrban186.2129.0formerly smoked1
Male74.011YesPrivateRural70.0927.4never smoked1
Female69.000NoPrivateUrban94.3922.8never smoked1
Female59.000YesPrivateRural76.15N/AUnknown1
Female78.000YesPrivateUrban58.5724.2Unknown1