Δέντρο απόφασης στο 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ης τάξης (χρήσιμο για δυαδικές αποκρίσεις). Μπορείτε να ανατρέξετε στο βινιέτα για περισσότερες πληροφορίες σχετικά με τις άλλες επιλογές.

Παραγωγή:

Δημιουργήστε ένα μοντέλο δέντρων απόφασης στο R

Ξεκινάτε από τον ριζικό κόμβο (βάθος 0 πάνω από 3, στην κορυφή του γραφήματος):

  1. Στην κορυφή, είναι η συνολική πιθανότητα επιβίωσης. Δείχνει το ποσοστό των επιβατών που επέζησαν από τη συντριβή. Το 41 τοις εκατό των επιβατών επέζησε.
  2. Αυτός ο κόμβος ρωτά εάν το φύλο του επιβάτη είναι άνδρας. Εάν ναι, τότε κατεβαίνετε στον αριστερό θυγατρικό κόμβο της ρίζας (βάθος 2). Το 63 τοις εκατό είναι άνδρες με πιθανότητα επιβίωσης 21 τοις εκατό.
  3. Στον δεύτερο κόμβο, ρωτάτε αν ο άνδρας επιβάτης είναι άνω των 3.5 ετών. Εάν ναι, τότε η πιθανότητα επιβίωσης είναι 19 τοις εκατό.
  4. Συνεχίζετε έτσι για να καταλάβετε ποια χαρακτηριστικά επηρεάζουν την πιθανότητα επιβίωσης.

Σημειώστε ότι, μία από τις πολλές ιδιότητες των 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.

Μετρήστε την απόδοση των δέντρων απόφασης στο R

Κάθε γραμμή σε έναν πίνακα σύγχυσης αντιπροσωπεύει έναν πραγματικό στόχο, ενώ κάθε στήλη αντιπροσωπεύει έναν προβλεπόμενο στόχο. Η πρώτη σειρά αυτού του πίνακα θεωρεί νεκρούς επιβάτες (η κλάση False): 106 ταξινομήθηκαν σωστά ως νεκροί (Αληθινό αρνητικό), ενώ ο υπόλοιπος εσφαλμένα χαρακτηρίστηκε ως επιζών (Λάθος θετική). Η δεύτερη σειρά θεωρεί τους επιζώντες, η θετική τάξη ήταν 58 (Αληθινό θετικό), ενώ το Αληθινό αρνητικό ήταν 30.

Μπορείτε να υπολογίσετε το τεστ ακρίβειας από τον πίνακα σύγχυσης:

Μετρήστε την απόδοση των δέντρων απόφασης στο R

Είναι η αναλογία του αληθινού θετικού και του αληθινού αρνητικού επί του αθροίσματος του πίνακα. Με το 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

Θα προχωρήσουμε ως εξής:

  • Κατασκευάστε συνάρτηση για απόδοση ακρίβειας
  • Συντονίστε το μέγιστο βάθος
  • Συντονίστε τον ελάχιστο αριθμό δειγμάτων που πρέπει να έχει ένας κόμβος για να μπορέσει να διαχωριστεί
  • Συντονίστε τον ελάχιστο αριθμό δείγματος που πρέπει να έχει ένας κόμβος φύλλου

Μπορείτε να γράψετε μια συνάρτηση για την εμφάνιση της ακρίβειας. Απλώς αναδιπλώνετε τον κώδικα που χρησιμοποιούσατε πριν:

  1. predict: predict_unseen <- predict(fit, data_test, type = 'class')
  2. Παραγωγή πίνακα: table_mat <- table(data_test$survived, predict_unseen)
  3. Υπολογισμός ακρίβειας: 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, μέθοδος, έλεγχος

Σημείωση : Εκπαιδεύστε το μοντέλο σε δεδομένα εκπαίδευσης και δοκιμάστε την απόδοση σε ένα μη εμφανές σύνολο δεδομένων, δηλαδή σετ δοκιμής.