2.3.3
Παράμετροι Δέντρου Απόφασης
- Τα δέντρα απόφασης προσφέρουν αρκετούς μοχλούς–βάθος, ελάχιστα δείγματα ανά διαχωρισμό/φύλλο, κλάδεμα και βάρη κλάσεων–που ελέγχουν άμεσα τη χωρητικότητα και την ερμηνευσιμότητά τους.
- Οι παράμετροι
max_depthκαιmin_samples_leafπεριορίζουν πόσο λεπτομερείς μπορούν να γίνουν οι κανόνες, ενώ ηccp_alpha(κλάδεμα κόστους-πολυπλοκότητας) αφαιρεί κλάδους των οποίων η βελτίωση δεν δικαιολογεί το μέγεθός τους. - Η επιλογή του κατάλληλου κριτηρίου (
squared_error,absolute_error,friedman_mse, κ.λπ.) αλλάζει τον τρόπο με τον οποίο το δέντρο αντιδρά στα ακραία σημεία. - Τα οπτικά διαγνωστικά εργαλεία ορίων απόφασης και δομών δέντρων σας βοηθούν να εξηγήσετε γιατί ένα συγκεκριμένο σύνολο υπερπαραμέτρων λειτουργεί καλύτερα.
Εισαγωγή #
Αυτή η μέθοδος θα πρέπει να ερμηνεύεται μέσω των υποθέσεών της, των συνθηκών δεδομένων και του τρόπου με τον οποίο οι επιλογές παραμέτρων επηρεάζουν τη γενίκευση.
Αναλυτική Επεξήγηση #
1. Επισκόπηση #
Ένα δέντρο απόφασης αναπτύσσεται επιλέγοντας επαναλαμβανόμενα τον διαχωρισμό που δίνει τη μεγαλύτερη μείωση ακαθαρσίας. Χωρίς περιορισμούς, το δέντρο συνεχίζει να διαχωρίζει μέχρι κάθε φύλλο να είναι καθαρό, κάτι που συχνά σημαίνει υπερπροσαρμογή. Οι υπερπαράμετροι λειτουργούν επομένως ως ρυθμιστές: τα όρια βάθους κρατούν το δέντρο ρηχό, οι ελάχιστοι αριθμοί δειγμάτων αποτρέπουν μικροσκοπικά φύλλα, και το κλάδεμα καταρρίπτει κλάδους των οποίων η συνεισφορά είναι οριακή.
2. Κέρδος ακαθαρσίας και κλάδεμα κόστους-πολυπλοκότητας #
Για έναν γονικό κόμβο (P) που διαχωρίζεται σε παιδιά (L) και (R), η μείωση ακαθαρσίας είναι
$$ \Delta I = I(P) - \frac{|L|}{|P|} I(L) - \frac{|R|}{|P|} I(R), $$όπου (I(\cdot)) μπορεί να είναι ο δείκτης Gini, η εντροπία, το MSE ή το MAE ανάλογα με την εργασία. Ένας διαχωρισμός διατηρείται μόνο αν (\Delta I > 0).
Το κλάδεμα κόστους-πολυπλοκότητας βαθμολογεί ένα ολόκληρο δέντρο (T) με
$$ R_\alpha(T) = R(T) + \alpha |T|, $$όπου (R(T)) είναι η απώλεια εκπαίδευσης (π.χ. συνολικό τετραγωνικό σφάλμα), (|T|) είναι ο αριθμός φύλλων, και (\alpha \ge 0) τιμωρεί τα μεγάλα δέντρα. Η αύξηση του (\alpha) ευνοεί απλούστερες δομές.
3. Πειράματα σε Python #
Το παρακάτω απόσπασμα κώδικα εκπαιδεύει αρκετά μοντέλα DecisionTreeRegressor σε ένα συνθετικό σύνολο δεδομένων και αναφέρει πώς διαφορετικές υπερπαράμετροι επηρεάζουν το (R^2) εκπαίδευσης και επικύρωσης. Η ρύθμιση των max_depth, min_samples_leaf ή ccp_alpha δείχνει πώς ανταλλάσσονται χωρητικότητα και γενίκευση.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.datasets import make_regression
from sklearn.metrics import r2_score
X, y = make_regression(
n_samples=500,
n_features=2,
noise=0.2,
random_state=42,
)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.3, random_state=0)
def evaluate(params):
model = DecisionTreeRegressor(random_state=0, **params).fit(Xtr, ytr)
r2_train = r2_score(ytr, model.predict(Xtr))
r2_test = r2_score(yte, model.predict(Xte))
print(f"{params}: train R2={r2_train:.3f}, test R2={r2_test:.3f}")
evaluate({"max_depth": 3})
evaluate({"max_depth": 10})
evaluate({"max_depth": 5, "min_samples_leaf": 5})
evaluate({"max_depth": 5, "ccp_alpha": 0.01})
Τα ακόλουθα σχήματα (κοινά με την ιαπωνική σελίδα) απεικονίζουν πώς η μεταβολή βασικών παραμέτρων αναδιαμορφώνει την επιφάνεια πρόβλεψης. Χρησιμοποιήστε τα ως οπτικό κατάλογο ελέγχου κατά τη ρύθμιση του δικού σας δέντρου:

4. Αναφορές #
- Breiman, L., Friedman, J. H., Olshen, R. A., & Stone, C. J. (1984). Classification and Regression Trees. Wadsworth.
- Breiman, L., & Friedman, J. H. (1991). Cost-Complexity Pruning. In Classification and Regression Trees. Chapman & Hall.
- scikit-learn developers. (2024). Decision Trees. https://scikit-learn.org/stable/modules/tree.html