Δείτε πώς λειτουργεί ο αλγόριθμος του δέντρου αποφάσεων

Δείτε πώς λειτουργεί ο αλγόριθμος του δέντρου αποφάσεων

April 18, 2023 0 By admin

Σε Μηχανική Μάθηση, Το Decision Tree είναι ένας αλγόριθμος που λειτουργεί σαν διάγραμμα ροής ή δομή δέντρου για τη λήψη αποφάσεων με βάση τα δεδομένα εισόδου. Ξεκινά με μια ερώτηση ή μια συνθήκη και στη συνέχεια ακολουθεί διαφορετικούς κλάδους με βάση τις απαντήσεις σε επόμενες ερωτήσεις μέχρι να γίνει μια πρόβλεψη. Επομένως, εάν είστε νέος στη μηχανική μάθηση και θέλετε να μάθετε πώς λειτουργεί ο αλγόριθμος του δέντρου αποφάσεων, αυτό το άρθρο είναι για εσάς. Σε αυτό το άρθρο, θα παρουσιάσω πώς λειτουργεί ο αλγόριθμος του δέντρου αποφάσεων και πώς να τον εφαρμόσω χρησιμοποιώντας Python.

Δείτε πώς λειτουργεί ο αλγόριθμος του δέντρου αποφάσεων

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

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

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

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

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

Έτσι, ένας αλγόριθμος δέντρου αποφάσεων μοιάζει με ένα διάγραμμα ροής που λαμβάνει αποφάσεις με βάση μια σειρά ερωτήσεων και απαντήσεων. Ξεκινά σε έναν κόμβο «ρίζας» με μια ερώτηση, διακλαδίζεται σε επόμενες ερωτήσεις με βάση τις απαντήσεις και τελικά φτάνει σε έναν κόμβο «φύλλου» που αντιπροσωπεύει μια απόφαση.

Υλοποίηση του αλγορίθμου Decision Tree με χρήση Python

Τώρα ας δούμε πώς να εφαρμόσουμε τον αλγόριθμο Decision Tree χρησιμοποιώντας Python. Για να το εφαρμόσουμε χρησιμοποιώντας Python, μπορούμε να χρησιμοποιήσουμε το scikit-μαθαίνω βιβλιοθήκη σε Python, η οποία παρέχει τη λειτουργικότητα της υλοποίησης όλων των αλγορίθμων και των εννοιών Machine Learning χρησιμοποιώντας Python.

Ας εισάγουμε πρώτα τις απαραίτητες βιβλιοθήκες Python και ας δημιουργήσουμε ένα δείγμα δεδομένων με βάση το παράδειγμα που συζητήσαμε παραπάνω:

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import pandas as pd

credit_scores = [650, 720, 580, 800, 690, 750, 600, 670, 710, 680]
loan_approval = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0] 

data = {"Credit_Score": credit_scores, "Loan_Approval": loan_approval}
df = pd.DataFrame(data)
print(df.head())
   Credit_Score  Loan_Approval
0           650              1
1           720              1
2           580              0
3           800              1
4           690              0

Τώρα δείτε πώς να εκπαιδεύσετε ένα μοντέλο Μηχανικής Μάθησης χρησιμοποιώντας τον αλγόριθμο Δένδρου Αποφάσεων:

X = df[['Credit_Score']]
y = df['Loan_Approval']

clf = DecisionTreeClassifier(random_state=42)
clf.fit(X, y)

Παρακάτω είναι πώς μπορούμε να απεικονίσουμε τη διαδικασία λήψης αποφάσεων του αλγόριθμου του δέντρου αποφάσεων:

from sklearn.tree import plot_tree
import matplotlib.pyplot as plt

# Plot the decision tree
plt.figure(figsize=(10, 6))
plot_tree(clf, filled=True, rounded=True, 
          feature_names=['Credit Score'], 
          class_names=['Denied', 'Approved'])
plt.show()
Οπτικοποίηση αλγορίθμου δέντρου αποφάσεων

Τώρα δείτε πώς μπορούμε να κάνουμε προβλέψεις χρησιμοποιώντας τον αλγόριθμο Decision Tree:

user_credit_score = float(input("Enter your credit score: "))

prediction = clf.predict([[user_credit_score]])

if prediction[0] == 1:
    print("Congratulations! Your loan application is likely to be approved.")
else:
    print("We regret to inform you that your loan application is likely to be denied.")
Enter your credit score: 720
Congratulations! Your loan application is likely to be approved.

Έτσι λειτουργεί ο αλγόριθμος Decision Tree.

Πλεονεκτήματα και Μειονεκτήματα του Αλγόριθμου Δέντρου Αποφάσεων

Ακολουθούν ορισμένα πλεονεκτήματα και μειονεκτήματα του αλγόριθμου Decision Tree που πρέπει να γνωρίζετε:

Πλεονεκτήματα:
  • Τα δέντρα αποφάσεων παράγουν κανόνες απόφασης που είναι εύκολο να ερμηνευτούν, επιτρέποντας στους ενδιαφερόμενους να κατανοήσουν και να εμπιστευτούν τη διαδικασία λήψης αποφάσεων.
  • Τα δέντρα αποφάσεων μπορούν να χειριστούν αποτελεσματικά δεδομένα που λείπουν λαμβάνοντας αποφάσεις με βάση τα διαθέσιμα δεδομένα για κάθε τμήμα.
Μειονεκτήματα:
  • Τα δέντρα απόφασης είναι επιρρεπή σε υπερβολική προσαρμογή, ειδικά όταν το δέντρο γίνεται πολύ βαθύ ή πολύπλοκο.
  • Τα δέντρα αποφάσεων είναι ευαίσθητα σε μικρές αλλαγές στα δεδομένα εισόδου, οι οποίες μπορούν να οδηγήσουν σε διαφορετικές δομές δέντρων και κανόνες απόφασης.

Περίληψη

Έτσι, ένας αλγόριθμος δέντρου αποφάσεων μοιάζει με ένα διάγραμμα ροής που λαμβάνει αποφάσεις με βάση μια σειρά ερωτήσεων και απαντήσεων. Ξεκινά σε έναν κόμβο «ρίζας» με μια ερώτηση, διακλαδίζεται σε επόμενες ερωτήσεις με βάση τις απαντήσεις και τελικά φτάνει σε έναν κόμβο «φύλλου» που αντιπροσωπεύει μια απόφαση. Ελπίζω να σας άρεσε αυτό το άρθρο σχετικά με τον τρόπο λειτουργίας του αλγόριθμου Decision Tree και πώς να τον εφαρμόσετε χρησιμοποιώντας Python. Μη διστάσετε να κάνετε πολύτιμες ερωτήσεις στην παρακάτω ενότητα σχολίων.