Program Pohon Klasifikasi (Classification Tree)


🌳 Program Pohon Klasifikasi (Classification Tree)

Tujuan dari model ini adalah untuk mengidentifikasi kombinasi $\text{Usia}$, $\text{Natrium}$, $\text{Jenis Kelamin}$, dan $\text{Lingkar Pinggang}$ yang paling efektif dalam memprediksi status $\text{Obesitas}$ ($\text{BMI} \ge 30$).

Sintaks Classification Tree (Python/Scikit-learn)

Python
# Sintaks Model Initialization dan Training
# max_depth=3 digunakan untuk menjaga pohon tetap kecil dan mudah diinterpretasikan.
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

# Pembagian data training (80%) dan testing (20%)
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)

# Inisialisasi model
clf = DecisionTreeClassifier(max_depth=3, random_state=42)

# Latih model
clf.fit(X_train, Y_train)

# Sintaks Evaluasi
from sklearn.metrics import accuracy_score, classification_report
Y_pred = clf.predict(X_test)
accuracy = accuracy_score(Y_test, Y_pred)
report = classification_report(Y_test, Y_pred)

Output Model Klasifikasi

Classification Report (Laporan Kinerja Model)

precisionrecallf1-scoresupport
Non-Obese (0)0.560.940.71649
Obese (1)0.410.050.09498
accuracy0.561147
macro avg0.490.500.401147
weighted avg0.500.560.441147

Struktur Pohon (Output Teks Ringkas dari DOT Format)

# 
digraph Tree {
...
0 [label=<RIDAGEYR &le; 53.5<br/>...<br/>class = Non-Obese>, fillcolor="#f9e2d1"] ;
1 [label=<NATRIUM_RERATA &le; -134.271<br/>...<br/>class = Non-Obese>, fillcolor="#f8dbc6"] ;
...
8 [label=<RIDAGEYR &le; 55.5<br/>...<br/>class = Non-Obese>, fillcolor="#fbebe0"] ;
...
12 [label=<BMXWAIST &le; 127.052<br/>...<br/>class = Non-Obese>, fillcolor="#fae8da"] ;
...
}

Interpretasi Hasil Pohon Klasifikasi

Model Classification Tree mencapai akurasi sebesar $55.62\%$ pada data uji. Meskipun akurasi keseluruhan sedikit di atas kesempatan, kinerja prediksi untuk kelas Obese (1) sangat buruk ($\text{recall}=0.05$), menunjukkan bahwa model ini sangat cenderung memprediksi responden sebagai $\text{Non-Obese (0)}$. Hal ini kemungkinan besar disebabkan oleh distribusi yang tidak merata dalam data dan kurangnya kekuatan prediktif yang kuat dari variabel yang tersedia.

Aturan Prediktif Utama (Berdasarkan Struktur Pohon):

  1. Pemisahan Awal: Variabel yang paling penting dan digunakan pada simpul akar (root node) adalah $\text{RIDAGEYR}$ (Usia). Pohon memisahkan data berdasarkan $\text{Usia} \le 53.5$ tahun.

  2. Interaksi: Di jalur pohon yang berbeda, model menggunakan variabel lain seperti $\text{NATRIUM\_RERATA}$ dan $\text{BMXWAIST}$ untuk pemisahan lebih lanjut. Misalnya, $\text{BMXWAIST}$ (Lingkar Pinggang) muncul sebagai prediktor penting pada responden yang lebih tua, menunjukkan adanya interaksi yang kompleks: pengaruh $\text{Lingkar Pinggang}$ terhadap status obesitas lebih menonjol pada responden yang berusia di atas $53.5$ tahun.

  3. Kesimpulan: Aturan ini menunjukkan bahwa status $\text{Obesitas}$ tidak diprediksi oleh satu faktor saja, melainkan oleh urutan korelasi yang melibatkan $\text{Usia}$ terlebih dahulu, diikuti oleh $\text{Natrium}$ atau $\text{Lingkar Pinggang}$, tergantung pada jalur yang diambil dalam pohon.

Komentar

Postingan populer dari blog ini

Entri Blog: Menggali Data Kesehatan dengan NHANES

Predictive Modeling of Body Mass Index and Obese Status using Anthropometric, Dietary, and Lifestyle Factors in U.S. Adults

Entri Blog: Analisis Random Forest untuk Prediksi Obesitas