Decision Tree adalah salah satu algoritma Machine Learning yang paling populer dan mudah dipahami. Algoritma ini sering digunakan sebagai pintu masuk untuk memahami konsep supervised learning karena logikanya menyerupai cara manusia mengambil keputusan sehari-hari. Dalam praktik data science, Decision Tree banyak dipakai untuk klasifikasi maupun regresi, terutama ketika interpretabilitas model menjadi prioritas utama.
Artikel ini membahas pengertian Decision Tree, cara kerjanya, komponen penting di dalamnya, kelebihan dan kekurangan, hingga contoh implementasi Decision Tree menggunakan Python.
Decision Tree adalah algoritma supervised learning yang membagi data ke dalam beberapa cabang berdasarkan kondisi tertentu. Setiap percabangan dibuat untuk memaksimalkan pemisahan data agar hasil prediksi semakin akurat.
Struktur Decision Tree terdiri dari:
Karena strukturnya menyerupai pohon, algoritma ini dinamakan Decision Tree.
Decision Tree bekerja dengan memilih fitur terbaik sebagai pemisah data pada setiap level pohon. Pemilihan fitur dilakukan menggunakan metrik tertentu, tergantung pada jenis masalahnya.
Pada masalah klasifikasi, metrik yang umum digunakan adalah:
Sedangkan pada masalah regresi, biasanya digunakan:
Proses kerjanya dapat diringkas sebagai berikut:
Decision Tree sering digunakan dalam berbagai kasus nyata, seperti:
Keunggulan utama Decision Tree terletak pada kemampuannya menjelaskan alasan di balik sebuah prediksi.
Misalkan terdapat dataset sederhana untuk memprediksi apakah seseorang membeli produk atau tidak berdasarkan usia dan pendapatan.
| Usia | Pendapatan | Beli |
|---|---|---|
| 25 | Rendah | Tidak |
| 35 | Tinggi | Ya |
| 45 | Sedang | Ya |
| 23 | Rendah | Tidak |
Fitur (feature) adalah usia dan pendapatan, sedangkan label adalah kolom beli.
Berikut contoh sederhana menggunakan library scikit-learn.
import pandasas pd
from sklearn.treeimport DecisionTreeClassifier
from sklearn.model_selectionimport train_test_split
from sklearn.preprocessingimport LabelEncoder
data = {
"usia": [25,35,45,23,40,30],
"pendapatan": ["Rendah","Tinggi","Sedang","Rendah","Tinggi","Sedang"],
"beli": ["Tidak","Ya","Ya","Tidak","Ya","Tidak"]
}
df = pd.DataFrame(data)
encoder = LabelEncoder()
df["pendapatan"] = encoder.fit_transform(df["pendapatan"])
df["beli"] = encoder.fit_transform(df["beli"])
X = df[["usia","pendapatan"]]
y = df["beli"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = DecisionTreeClassifier(
criterion="gini",
max_depth=3
)
model.fit(X_train, y_train)
prediksi = model.predict(X_test)
print(prediksi)
Contoh di atas menunjukkan bagaimana Decision Tree dapat dibangun hanya dengan beberapa baris kode.
Beberapa parameter penting yang sering digunakan untuk mengontrol kompleksitas model:
Pengaturan parameter yang tepat membantu mencegah overfitting.
Decision Tree memiliki beberapa keunggulan:
Karena sifatnya yang interpretatif, Decision Tree sering digunakan dalam domain bisnis dan keuangan.
Meski populer, Decision Tree juga memiliki kelemahan:
Untuk mengatasi kelemahan ini, sering digunakan algoritma turunan seperti Random Forest atau Gradient Boosting.
Decision Tree cocok digunakan ketika:
Decision Tree sering menjadi model awal sebelum beralih ke algoritma yang lebih kompleks.
Decision Tree adalah algoritma Machine Learning yang sederhana, intuitif, dan powerful. Dengan memahami cara kerja dan implementasinya menggunakan Python, proses membangun model klasifikasi maupun regresi menjadi jauh lebih mudah. Dalam konteks pembelajaran Machine Learning di Nusacodes.com, Decision Tree menjadi fondasi penting sebelum melangkah ke ensemble learning dan model lanjutan lainnya.
Pemahaman yang kuat terhadap Decision Tree membantu dalam membaca logika model, menghindari kesalahan interpretasi, serta membangun solusi Machine Learning yang lebih efektif dan dapat dipertanggungjawabkan.