Δέντρο απόφασης στο R: Δέντρο ταξινόμησης με παράδειγμα
Τι είναι τα Δέντρα Απόφασης;
Αποφάσεις δέντρων είναι ευέλικτοι αλγόριθμοι Machine Learning που μπορούν να εκτελέσουν εργασίες ταξινόμησης και παλινδρόμησης. Είναι πολύ ισχυροί αλγόριθμοι, ικανοί να προσαρμόσουν πολύπλοκα σύνολα δεδομένων. Επιπλέον, τα δέντρα αποφάσεων είναι θεμελιώδη στοιχεία τυχαίων δασών, τα οποία είναι από τους πιο ισχυρούς αλγόριθμους Μηχανικής Μάθησης που είναι διαθέσιμοι σήμερα.
Εκπαίδευση και οπτικοποίηση δέντρων αποφάσεων στο R
Για να δημιουργήσετε το πρώτο σας δέντρο αποφάσεων στο παράδειγμα R, θα προχωρήσουμε ως εξής σε αυτό το σεμινάριο Δέντρο αποφάσεων:
- Βήμα 1: Εισαγάγετε τα δεδομένα
- Βήμα 2: Καθαρίστε το σύνολο δεδομένων
- Βήμα 3: Δημιουργία συνόλου τρένου/δοκιμών
- Βήμα 4: Κατασκευάστε το μοντέλο
- Βήμα 5: Κάντε πρόβλεψη
- Βήμα 6: Μετρήστε την απόδοση
- Βήμα 7: Συντονίστε τις υπερπαραμέτρους
Βήμα 1) Εισαγάγετε τα δεδομένα
Αν είστε περίεργοι για την τύχη του Τιτανικού, μπορείτε να παρακολουθήσετε αυτό το βίντεο Youtube. Ο σκοπός αυτού του συνόλου δεδομένων είναι να προβλέψει ποιοι άνθρωποι είναι πιο πιθανό να επιβιώσουν μετά τη σύγκρουση με το παγόβουνο. Το σύνολο δεδομένων περιέχει 13 μεταβλητές και 1309 παρατηρήσεις. Το σύνολο δεδομένων ταξινομείται από τη μεταβλητή X.
set.seed(678) path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/titanic_data.csv' titanic <-read.csv(path) head(titanic)
Παραγωγή:
## X pclass survived name sex ## 1 1 1 1 Allen, Miss. Elisabeth Walton female ## 2 2 1 1 Allison, Master. Hudson Trevor male ## 3 3 1 0 Allison, Miss. Helen Loraine female ## 4 4 1 0 Allison, Mr. Hudson Joshua Creighton male ## 5 5 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female ## 6 6 1 1 Anderson, Mr. Harry male ## age sibsp parch ticket fare cabin embarked ## 1 29.0000 0 0 24160 211.3375 B5 S ## 2 0.9167 1 2 113781 151.5500 C22 C26 S ## 3 2.0000 1 2 113781 151.5500 C22 C26 S ## 4 30.0000 1 2 113781 151.5500 C22 C26 S ## 5 25.0000 1 2 113781 151.5500 C22 C26 S ## 6 48.0000 0 0 19952 26.5500 E12 S ## home.dest ## 1 St Louis, MO ## 2 Montreal, PQ / Chesterville, ON ## 3 Montreal, PQ / Chesterville, ON ## 4 Montreal, PQ / Chesterville, ON ## 5 Montreal, PQ / Chesterville, ON ## 6 New York, NY
tail(titanic)
Παραγωγή:
## X pclass survived name sex age sibsp ## 1304 1304 3 0 Yousseff, Mr. Gerious male NA 0 ## 1305 1305 3 0 Zabour, Miss. Hileni female 14.5 1 ## 1306 1306 3 0 Zabour, Miss. Thamine female NA 1 ## 1307 1307 3 0 Zakarian, Mr. Mapriededer male 26.5 0 ## 1308 1308 3 0 Zakarian, Mr. Ortin male 27.0 0 ## 1309 1309 3 0 Zimmerman, Mr. Leo male 29.0 0 ## parch ticket fare cabin embarked home.dest ## 1304 0 2627 14.4583 C ## 1305 0 2665 14.4542 C ## 1306 0 2665 14.4542 C ## 1307 0 2656 7.2250 C ## 1308 0 2670 7.2250 C ## 1309 0 315082 7.8750 S
Από την έξοδο της κεφαλής και της ουράς, μπορείτε να παρατηρήσετε ότι τα δεδομένα δεν ανακατεύονται. Αυτό είναι μεγάλο θέμα! Όταν θα χωρίσετε τα δεδομένα σας μεταξύ ενός σετ τρένου και ενός σετ δοκιμής, θα επιλέξετε αποκλειστικά ο επιβάτης από την κατηγορία 1 και 2 (Κανένας επιβάτης από την κατηγορία 3 δεν βρίσκεται στο κορυφαίο 80 τοις εκατό των παρατηρήσεων), που σημαίνει ότι ο αλγόριθμος δεν θα δει ποτέ τα χαρακτηριστικά του επιβάτη της κατηγορίας 3. Αυτό το λάθος θα οδηγήσει σε κακή πρόβλεψη.
Για να ξεπεράσετε αυτό το ζήτημα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση δείγμα ().
shuffle_index <- sample(1:nrow(titanic)) head(shuffle_index)
Δέντρο αποφάσεων Κωδικός R Επεξήγηση
- sample(1:nrow(titanic)): Δημιουργήστε μια τυχαία λίστα ευρετηρίου από το 1 έως το 1309 (δηλ. τον μέγιστο αριθμό σειρών).
Παραγωγή:
## [1] 288 874 1078 633 887 992
Θα χρησιμοποιήσετε αυτό το ευρετήριο για να ανακατέψετε το τιτανικό σύνολο δεδομένων.
titanic <- titanic[shuffle_index, ] head(titanic)
Παραγωγή:
## X pclass survived ## 288 288 1 0 ## 874 874 3 0 ## 1078 1078 3 1 ## 633 633 3 0 ## 887 887 3 1 ## 992 992 3 1 ## name sex age ## 288 Sutton, Mr. Frederick male 61 ## 874 Humblen, Mr. Adolf Mathias Nicolai Olsen male 42 ## 1078 O'Driscoll, Miss. Bridget female NA ## 633 Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren) female 39 ## 887 Jermyn, Miss. Annie female NA ## 992 Mamee, Mr. Hanna male NA ## sibsp parch ticket fare cabin embarked home.dest## 288 0 0 36963 32.3208 D50 S Haddenfield, NJ ## 874 0 0 348121 7.6500 F G63 S ## 1078 0 0 14311 7.7500 Q ## 633 1 5 347082 31.2750 S Sweden Winnipeg, MN ## 887 0 0 14313 7.7500 Q ## 992 0 0 2677 7.2292 C
Βήμα 2) Καθαρίστε το σύνολο δεδομένων
Η δομή των δεδομένων δείχνει ότι ορισμένες μεταβλητές έχουν NA. Ο καθαρισμός των δεδομένων πρέπει να γίνει ως εξής
- Αποθέστε τις μεταβλητές home.dest, καμπίνα, όνομα, X και εισιτήριο
- Δημιουργία μεταβλητών παραγόντων για pclass και surved
- Ρίξτε το ΝΑ
library(dplyr) # Drop variables clean_titanic <- titanic % > % select(-c(home.dest, cabin, name, X, ticket)) % > % #Convert to factor level mutate(pclass = factor(pclass, levels = c(1, 2, 3), labels = c('Upper', 'Middle', 'Lower')), survived = factor(survived, levels = c(0, 1), labels = c('No', 'Yes'))) % > % na.omit() glimpse(clean_titanic)
Επεξήγηση κώδικα
- Select(-c(home.dest, καμπίνα, όνομα, X, εισιτήριο)): Απόθεση περιττών μεταβλητών
- pclass = παράγοντας(pclass, επίπεδα = c(1,2,3), labels= c('Upper', 'Middle', 'Lower')): Προσθήκη ετικέτας στη μεταβλητή pclass. Το 1 γίνεται Άνω, το 2 γίνεται μεσαίο και το 3 γίνεται κάτω
- παράγοντας (επιβίωσε, επίπεδα = c(0,1), ετικέτες = c('Όχι', 'Ναι')): Προσθήκη ετικέτας στη μεταβλητή επιβίωσε. Το 1 γίνεται Όχι και το 2 γίνεται Ναι
- na.omit(): Αφαιρέστε τις παρατηρήσεις NA
Παραγωγή:
## Observations: 1,045 ## Variables: 8 ## $ pclass <fctr> Upper, Lower, Lower, Upper, Middle, Upper, Middle, U... ## $ survived <fctr> No, No, No, Yes, No, Yes, Yes, No, No, No, No, No, Y... ## $ sex <fctr> male, male, female, female, male, male, female, male... ## $ age <dbl> 61.0, 42.0, 39.0, 49.0, 29.0, 37.0, 20.0, 54.0, 2.0, ... ## $ sibsp <int> 0, 0, 1, 0, 0, 1, 0, 0, 4, 0, 0, 1, 1, 0, 0, 0, 1, 1,... ## $ parch <int> 0, 0, 5, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 2, 0, 4, 0,... ## $ fare <dbl> 32.3208, 7.6500, 31.2750, 25.9292, 10.5000, 52.5542, ... ## $ embarked <fctr> S, S, S, S, S, S, S, S, S, C, S, S, S, Q, C, S, S, C...
Βήμα 3) Δημιουργήστε σετ τρένου/δοκιμών
Πριν εκπαιδεύσετε το μοντέλο σας, πρέπει να εκτελέσετε δύο βήματα:
- Δημιουργία συνόλου αμαξοστοιχίας και δοκιμής: Εκπαιδεύετε το μοντέλο στο σετ αμαξοστοιχίας και δοκιμάζετε την πρόβλεψη στο σετ δοκιμής (δηλαδή μη ορατά δεδομένα)
- Εγκαταστήστε το rpart.plot από την κονσόλα
Η κοινή πρακτική είναι ο διαχωρισμός των δεδομένων 80/20, το 80 τοις εκατό των δεδομένων χρησιμεύει για την εκπαίδευση του μοντέλου και το 20 τοις εκατό για την πραγματοποίηση προβλέψεων. Πρέπει να δημιουργήσετε δύο ξεχωριστά πλαίσια δεδομένων. Δεν θέλετε να αγγίξετε το σετ δοκιμής μέχρι να ολοκληρώσετε την κατασκευή του μοντέλου σας. Μπορείτε να δημιουργήσετε ένα όνομα συνάρτησης create_train_test() που παίρνει τρία ορίσματα.
create_train_test(df, size = 0.8, train = TRUE) arguments: -df: Dataset used to train the model. -size: Size of the split. By default, 0.8. Numerical value -train: If set to `TRUE`, the function creates the train set, otherwise the test set. Default value sets to `TRUE`. Boolean value.You need to add a Boolean parameter because R does not allow to return two data frames simultaneously.
create_train_test <- function(data, size = 0.8, train = TRUE) { n_row = nrow(data) total_row = size * n_row train_sample < - 1: total_row if (train == TRUE) { return (data[train_sample, ]) } else { return (data[-train_sample, ]) } }
Επεξήγηση κώδικα
- function(data, size=0.8, train = TRUE): Προσθέστε τα ορίσματα στη συνάρτηση
- n_row = nrow(data): Μετρήστε τον αριθμό των σειρών στο σύνολο δεδομένων
- total_row = size*n_row: Επιστρέψτε την nη σειρά για να δημιουργήσετε το σύνολο τρένου
- train_sample <- 1:total_row: Επιλέξτε την πρώτη σειρά στις ντες σειρές
- if (train ==TRUE){ } else { }: Εάν η συνθήκη οριστεί σε true, επιστρέψτε το σύνολο αμαξοστοιχίας, διαφορετικά το σύνολο δοκιμής.
Μπορείτε να δοκιμάσετε τη λειτουργία σας και να ελέγξετε τη διάσταση.
data_train <- create_train_test(clean_titanic, 0.8, train = TRUE) data_test <- create_train_test(clean_titanic, 0.8, train = FALSE) dim(data_train)
Παραγωγή:
## [1] 836 8
dim(data_test)
Παραγωγή:
## [1] 209 8
Το σύνολο δεδομένων τρένου έχει 1046 σειρές ενώ το δοκιμαστικό σύνολο δεδομένων έχει 262 σειρές.
Χρησιμοποιείτε τη συνάρτηση prop.table() σε συνδυασμό με την table() για να επαληθεύσετε εάν η διαδικασία τυχαιοποίησης είναι σωστή.
prop.table(table(data_train$survived))
Παραγωγή:
## ## No Yes ## 0.5944976 0.4055024
prop.table(table(data_test$survived))
Παραγωγή:
## ## No Yes ## 0.5789474 0.4210526
Και στα δύο δεδομένα, ο αριθμός των επιζώντων είναι ο ίδιος, περίπου 40 τοις εκατό.
Εγκαταστήστε το rpart.plot
Το rpart.plot δεν είναι διαθέσιμο από τις βιβλιοθήκες conda. Μπορείτε να το εγκαταστήσετε από την κονσόλα:
install.packages("rpart.plot")
Βήμα 4) Κατασκευάστε το μοντέλο
Είστε έτοιμοι να φτιάξετε το μοντέλο. Η σύνταξη για τη συνάρτηση δέντρου αποφάσεων Rpart είναι:
rpart(formula, data=, method='') arguments: - formula: The function to predict - data: Specifies the data frame- method: - "class" for a classification tree - "anova" for a regression tree
Χρησιμοποιείτε τη μέθοδο κλάσης επειδή προβλέπετε μια τάξη.
library(rpart) library(rpart.plot) fit <- rpart(survived~., data = data_train, method = 'class') rpart.plot(fit, extra = 106
Επεξήγηση κώδικα
- rpart(): Λειτουργία που ταιριάζει στο μοντέλο. Τα επιχειρήματα είναι:
- επέζησε ~.: Formula of the Decision Trees
- data = data_train: Σύνολο δεδομένων
- μέθοδος = 'class': Προσαρμόστε ένα δυαδικό μοντέλο
- rpart.plot(fit, extra= 106): Σχεδιάστε το δέντρο. Τα επιπλέον χαρακτηριστικά έχουν οριστεί στο 101 για να εμφανιστεί η πιθανότητα της 2ης τάξης (χρήσιμο για δυαδικές αποκρίσεις). Μπορείτε να ανατρέξετε στο βινιέτα για περισσότερες πληροφορίες σχετικά με τις άλλες επιλογές.
Παραγωγή:
Ξεκινάτε από τον ριζικό κόμβο (βάθος 0 πάνω από 3, στην κορυφή του γραφήματος):
- Στην κορυφή, είναι η συνολική πιθανότητα επιβίωσης. Δείχνει το ποσοστό των επιβατών που επέζησαν από τη συντριβή. Το 41 τοις εκατό των επιβατών επέζησε.
- Αυτός ο κόμβος ρωτά εάν το φύλο του επιβάτη είναι άνδρας. Εάν ναι, τότε κατεβαίνετε στον αριστερό θυγατρικό κόμβο της ρίζας (βάθος 2). Το 63 τοις εκατό είναι άνδρες με πιθανότητα επιβίωσης 21 τοις εκατό.
- Στον δεύτερο κόμβο, ρωτάτε αν ο άνδρας επιβάτης είναι άνω των 3.5 ετών. Εάν ναι, τότε η πιθανότητα επιβίωσης είναι 19 τοις εκατό.
- Συνεχίζετε έτσι για να καταλάβετε ποια χαρακτηριστικά επηρεάζουν την πιθανότητα επιβίωσης.
Σημειώστε ότι, μία από τις πολλές ιδιότητες των Decision Trees είναι ότι απαιτούν πολύ λίγη προετοιμασία δεδομένων. Συγκεκριμένα, δεν απαιτούν κλιμάκωση ή κεντράρισμα χαρακτηριστικών.
Από προεπιλογή, η συνάρτηση rpart() χρησιμοποιεί το Gini μέτρο ακαθαρσίας για να χωρίσετε τη νότα. Όσο υψηλότερος είναι ο συντελεστής Gini, τόσο περισσότερες διαφορετικές περιπτώσεις εντός του κόμβου.
Βήμα 5) Κάντε μια πρόβλεψη
Μπορείτε να προβλέψετε το σύνολο δεδομένων δοκιμής σας. Για να κάνετε μια πρόβλεψη, μπορείτε να χρησιμοποιήσετε τη συνάρτηση predict(). Η βασική σύνταξη της πρόβλεψης για το δέντρο απόφασης R είναι:
predict(fitted_model, df, type = 'class') arguments: - fitted_model: This is the object stored after model estimation. - df: Data frame used to make the prediction - type: Type of prediction - 'class': for classification - 'prob': to compute the probability of each class - 'vector': Predict the mean response at the node level
Θέλετε να προβλέψετε ποιοι επιβάτες είναι πιο πιθανό να επιβιώσουν μετά τη σύγκρουση από το σετ δοκιμών. Αυτό σημαίνει ότι θα ξέρετε από αυτούς τους 209 επιβάτες, ποιος θα επιβιώσει ή όχι.
predict_unseen <-predict(fit, data_test, type = 'class')
Επεξήγηση κώδικα
- predict(fit, data_test, type = 'class'): Προβλέψτε την κλάση (0/1) του συνόλου δοκιμής
Δοκιμάζοντας τον επιβάτη που δεν τα κατάφερε και αυτούς που τα κατάφεραν.
table_mat <- table(data_test$survived, predict_unseen) table_mat
Επεξήγηση κώδικα
- πίνακας(data_test$survived, predict_unseen): Δημιουργήστε έναν πίνακα για να μετρήσετε πόσοι επιβάτες ταξινομήθηκαν ως επιζώντες και απεβίωσαν σε σύγκριση με τη σωστή ταξινόμηση δέντρου αποφάσεων στο R
Παραγωγή:
## predict_unseen ## No Yes ## No 106 15 ## Yes 30 58
Το μοντέλο προέβλεψε σωστά 106 νεκρούς επιβάτες, αλλά κατέταξε 15 επιζώντες ως νεκρούς. Κατ' αναλογία, το μοντέλο χαρακτήρισε εσφαλμένα 30 επιβάτες ως επιζώντες, ενώ αποδείχτηκε ότι ήταν νεκροί.
Βήμα 6) Μετρήστε την απόδοση
Μπορείτε να υπολογίσετε ένα μέτρο ακρίβειας για την εργασία ταξινόμησης με το μήτρα σύγχυσης:
The μήτρα σύγχυσης είναι μια καλύτερη επιλογή για την αξιολόγηση της απόδοσης της ταξινόμησης. Η γενική ιδέα είναι να μετράμε πόσες φορές τα True instances ταξινομούνται ως False.
Κάθε γραμμή σε έναν πίνακα σύγχυσης αντιπροσωπεύει έναν πραγματικό στόχο, ενώ κάθε στήλη αντιπροσωπεύει έναν προβλεπόμενο στόχο. Η πρώτη σειρά αυτού του πίνακα θεωρεί νεκρούς επιβάτες (η κλάση False): 106 ταξινομήθηκαν σωστά ως νεκροί (Αληθινό αρνητικό), ενώ ο υπόλοιπος εσφαλμένα χαρακτηρίστηκε ως επιζών (Λάθος θετική). Η δεύτερη σειρά θεωρεί τους επιζώντες, η θετική τάξη ήταν 58 (Αληθινό θετικό), ενώ το Αληθινό αρνητικό ήταν 30.
Μπορείτε να υπολογίσετε το τεστ ακρίβειας από τον πίνακα σύγχυσης:
Είναι η αναλογία του αληθινού θετικού και του αληθινού αρνητικού επί του αθροίσματος του πίνακα. Με το R, μπορείτε να κωδικοποιήσετε ως εξής:
accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
Επεξήγηση κώδικα
- sum(diag(table_mat)): Άθροισμα της διαγωνίου
- sum(table_mat): Άθροισμα του πίνακα.
Μπορείτε να εκτυπώσετε την ακρίβεια του σετ δοκιμής:
print(paste('Accuracy for test', accuracy_Test))
Παραγωγή:
## [1] "Accuracy for test 0.784688995215311"
Έχετε βαθμολογία 78 τοις εκατό για το σετ δοκιμών. Μπορείτε να επαναλάβετε την ίδια άσκηση με το σύνολο δεδομένων εκπαίδευσης.
Βήμα 7) Συντονίστε τις υπερ-παραμέτρους
Το δέντρο απόφασης στο R έχει διάφορες παραμέτρους που ελέγχουν πτυχές της προσαρμογής. Στη βιβλιοθήκη δένδρων αποφάσεων rpart, μπορείτε να ελέγξετε τις παραμέτρους χρησιμοποιώντας τη συνάρτηση rpart.control(). Στον παρακάτω κώδικα εισάγετε τις παραμέτρους που θα συντονίσετε. Μπορείτε να ανατρέξετε στο βινιέτα για άλλες παραμέτρους.
rpart.control(minsplit = 20, minbucket = round(minsplit/3), maxdepth = 30) Arguments: -minsplit: Set the minimum number of observations in the node before the algorithm perform a split -minbucket: Set the minimum number of observations in the final note i.e. the leaf -maxdepth: Set the maximum depth of any node of the final tree. The root node is treated a depth 0
Θα προχωρήσουμε ως εξής:
- Κατασκευάστε συνάρτηση για απόδοση ακρίβειας
- Συντονίστε το μέγιστο βάθος
- Συντονίστε τον ελάχιστο αριθμό δειγμάτων που πρέπει να έχει ένας κόμβος για να μπορέσει να διαχωριστεί
- Συντονίστε τον ελάχιστο αριθμό δείγματος που πρέπει να έχει ένας κόμβος φύλλου
Μπορείτε να γράψετε μια συνάρτηση για την εμφάνιση της ακρίβειας. Απλώς αναδιπλώνετε τον κώδικα που χρησιμοποιούσατε πριν:
- predict: predict_unseen <- predict(fit, data_test, type = 'class')
- Παραγωγή πίνακα: table_mat <- table(data_test$survived, predict_unseen)
- Υπολογισμός ακρίβειας: accuracy_Test <- sum(diag(table_mat))/sum(table_mat)
accuracy_tune <- function(fit) { predict_unseen <- predict(fit, data_test, type = 'class') table_mat <- table(data_test$survived, predict_unseen) accuracy_Test <- sum(diag(table_mat)) / sum(table_mat) accuracy_Test }
Μπορείτε να δοκιμάσετε να συντονίσετε τις παραμέτρους και να δείτε εάν μπορείτε να βελτιώσετε το μοντέλο σε σχέση με την προεπιλεγμένη τιμή. Ως υπενθύμιση, πρέπει να έχετε ακρίβεια μεγαλύτερη από 0.78
control <- rpart.control(minsplit = 4, minbucket = round(5 / 3), maxdepth = 3, cp = 0) tune_fit <- rpart(survived~., data = data_train, method = 'class', control = control) accuracy_tune(tune_fit)
Παραγωγή:
## [1] 0.7990431
Με την ακόλουθη παράμετρο:
minsplit = 4 minbucket= round(5/3) maxdepth = 3cp=0
Έχετε υψηλότερη απόδοση από το προηγούμενο μοντέλο. Συγχαρητήρια!
Σύνοψη
Μπορούμε να συνοψίσουμε τις συναρτήσεις για να εκπαιδεύσουμε έναν αλγόριθμο δέντρου αποφάσεων R
Βιβλιοθήκη | Σκοπός | Λειτουργία | Τάξη | παράμετροι | Περιγραφή |
---|---|---|---|---|---|
το μέρος | Δέντρο ταξινόμησης τρένων στο R | rpart() | τάξη | τύπος, df, μέθοδος | |
το μέρος | Δέντρο παλινδρόμησης τρένου | rpart() | anova | τύπος, df, μέθοδος | |
το μέρος | Οικόπεδο τα δέντρα | rpart.plot() | προσαρμοσμένο μοντέλο | ||
βάση | προβλέψει | προλέγω() | τάξη | τοποθετημένο μοντέλο, τύπος | |
βάση | προβλέψει | προλέγω() | prob | τοποθετημένο μοντέλο, τύπος | |
βάση | προβλέψει | προλέγω() | διάνυσμα | τοποθετημένο μοντέλο, τύπος | |
το μέρος | Παράμετροι ελέγχου | rpart.control() | minsplit | Ορίστε τον ελάχιστο αριθμό παρατηρήσεων στον κόμβο πριν ο αλγόριθμος εκτελέσει μια διαίρεση | |
Minbucket | Ορίστε τον ελάχιστο αριθμό παρατηρήσεων στην τελική νότα, δηλαδή στο φύλλο | ||||
μέγιστο βάθος | Ορίστε το μέγιστο βάθος οποιουδήποτε κόμβου του τελικού δέντρου. Ο ριζικός κόμβος αντιμετωπίζεται σε βάθος 0 | ||||
το μέρος | Μοντέλο αμαξοστοιχίας με παράμετρο ελέγχου | rpart() | τύπος, df, μέθοδος, έλεγχος |
Σημείωση : Εκπαιδεύστε το μοντέλο σε δεδομένα εκπαίδευσης και δοκιμάστε την απόδοση σε ένα μη εμφανές σύνολο δεδομένων, δηλαδή σετ δοκιμής.