Mengenal Decision Tree
Decision Tree adalah algoritma supervised learning yang membuat model prediksi berbentuk pohon. Algoritma ini mudah dipahami dan divisualisasi.
Konsep Dasar
- Root Node: Node paling atas, berisi seluruh data
- Internal Node: Node yang melakukan pengujian atribut
- Leaf Node: Node akhir yang berisi keputusan/kelas
- Branch: Cabang yang menghubungkan node
Algoritma Pembangunan Tree
1. ID3 (Iterative Dichotomiser 3)
Menggunakan Information Gain untuk memilih atribut terbaik.
2. C4.5
Pengembangan ID3, menggunakan Gain Ratio dan dapat menangani missing values.
3. CART (Classification and Regression Trees)
Menggunakan Gini Index, menghasilkan binary tree.
Implementasi dengan Python
from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn import tree import matplotlib.pyplot as plt # Prepare data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # Create and train model clf = DecisionTreeClassifier(criterion='entropy', max_depth=5) clf.fit(X_train, y_train) # Evaluate accuracy = clf.score(X_test, y_test) print(f'Accuracy: {accuracy:.2f}') # Visualize tree plt.figure(figsize=(20,10)) tree.plot_tree(clf, filled=True, feature_names=feature_names) plt.show()
Tips Optimasi
- Gunakan pruning untuk menghindari overfitting
- Atur max_depth sesuai kompleksitas data
- Gunakan cross-validation untuk evaluasi