Βίντεο: Statistical Programming with R by Connor Harris 2024
είναι η ταξινόμηση νέων δεδομένων, προβλέποντας σε ποια κλάση ανήκει ένα στοιχείο στόχου δεδομένων, δεδομένου ενός συνόλου ανεξάρτητων μεταβλητών. Μπορείτε, για παράδειγμα, να ταξινομήσετε έναν πελάτη ανά τύπο - για παράδειγμα, ως πελάτης υψηλής αξίας, ένας τακτικός πελάτης ή ένας πελάτης που είναι έτοιμος να μεταβεί σε έναν ανταγωνιστή - χρησιμοποιώντας ένα δέντρο αποφάσεων.
Για να δείτε μερικές χρήσιμες πληροφορίες σχετικά με το μοντέλο ταξινόμησης R, πληκτρολογήστε τον ακόλουθο κώδικα:
Η στήλη Κλάση σας λέει ότι έχετε δημιουργήσει ένα δέντρο απόφασης. Για να δείτε πώς προσδιορίζονται τα διαχωρίσματα, μπορείτε απλά να πληκτρολογήσετε το όνομα της μεταβλητής στην οποία έχετε αντιστοιχίσει το μοντέλο, σε αυτό το μοντέλο, όπως παρακάτω:
μοντέλο Υποκατάστατο δέντρο συμπερασμάτων με 6 τερματικούς κόμβους Απόκριση: inputType Inputs: περιοχή, περίμετρος, συμπαγής, μήκος, πλάτος, ασυμμετρία, μήκος2 Αριθμός παρατηρήσεων: 147 1) περιοχή <= 16. 2; κριτήριο = 1, στατιστικό = 123. 423 2) περιοχή <= 13. 37; κριτήριο = 1, στατιστική = 63. 549 3) μήκος 2 4. 914 5) * βάρη = 45 2) περιοχή> 13. 37 6) μήκος 2 5. 396 8) * βάρος = 8 1) 5. 877 11) * weights = 40
Ακόμη καλύτερα, μπορείτε να απεικονίσετε το μοντέλο δημιουργώντας μια γραφική παράσταση του δέντρου αποφάσεων με αυτόν τον κώδικα:> plot (model)
κόμβους (τους κύκλους και τα ορθογώνια) και τις συνδέσεις ή ακμές (τις γραμμές σύνδεσης). Ο πρώτος κόμβος (που αρχίζει από την κορυφή) ονομάζεται
κόμβος ρίζας και οι κόμβοι στο κάτω μέρος του δέντρου (ορθογώνια) ονομάζονται τερματικοί κόμβοι . Υπάρχουν πέντε κόμβοι αποφάσεων και έξι τερματικοί κόμβοι.
Για παράδειγμα, λάβετε την παρατήρηση # 2 από το σύνολο δεδομένων. Έχει ένα 4.956 και ένα 14. 88. Μπορείτε να χρησιμοποιήσετε το δέντρο που μόλις χτίστηκε για να αποφασίσετε ποιος συγκεκριμένος τύπος σπόρου αυτής της παρατήρησης ανήκει. Ακολουθεί η ακολουθία των βημάτων:
Ξεκινήστε στον κόμβο ρίζας, ο οποίος είναι ο κόμβος 1 (ο αριθμός εμφανίζεται στο μικρό τετράγωνο στο πάνω μέρος του κύκλου). Αποφασίστε με βάση το χαρακτηριστικό: Είναι η παρατήρηση # 2 μικρότερη ή ίση με (υποδηλώνεται με <=) 16.2; η απάντηση είναι ναι, οπότε μετακινήστε τη διαδρομή προς τον κόμβο 2.
-
Στο κόμβο 2, το μοντέλο ρωτάει: Είναι η περιοχή 13. 37; Η απάντηση είναι ναι, οπότε μετακινηθείτε κατά μήκος της διαδρομής στον κόμβο 6. Στον κόμβο αυτό το μοντέλο ρωτάει: Είναι το μήκος2 <= 5. 396; είναι και μετακινείτε στον τερματικό κόμβο 7 και η ετυμηγορία είναι ότι η παρατήρηση # 2 είναι τύπου σπόρου 1. Και είναι στην πραγματικότητα ο σπόρος τύπου 1.
-
Το μοντέλο κάνει αυτή τη διαδικασία για όλες τις άλλες παρατηρήσεις για να προβλέψει τάξεις.
Για να μάθετε αν έχετε εκπαιδεύσει ένα καλό μοντέλο, ελέγξτε το κατά των δεδομένων εκπαίδευσης. Μπορείτε να δείτε τα αποτελέσματα σε έναν πίνακα με τον ακόλουθο κώδικα: >> πίνακας (πρόβλεψη (μοντέλο), trainSet $ seedType) 1 2 3 1 45 4 3 2 3 47 0 3 1 0 44
-
Τα αποτελέσματα δείχνουν ότι το σφάλμα (ή ο βαθμός εσφαλμένης ταξινόμησης) είναι 11 από τα 147 ή το 7,4%.
Με τα αποτελέσματα να υπολογίζονται, το επόμενο βήμα είναι να διαβάσετε τον πίνακα.
Οι σωστές προβλέψεις είναι εκείνες που δείχνουν τον ίδιο αριθμό στήλης και γραμμής. Αυτά τα αποτελέσματα εμφανίζονται ως μια διαγώνια γραμμή από πάνω προς τα αριστερά προς τα κάτω. για παράδειγμα, [1, 1], [2, 2], [3, 3] είναι ο αριθμός των σωστών προβλέψεων για αυτήν την κλάση.
-
Έτσι, για τον σπόρο τύπου 1, το μοντέλο προέβλεψε σωστά 45 φορές, ενώ εσφαλμένα ταξινόμησε τους σπόρους 7 φορές (4 φορές ως σπόροι τύπου 2 και 3 φορές ως τύπος 3). Για τον τύπο σπόρου 2, το μοντέλο προέβλεψε σωστά 47 φορές, ενώ το ταξινόμησε εσφαλμένα 3 φορές. Για τον τύπο σπόρου 3, το μοντέλο το προέβλεψε σωστά 44 φορές, ενώ το ταξινόμησε εσφαλμένα μόνο μία φορά.
Αυτό δείχνει ότι αυτό είναι ένα καλό μοντέλο. Τώρα το αξιολογείτε με τα δεδομένα δοκιμών. Εδώ είναι ο κώδικας που χρησιμοποιεί τα δεδομένα δοκιμών για την πρόβλεψη και αποθήκευση του σε μια μεταβλητή (testPrediction) για μεταγενέστερη χρήση: >> testPrediction <- πρόβλεψη (μοντέλο, newdata = testSet)
ελέγξτε τα δεδομένα, δείτε το σε έναν πίνακα και υπολογίστε το σφάλμα, για το οποίο ο κώδικας μοιάζει με αυτόν τον τύπο: >> table (testPrediction, testSet $ seedType) testPrediction 1 2 3 1 23 2 1 2 1 19 0 3 1 0 17 < Τα αποτελέσματα δείχνουν ότι το σφάλμα είναι 5 από τα 64, ή το 7,7%. Αυτό συμβαδίζει με τα δεδομένα εκπαίδευσης.