Τι είναι τα δέντρα απόφασης;
Η απόφαση Trees είναι ένας ευέλικτος αλγόριθμος Machine Learning που μπορεί να εκτελέσει εργασίες ταξινόμησης και παλινδρόμησης. Είναι πολύ ισχυροί αλγόριθμοι, ικανοί να εφαρμόζουν πολύπλοκα σύνολα δεδομένων. Εκτός αυτού, τα δέντρα αποφάσεων είναι θεμελιώδη συστατικά των τυχαίων δασών, τα οποία είναι από τους πιο ισχυρούς αλγόριθμους Μηχανικής Μάθησης που διατίθενται σήμερα.
Εκπαίδευση και οπτικοποίηση δέντρων αποφάσεων
Για να δημιουργήσουμε το πρώτο δέντρο αποφάσεων στο παράδειγμα R, θα προχωρήσουμε ως εξής σε αυτό το σεμινάριο Tree Tree:
- Βήμα 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 δέντρου απόφασης Επεξήγηση
- δείγμα (1: nrow (τιτανικός)): Δημιουργήστε μια τυχαία λίστα ευρετηρίου από 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 και επέζησε
- Αφήστε το NA
library(dplyr)# Drop variablesclean_titanic <- titanic % > %select(-c(home.dest, cabin, name, X, ticket)) % > %#Convert to factor levelmutate(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)
Επεξήγηση κώδικα
- επιλέξτε (-c (home.dest, καμπίνα, όνομα, X, εισιτήριο)): Αποθέστε περιττές μεταβλητές
- pclass = factor (pclass, level = c (1,2,3), labels = c ('Άνω', 'Μέση', 'Κάτω')): Προσθήκη ετικέτας στη μεταβλητή pclass. 1 γίνεται Άνω, 2 γίνεται MIddle και 3 γίνεται χαμηλότερο
- συντελεστής (επιβίωσε, επίπεδα = c (0,1), ετικέτες = c («Όχι», «Ναι»)): Προσθήκη ετικέτας στη μεταβλητή που έχει επιζήσει. 1 γίνεται Όχι και 2 γίνεται Ναι
- na.omit (): Καταργήστε τις παρατηρήσεις NA
Παραγωγή:
## Observations: 1,045## Variables: 8## $ pclassUpper, Lower, Lower, Upper, Middle, Upper, Middle, U… ## $ survived No, No, No, Yes, No, Yes, Yes, No, No, No, No, No, Y… ## $ sex male, male, female, female, male, male, female, male… ## $ age 61.0, 42.0, 39.0, 49.0, 29.0, 37.0, 20.0, 54.0, 2.0,… ## $ sibsp 0, 0, 1, 0, 0, 1, 0, 0, 4, 0, 0, 1, 1, 0, 0, 0, 1, 1,… ## $ parch 0, 0, 5, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 2, 0, 4, 0,… ## $ fare 32.3208, 7.6500, 31.2750, 25.9292, 10.5000, 52.5542,… ## $ embarked 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_rowtrain_sample < - 1: total_rowif (train == TRUE) {return (data[train_sample, ])} else {return (data[-train_sample, ])}}
Επεξήγηση κώδικα
- συνάρτηση (δεδομένα, μέγεθος = 0,8, τρένο = TRUE): Προσθέστε τα ορίσματα στη συνάρτηση
- n_row = nrow (δεδομένα): Μετρήστε τον αριθμό σειρών στο σύνολο δεδομένων
- total_row = size * n_row: Επιστρέψτε την nth σειρά για να κατασκευάσετε το τρένο
- 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 () σε συνδυασμό με τον πίνακα () για να επιβεβαιώσετε εάν η διαδικασία τυχαιοποίησης είναι σωστή.
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 (): Λειτουργία που ταιριάζει στο μοντέλο. Τα επιχειρήματα είναι:
- επέζησε ~ .: Τύπος της απόφασης Δέντρα
- data = data_train: Σύνολο δεδομένων
- method = 'class': Τοποθετήστε ένα δυαδικό μοντέλο
- rpart.plot (fit, extra = 106): Σχεδιάστε το δέντρο. Τα επιπλέον χαρακτηριστικά έχουν ρυθμιστεί σε 101 για να εμφανίσουν την πιθανότητα της 2ης τάξης (χρήσιμη για δυαδικές αποκρίσεις) Μπορείτε να ανατρέξετε στο σύντομο χρονογράφημα για περισσότερες πληροφορίες σχετικά με τις άλλες επιλογές.
Παραγωγή:
Ξεκινάτε από τον ριζικό κόμβο (βάθος 0 πάνω από 3, στην κορυφή του γραφήματος):
- Στην κορυφή, είναι η συνολική πιθανότητα επιβίωσης. Δείχνει το ποσοστό επιβατών που επέζησε από το ατύχημα. Το 41% των επιβατών επέζησε.
- Αυτός ο κόμβος ρωτά αν το φύλο του επιβάτη είναι αρσενικό. Εάν ναι, τότε πηγαίνετε στον αριστερό θυγατρικό κόμβο της ρίζας (βάθος 2). Το 63% είναι άνδρες με πιθανότητα επιβίωσης 21%.
- Στο δεύτερο κόμβο, ρωτάτε αν ο άντρας επιβάτης είναι άνω των 3,5 ετών. Εάν ναι, τότε η πιθανότητα επιβίωσης είναι 19 τοις εκατό.
- Συνεχίζετε έτσι ώστε να καταλαβαίνετε ποια χαρακτηριστικά επηρεάζουν την πιθανότητα επιβίωσης.
Σημειώστε ότι, μία από τις πολλές ιδιότητες του Decision Trees είναι ότι απαιτούν πολύ λίγη προετοιμασία δεδομένων. Συγκεκριμένα, δεν απαιτούν κλιμάκωση χαρακτηριστικών ή κεντράρισμα.
Από προεπιλογή, η συνάρτηση rpart () χρησιμοποιεί το μέτρο ακαθαρσίας Gini για να διαιρέσει τη σημείωση. Όσο υψηλότερος είναι ο συντελεστής Gini, τόσο περισσότερες διαφορετικές εμφανίσεις εντός του κόμβου.
Βήμα 5) Κάντε μια πρόβλεψη
Μπορείτε να προβλέψετε το σύνολο δεδομένων δοκιμής. Για να κάνετε μια πρόβλεψη, μπορείτε να χρησιμοποιήσετε τη συνάρτηση πρόβλεψης (). Η βασική σύνταξη της πρόβλεψης για το δέντρο αποφάσεων 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')
Επεξήγηση κώδικα
- πρόβλεψη (fit, data_test, type = 'class'): Προβλέψτε την κλάση (0/1) του δοκιμαστικού συνόλου
Δοκιμή του επιβάτη που δεν τα κατάφερε και εκείνων που το έκαναν.
table_mat <- table(data_test$survived, predict_unseen)table_mat
Επεξήγηση κώδικα
- table (data_test $ survived, predict_unseen): Δημιουργήστε έναν πίνακα για να μετρήσετε πόσους επιβάτες ταξινομούνται ως επιζώντες και πέθανε σε σύγκριση με τη σωστή ταξινόμηση δέντρου απόφασης στο R
Παραγωγή:
## predict_unseen## No Yes## No 106 15## Yes 30 58
Το μοντέλο προέβλεψε σωστά 106 νεκρούς επιβάτες, αλλά χαρακτήρισε 15 επιζώντες ως νεκρούς. Αναλογικά, το μοντέλο ταξινόμησε εσφαλμένα 30 επιβάτες ως επιζώντες, ενώ αποδείχθηκαν νεκροί.
Βήμα 6) Μετρήστε την απόδοση
Μπορείτε να υπολογίσετε ένα μέτρο ακρίβειας για εργασία ταξινόμησης με τον πίνακα σύγχυσης :
Ο πίνακας σύγχυσης είναι μια καλύτερη επιλογή για την αξιολόγηση της απόδοσης ταξινόμησης. Η γενική ιδέα είναι να μετρήσετε τον αριθμό των φορών που ταξινομούνται οι πραγματικές εμφανίσεις είναι ψευδείς.
Κάθε σειρά σε έναν πίνακα σύγχυσης αντιπροσωπεύει έναν πραγματικό στόχο, ενώ κάθε στήλη αντιπροσωπεύει έναν προβλεπόμενο στόχο. Η πρώτη σειρά αυτού του πίνακα θεωρεί τους νεκρούς επιβάτες (την κατηγορία False): 106 ταξινομήθηκαν σωστά ως νεκροί ( True αρνητικό ), ενώ το υπόλοιπο κατηγοριοποιήθηκε εσφαλμένα ως επιζών ( False positive ). Στη δεύτερη σειρά θεωρούνται οι επιζώντες, η θετική τάξη ήταν 58 ( True positive ), ενώ η True αρνητική ήταν 30.
Μπορείτε να υπολογίσετε τη δοκιμή ακρίβειας από τον πίνακα σύγχυσης:
Είναι η αναλογία του αληθινού θετικού και του αληθινού αρνητικού έναντι του αθροίσματος του πίνακα. Με το R, μπορείτε να κωδικοποιήσετε ως εξής:
accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
Επεξήγηση κώδικα
- άθροισμα (diag (table_mat)): Άθροισμα της διαγώνιας
- άθροισμα (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_unseen <- προβλέψτε (fit, data_test, type = 'class')
- Παραγωγή πίνακα: table_mat <- table (data_test $ survived, predict_unseen)
- Ακρίβεια υπολογισμού: ακρίβεια_ Δοκιμή <- άθροισμα (diag (table_mat)) / άθροισμα (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 = 4minbucket= round(5/3)maxdepth = 3cp=0
Έχετε υψηλότερη απόδοση από το προηγούμενο μοντέλο. Συγχαρητήρια!
Περίληψη
Μπορούμε να συνοψίσουμε τις συναρτήσεις για να εκπαιδεύσουμε έναν αλγόριθμο δέντρου αποφάσεων στο R
Βιβλιοθήκη |
Σκοπός |
λειτουργία |
τάξη |
Παράμετροι |
Λεπτομέριες |
---|---|---|---|---|---|
μέρος |
Δέντρο ταξινόμησης αμαξοστοιχίας σε R |
μέρος () |
τάξη |
τύπος, df, μέθοδος | |
μέρος |
Εκπαιδεύστε το δέντρο παλινδρόμησης |
μέρος () |
anova |
τύπος, df, μέθοδος | |
μέρος |
Σχεδιάστε τα δέντρα |
rpart.plot () |
προσαρμοσμένο μοντέλο | ||
βάση |
προλέγω |
προλέγω() |
τάξη |
προσαρμοσμένο μοντέλο, τύπος | |
βάση |
προλέγω |
προλέγω() |
prob |
προσαρμοσμένο μοντέλο, τύπος | |
βάση |
προλέγω |
προλέγω() |
διάνυσμα |
προσαρμοσμένο μοντέλο, τύπος | |
μέρος |
Παράμετροι ελέγχου |
rpart.control () |
minsplit |
Ορίστε τον ελάχιστο αριθμό παρατηρήσεων στον κόμβο πριν ο αλγόριθμος εκτελέσει διαίρεση |
|
μίνι μπούκετ |
Ορίστε τον ελάχιστο αριθμό παρατηρήσεων στην τελική σημείωση, δηλαδή στο φύλλο |
||||
μέγιστο βάθος |
Ορίστε το μέγιστο βάθος οποιουδήποτε κόμβου του τελικού δέντρου. Ο ριζικός κόμβος αντιμετωπίζεται σε βάθος 0 |
||||
μέρος |
Μοντέλο αμαξοστοιχίας με παράμετρο ελέγχου |
μέρος () |
τύπος, df, μέθοδος, έλεγχος |
Σημείωση: Εκπαιδεύστε το μοντέλο σε δεδομένα εκπαίδευσης και ελέγξτε την απόδοση σε ένα αόρατο σύνολο δεδομένων, δηλαδή σετ δοκιμών.