Κοινή χρήση τεχνολογίας

Εισαγωγή στον αλγόριθμο του δέντρου αποφάσεων, αρχές και εφαρμογή περιπτώσεων

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Ο αλγόριθμος του δέντρου αποφάσεων είναι ένας πολύ δημοφιλής αλγόριθμος μηχανικής μάθησης που μπορεί να χρησιμοποιηθεί για εργασίες ταξινόμησης και παλινδρόμησης. Ακολουθεί μια λεπτομερής εισαγωγή στον αλγόριθμο του δέντρου αποφάσεων, συμπεριλαμβανομένων αρχών και εφαρμογών περιπτώσεων, καθώς και του αντίστοιχου κώδικα Python.

Εισαγωγή στον αλγόριθμο του δέντρου αποφάσεων

βασική ιδέα

Ένα δέντρο απόφασης είναι μια δομή δέντρου που χρησιμοποιείται για ταξινόμηση ή παλινδρόμηση δεδομένων. Αποτελείται από κόμβους και ακμές, όπου κάθε εσωτερικός κόμβος αντιπροσωπεύει μια δοκιμή ενός χαρακτηριστικού, κάθε κλάδος αντιπροσωπεύει το αποτέλεσμα της δοκιμής και κάθε κόμβος φύλλου αντιπροσωπεύει μια κατηγορία ή μια τιμή παλινδρόμησης.

Διαδικασία κατασκευής

Η διαδικασία κατασκευής του δέντρου αποφάσεων περιλαμβάνει συνήθως τα ακόλουθα βήματα:

  1. Επιλέξτε τα καλύτερα χαρακτηριστικά: Επιλέξτε τις καλύτερες δυνατότητες για να χωρίσετε το σύνολο δεδομένων σύμφωνα με ένα συγκεκριμένο κριτήριο (όπως κέρδος πληροφοριών, δείκτης Gini κ.λπ.).
  2. Δημιουργία κόμβου: Διαχωρίστε το σύνολο δεδομένων χρησιμοποιώντας τις καλύτερες δυνατότητες και δημιουργήστε νέους κόμβους για κάθε κλάδο.
  3. Αναδρομική δημιουργία υποδέντρων: Η διαδικασία επιλογής των καλύτερων χαρακτηριστικών και διαχωρισμού του συνόλου δεδομένων επαναλαμβάνεται για κάθε θυγατρικό κόμβο μέχρι να εκπληρωθεί μια συνθήκη διακοπής (όπως η καθαρότητα του κόμβου να φτάσει σε ένα ορισμένο επίπεδο ή το βάθος του δέντρου να φτάσει σε μια προκαθορισμένη τιμή).
  4. Δημιουργήστε κόμβους φύλλων: Οι κόμβοι φύλλων δημιουργούνται όταν ο διαχωρισμός δεν χρειάζεται πλέον, συνήθως η ετικέτα κλάσης πλειοψηφίας για δέντρα ταξινόμησης ή ο μέσος όρος όλων των σημείων δεδομένων στο υποσύνολο για δέντρα παλινδρόμησης.
κριτήριο διάσπασης
  • κέρδος πληροφοριών: Μετρά τη μείωση της αβεβαιότητας στην ταξινόμηση ενός συνόλου δεδομένων από ένα χαρακτηριστικό.
  • Δείκτης Gini: Μετρά την καθαρότητα του συνόλου δεδομένων Όσο μικρότερος είναι ο δείκτης Gini, τόσο μεγαλύτερη είναι η καθαρότητα του συνόλου δεδομένων.
  • Ελάχιστο μέσο τετραγωνικό σφάλμα (MSE): Κριτήριο διαχωρισμού για δέντρα παλινδρόμησης.

Υλοποίηση υπόθεσης

Ακολουθεί μια περίπτωση ταξινόμησης δέντρου αποφάσεων που υλοποιήθηκε χρησιμοποιώντας Python και βιβλιοθήκη scikit-learn. Θα χρησιμοποιήσουμε το περίφημο σύνολο δεδομένων Iris, το οποίο περιέχει χαρακτηριστικά και κατηγορίες τριών λουλουδιών ίριδας (Setosa, Versicolour, Virginica).

1. Προετοιμασία δεδομένων
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Εκπαιδεύστε ένα μοντέλο δέντρου αποφάσεων
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
Μοντέλο αξιολόγησης
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
Οπτικό δέντρο αποφάσεων
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

Συνοψίζω:

Ο παραπάνω κώδικας δείχνει πώς να χρησιμοποιήσετε τη βιβλιοθήκη scikit-learn για να φορτώσετε το σύνολο δεδομένων Iris, να εκπαιδεύσετε έναν ταξινομητή δέντρου αποφάσεων, να αξιολογήσετε την απόδοση του μοντέλου και να οπτικοποιήσετε το δέντρο αποφάσεων. Μέσα από αυτήν την περίπτωση, μπορείτε να δείτε πώς λειτουργεί ένα δέντρο αποφάσεων και πώς να το χρησιμοποιήσετε σε πρακτικές εφαρμογές.

Ελπίζω να σας αρέσει σε όλους, αν σας αρέσει, κάντε ένα like και αποθηκεύστε το.