▶️ Tematyka

  • Pakiet mlr3
  • Klasyfikacja
    • Zadanie
    • Algorytm
    • Podział na zbiór uczący i testowy
    • Parametry modelu
    • Ocena modeli
    • Regresja
    • Model


📘 Pakiet mlr3

Pakiet mlr3 pozwala na wykorzystanie różnorodnych algorytmów uczenia maszynowego w ujednolicony sposób.

library(mlr3)

📘 Klasyfikacja

Algorytmy te pozwalają przewidzieć klasę do jakiej należy dana obserwacja.

Na przykład w przypadku zbioru danych iris kolumna Species określa przynależność danego kwiatu do jednego z trzech gatunków.

#Wykorzystywany zbiór danych:
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

❕ Zadanie

W celu wytrenowania algorytmu dla danego zbioru danych należy stworzyć zadanie.

Umożliwia to funkcja as_task_classif której pierwszy argument to nasz zbiór danych a drugi to nazwa kolumny w której znajduje się przewidywana klasa.

zadanie <- as_task_classif(iris, target="Species")

zadanie
## <TaskClassif:iris> (150 x 5)
## * Target: Species
## * Properties: multiclass
## * Features (4):
##   - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width

Należy pamiętać, że kolumna podana jako target musi zawierać zmienną typu factor.

W przypadku zbioru danych iris kolumna Species jest typu factor, jednak jeżeli to zmienimy próba utworzenia zadania zwróci error.

❕ Algorytm

Niezależnie od utworzonego powyżej zadania należy stworzyć obiekt, który zdefiniuje typ algorytmu jaki zostanie wykorzystany.

drzewo_decyzyjne <- lrn("classif.rpart")

Dostępne algorytmy można zobaczyć przywołując następujący obiekt:

mlr_learners
## <DictionaryLearner> with 6 stored values
## Keys: classif.debug, classif.featureless, classif.rpart, regr.debug,
##   regr.featureless, regr.rpart

Niewiele algorytmów jest dostępne w ramach podstawowego mlr3.

By uzyskać dostęp do dodatkowych algorytmów należy wczytać następującą bibliotekę.

library(mlr3learners)

Teraz lista dostępnych algorytmów zawiera znacznie więcej elementów.

mlr_learners
## <DictionaryLearner> with 27 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
##   classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
##   classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
##   classif.ranger, classif.rpart, classif.svm, classif.xgboost,
##   regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
##   regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
##   regr.xgboost

Dzięki temu wykorzystać będzie można takie algorytmy jak na przykład k najbliższych sąsiadów.

knn <- lrn("classif.kknn")

Możliwe że wybrany algorytm wymagać będzie instalacji dodatkowego pakietu.

Powyższy algorytm wymaga na przykład pakietu kknn.

Nie trzeba jednak wczytywać pakietu za pomocą funkcji library() - wystarczy że jest on zainstalowany.

Podstawowe zastosowanie algorytmu.

Tak przygotowany algorytm można teraz zastosować dla określonego zadania.

Najpierw konieczne jest wytrenowanie modelu - etap ten można porównać do oszacowania parametrów modelu ekonometrycznego.

Należy zwrócić uwagę na to, że przywołanie $train() zmodyfikuje już istniejący obiekt drzewo_decyzyjne.

ynik nie jest zapisany jako osobny model a automatycznie nadpisuje utworzony wcześniej obiekt dla którego zdefiniowano tylko algorytm.

####przed zastosowaniem $train() model jest pusty
drzewo_decyzyjne$model
## NULL

Zastosowanie algorytmu drzewa decyzyjnego dla zadania klasyfikacji kwiatów powoduje że model nie jest już pusty.

drzewo_decyzyjne$train(zadanie)

drzewo_decyzyjne$model
## n= 150 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
## 1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)  
##   2) Petal.Length< 2.45 50   0 setosa (1.00000000 0.00000000 0.00000000) *
##   3) Petal.Length>=2.45 100  50 versicolor (0.00000000 0.50000000 0.50000000)  
##     6) Petal.Width< 1.75 54   5 versicolor (0.00000000 0.90740741 0.09259259) *
##     7) Petal.Width>=1.75 46   1 virginica (0.00000000 0.02173913 0.97826087) *

W celu uzyskania wartości przewidywanych przez model należy zastosować $predict().

W przeciwieństwie do $train() wyniki $predict() należy zapisać jako osobny obiekt.

gatunki_przewidywane <- drzewo_decyzyjne$predict(zadanie)

Warto zauważyć, że wynik tej operacji zwraca tabelę w której znajdują się zarówno wartości rzeczywiste (truth) jak i przewidywane (response).

gatunki_przewidywane
## <PredictionClassif> for 150 observations:
##     row_ids     truth  response
##           1    setosa    setosa
##           2    setosa    setosa
##           3    setosa    setosa
## ---                            
##         148 virginica virginica
##         149 virginica virginica
##         150 virginica virginica

❕ Podział na zbiór uczący i testowy

W celu poprawnej oceny jakości dopasowania modelu należy losowo wydzielić zbiór uczący i testowy.

Zbiór testowy symulować ma trafność przewidywania modelu dla nowych obserwacji.

Posłużyć do tego może funkcja partition.

uczący_testowy <- partition(zadanie)

Funkcja ta zwraca dwie listy id elementów przypisanych do zbioru uczącego (train) i testowego (test).

head(uczący_testowy)
## $train
##   [1]   1   2   3   4   5   6   7   9  10  11  13  14  16  17  18  19  20  22
##  [19]  23  24  25  29  30  31  32  33  34  37  40  41  42  45  46  48  52  54
##  [37]  55  56  58  59  62  63  65  67  68  69  71  75  76  77  78  80  81  82
##  [55]  83  85  86  87  89  90  91  92  94  95  96  97  98 100 101 103 106 107
##  [73] 108 111 112 113 114 115 116 117 118 120 121 122 123 125 126 129 130 131
##  [91] 133 135 137 138 141 142 143 144 145 146 149 150
## 
## $test
##  [1]   8  12  15  21  26  27  28  35  36  38  39  43  44  47  49  50  51  53  57
## [20]  60  61  64  66  70  72  73  74  79  84  88  93  99 102 104 105 109 110 119
## [39] 124 127 128 132 134 136 139 140 147 148

Domyślnie zbiór uczący stanowić będzie 67% obserwacji z oryginalnego zbioru danych, a zbiór testowy 33%.

By to zmienić można użyć argumentu ratio określającego procent obserwacji który zostanie wylosowany do zbioru uczącego.

Poniższa komenda podzieli obserwacje tak by 50% znalazło się w zbiorze uczącym.

partition(zadanie,ratio = 0.5)
## $train
##  [1]   2   3   4   7   8   9  10  16  19  21  22  25  26  28  29  32  34  35  36
## [20]  37  41  42  43  44  48  51  53  54  56  59  63  68  71  72  73  74  77  78
## [39]  80  82  83  86  87  88  89  91  92  93  94  97 101 102 103 106 110 111 112
## [58] 117 118 120 122 123 127 128 130 132 133 134 137 138 139 142 144 145 146
## 
## $test
##  [1]   1   5   6  11  12  13  14  15  17  18  20  23  24  27  30  31  33  38  39
## [20]  40  45  46  47  49  50  52  55  57  58  60  61  62  64  65  66  67  69  70
## [39]  75  76  79  81  84  85  90  95  96  98  99 100 104 105 107 108 109 113 114
## [58] 115 116 119 121 124 125 126 129 131 135 136 140 141 143 147 148 149 150

By skorzystać z podziału wykonanego za pomocą funkcji partition należy wykorzystać argument row_ids.

Na etapie tworzenia modelu wykorzystany zostanie tylko zbiór uczący.

knn$train(zadanie,row_ids = uczący_testowy$train)

Przewidywanie gatunków dla zbioru testowego.

gatunki_przewidywane_test <- knn$predict(zadanie,row_ids = uczący_testowy$test)

gatunki_przewidywane_test
## <PredictionClassif> for 48 observations:
##     row_ids     truth  response
##           8    setosa    setosa
##          12    setosa    setosa
##          15    setosa    setosa
## ---                            
##         140 virginica virginica
##         147 virginica virginica
##         148 virginica virginica

❕ Parametry modelu

By sprawdzić jakie wartości parametrów zostały ustawione przez $train() wykorzystać można param_set.

knn$param_set
## <ParamSet>
##             id    class lower upper nlevels default value
## 1:           k ParamInt     1   Inf     Inf       7     7
## 2:    distance ParamDbl     0   Inf     Inf       2      
## 3:      kernel ParamFct    NA    NA      10 optimal      
## 4:       scale ParamLgl    NA    NA       2    TRUE      
## 5:     ykernel ParamUty    NA    NA     Inf              
## 6: store_model ParamLgl    NA    NA       2   FALSE

Możliwa jest samodzielna modyfikacja parametrów.

Odwołać się do nich można za pomocą nazwy z kolumny id.

Na przykład dla algorytmu najbliższych sąsiadów liczba sąsiadów branych pod uwagę może być zmodyfikowana przy użyciu argumentu k.

knn_k5 <- lrn("classif.kknn",k=5)

knn_k5$train(zadanie,row_ids = uczący_testowy$train)

Wywołując param_set można zaobserwować, że dla nowego modelu k jest równe nie 7 a 5.

knn_k5$param_set
## <ParamSet>
##             id    class lower upper nlevels default value
## 1:           k ParamInt     1   Inf     Inf       7     5
## 2:    distance ParamDbl     0   Inf     Inf       2      
## 3:      kernel ParamFct    NA    NA      10 optimal      
## 4:       scale ParamLgl    NA    NA       2    TRUE      
## 5:     ykernel ParamUty    NA    NA     Inf              
## 6: store_model ParamLgl    NA    NA       2   FALSE

❕ Ocena modeli

Istnieje wiele miar pozwalających na ocenę i porównywanie modeli.

W ramach pakietu mlr3 dostępne są następujące miary .

mlr_measures
## <DictionaryMeasure> with 62 stored values
## Keys: aic, bic, classif.acc, classif.auc, classif.bacc, classif.bbrier,
##   classif.ce, classif.costs, classif.dor, classif.fbeta, classif.fdr,
##   classif.fn, classif.fnr, classif.fomr, classif.fp, classif.fpr,
##   classif.logloss, classif.mauc_au1p, classif.mauc_au1u,
##   classif.mauc_aunp, classif.mauc_aunu, classif.mbrier, classif.mcc,
##   classif.npv, classif.ppv, classif.prauc, classif.precision,
##   classif.recall, classif.sensitivity, classif.specificity, classif.tn,
##   classif.tnr, classif.tp, classif.tpr, debug, oob_error, regr.bias,
##   regr.ktau, regr.mae, regr.mape, regr.maxae, regr.medae, regr.medse,
##   regr.mse, regr.msle, regr.pbias, regr.rae, regr.rmse, regr.rmsle,
##   regr.rrse, regr.rse, regr.rsq, regr.sae, regr.smape, regr.srho,
##   regr.sse, selected_features, sim.jaccard, sim.phi, time_both,
##   time_predict, time_train

Bardziej rozbudowane informacje można uzyskać następująco.

as.data.table(msr())
##                     key                                               label
##  1:                 aic                        Akaika Information Criterion
##  2:                 bic                      Bayesian Information Criterion
##  3:         classif.acc                             Classification Accuracy
##  4:         classif.auc                            Area Under the ROC Curve
##  5:        classif.bacc                                   Balanced Accuracy
##  6:      classif.bbrier                                  Binary Brier Score
##  7:          classif.ce                                Classification Error
##  8:       classif.costs                       Cost-sensitive Classification
##  9:         classif.dor                               Diagnostic Odds Ratio
## 10:       classif.fbeta                                        F-beta score
## 11:         classif.fdr                                False Discovery Rate
## 12:          classif.fn                                     False Negatives
## 13:         classif.fnr                                 False Negative Rate
## 14:        classif.fomr                                 False Omission Rate
## 15:          classif.fp                                     False Positives
## 16:         classif.fpr                                 False Positive Rate
## 17:     classif.logloss                                            Log Loss
## 18:   classif.mauc_au1p             Weighted average 1 vs. 1 multiclass AUC
## 19:   classif.mauc_au1u                      Average 1 vs. 1 multiclass AUC
## 20:   classif.mauc_aunp          Weighted average 1 vs. rest multiclass AUC
## 21:   classif.mauc_aunu                   Average 1 vs. rest multiclass AUC
## 22:      classif.mbrier                              Multiclass Brier Score
## 23:         classif.mcc                    Matthews Correlation Coefficient
## 24:         classif.npv                           Negative Predictive Value
## 25:         classif.ppv                           Positive Predictive Value
## 26:       classif.prauc                              Precision-Recall Curve
## 27:   classif.precision                                           Precision
## 28:      classif.recall                                              Recall
## 29: classif.sensitivity                                         Sensitivity
## 30: classif.specificity                                         Specificity
## 31:          classif.tn                                      True Negatives
## 32:         classif.tnr                                  True Negative Rate
## 33:          classif.tp                                      True Positives
## 34:         classif.tpr                                  True Positive Rate
## 35:               debug                        Debug Classification Measure
## 36:           oob_error                                    Out-of-bag Error
## 37:           regr.bias                                                Bias
## 38:           regr.ktau                                       Kendall's tau
## 39:            regr.mae                                 Mean Absolute Error
## 40:           regr.mape                         Mean Absolute Percent Error
## 41:          regr.maxae                                  Max Absolute Error
## 42:          regr.medae                               Median Absolute Error
## 43:          regr.medse                                Median Squared Error
## 44:            regr.mse                                  Mean Squared Error
## 45:           regr.msle                              Mean Squared Log Error
## 46:          regr.pbias                                        Percent Bias
## 47:            regr.rae                             Relative Absolute Error
## 48:           regr.rmse                             Root Mean Squared Error
## 49:          regr.rmsle                         Root Mean Squared Log Error
## 50:           regr.rrse                         Root Relative Squared Error
## 51:            regr.rse                              Relative Squared Error
## 52:            regr.rsq                                           R Squared
## 53:            regr.sae                              Sum of Absolute Errors
## 54:          regr.smape               Symmetric Mean Absolute Percent Error
## 55:           regr.srho                                      Spearman's rho
## 56:            regr.sse                               Sum of Squared Errors
## 57:   selected_features Absolute or Relative Frequency of Selected Features
## 58:         sim.jaccard                            Jaccard Similarity Index
## 59:             sim.phi                          Phi Coefficient Similarity
## 60:           time_both                                        Elapsed Time
## 61:        time_predict                                        Elapsed Time
## 62:          time_train                                        Elapsed Time
##                     key                                               label
##     task_type          packages predict_type task_properties
##  1:      <NA>              mlr3     response                
##  2:      <NA>              mlr3     response                
##  3:   classif mlr3,mlr3measures     response                
##  4:   classif mlr3,mlr3measures         prob        twoclass
##  5:   classif mlr3,mlr3measures     response                
##  6:   classif mlr3,mlr3measures         prob        twoclass
##  7:   classif mlr3,mlr3measures     response                
##  8:   classif              mlr3     response                
##  9:   classif mlr3,mlr3measures     response        twoclass
## 10:   classif mlr3,mlr3measures     response        twoclass
## 11:   classif mlr3,mlr3measures     response        twoclass
## 12:   classif mlr3,mlr3measures     response        twoclass
## 13:   classif mlr3,mlr3measures     response        twoclass
## 14:   classif mlr3,mlr3measures     response        twoclass
## 15:   classif mlr3,mlr3measures     response        twoclass
## 16:   classif mlr3,mlr3measures     response        twoclass
## 17:   classif mlr3,mlr3measures         prob                
## 18:   classif mlr3,mlr3measures         prob                
## 19:   classif mlr3,mlr3measures         prob                
## 20:   classif mlr3,mlr3measures         prob                
## 21:   classif mlr3,mlr3measures         prob                
## 22:   classif mlr3,mlr3measures         prob                
## 23:   classif mlr3,mlr3measures     response        twoclass
## 24:   classif mlr3,mlr3measures     response        twoclass
## 25:   classif mlr3,mlr3measures     response        twoclass
## 26:   classif mlr3,mlr3measures         prob        twoclass
## 27:   classif mlr3,mlr3measures     response        twoclass
## 28:   classif mlr3,mlr3measures     response        twoclass
## 29:   classif mlr3,mlr3measures     response        twoclass
## 30:   classif mlr3,mlr3measures     response        twoclass
## 31:   classif mlr3,mlr3measures     response        twoclass
## 32:   classif mlr3,mlr3measures     response        twoclass
## 33:   classif mlr3,mlr3measures     response        twoclass
## 34:   classif mlr3,mlr3measures     response        twoclass
## 35:      <NA>              mlr3     response                
## 36:      <NA>              mlr3     response                
## 37:      regr mlr3,mlr3measures     response                
## 38:      regr mlr3,mlr3measures     response                
## 39:      regr mlr3,mlr3measures     response                
## 40:      regr mlr3,mlr3measures     response                
## 41:      regr mlr3,mlr3measures     response                
## 42:      regr mlr3,mlr3measures     response                
## 43:      regr mlr3,mlr3measures     response                
## 44:      regr mlr3,mlr3measures     response                
## 45:      regr mlr3,mlr3measures     response                
## 46:      regr mlr3,mlr3measures     response                
## 47:      regr mlr3,mlr3measures     response                
## 48:      regr mlr3,mlr3measures     response                
## 49:      regr mlr3,mlr3measures     response                
## 50:      regr mlr3,mlr3measures     response                
## 51:      regr mlr3,mlr3measures     response                
## 52:      regr mlr3,mlr3measures     response                
## 53:      regr mlr3,mlr3measures     response                
## 54:      regr mlr3,mlr3measures     response                
## 55:      regr mlr3,mlr3measures     response                
## 56:      regr mlr3,mlr3measures     response                
## 57:      <NA>              mlr3     response                
## 58:      <NA> mlr3,mlr3measures     response                
## 59:      <NA> mlr3,mlr3measures     response                
## 60:      <NA>              mlr3         <NA>                
## 61:      <NA>              mlr3         <NA>                
## 62:      <NA>              mlr3         <NA>                
##     task_type          packages predict_type task_properties

Podobnie jak w przypadku wybrania używanego algorytmu należy utworzyć obiekt określający, która miara zostanie wykorzystana.

Na przykład w celu obliczenia trafności (ang. accuracy) obiekt należy zdefiniować następująco.

trafność <- msr("classif.acc")

By obliczyć trafność danego modelu na danym zbiorze danych najpierw należy otrzymać przewidywane wartości za pomocą $predict().

gatunki_przewidywane_test_knn_k5 <- knn_k5$predict(zadanie,row_ids = uczący_testowy$test)

gatunki_przewidywane_test_knn_k5
## <PredictionClassif> for 48 observations:
##     row_ids     truth  response
##           8    setosa    setosa
##          12    setosa    setosa
##          15    setosa    setosa
## ---                            
##         140 virginica virginica
##         147 virginica virginica
##         148 virginica virginica

Po zapisaniu wyniku $predict() można dla tego obiektu obliczyć trafność wykorzystując $score().

Wynik oznacza odsetek poprawnie sklasyfikowanych obserwacji ze zbioru testowego przy pomoc algorytmu k najbliższych sąsiadów z k=5.

gatunki_przewidywane_test_knn_k5$score(trafność)
## classif.acc 
##   0.9166667

❕ Regresja

Algorytmy te pozwalają przewidzieć wartość zmiennej ilościowej.

Tak jak w przypadku klasyfikacji należy utworzyć zadanie.

Dla regresji zamiast funkcji as_task_classif należy wykorzystać as_task_regr.

W tym przykładzie przewidywana będzie szerokość płatka.

zadanie_regresja <- as_task_regr(iris,target = "Petal.Width")

Wybór algorytmu następuje również w ten sam sposób jak w przypadku klasyfikacji.

Dla zadania regresji dostępne są jednak inne algorytmy.

mlr_learners
## <DictionaryLearner> with 27 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
##   classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
##   classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
##   classif.ranger, classif.rpart, classif.svm, classif.xgboost,
##   regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
##   regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
##   regr.xgboost

W omawianym przykładzie zostanie wykorzystany las losowy.

las_losowy <- lrn("regr.ranger")

❕ Model

las_losowy$train(zadanie_regresja,row_ids = uczący_testowy$train)

Wartości przewidywane dla zbioru testowego.

regresja_przewidywane <- las_losowy$predict(zadanie_regresja,row_ids = uczący_testowy$test)

Wiele z miar wykorzystywanych do oceny modeli uczenia maszynowego majacych na celu regresję są analogiczne do tych wykorzystywanych w ekonometrii Przykładem może być MAPE czy MAE.

as.data.table(msr())
##                     key                                               label
##  1:                 aic                        Akaika Information Criterion
##  2:                 bic                      Bayesian Information Criterion
##  3:         classif.acc                             Classification Accuracy
##  4:         classif.auc                            Area Under the ROC Curve
##  5:        classif.bacc                                   Balanced Accuracy
##  6:      classif.bbrier                                  Binary Brier Score
##  7:          classif.ce                                Classification Error
##  8:       classif.costs                       Cost-sensitive Classification
##  9:         classif.dor                               Diagnostic Odds Ratio
## 10:       classif.fbeta                                        F-beta score
## 11:         classif.fdr                                False Discovery Rate
## 12:          classif.fn                                     False Negatives
## 13:         classif.fnr                                 False Negative Rate
## 14:        classif.fomr                                 False Omission Rate
## 15:          classif.fp                                     False Positives
## 16:         classif.fpr                                 False Positive Rate
## 17:     classif.logloss                                            Log Loss
## 18:   classif.mauc_au1p             Weighted average 1 vs. 1 multiclass AUC
## 19:   classif.mauc_au1u                      Average 1 vs. 1 multiclass AUC
## 20:   classif.mauc_aunp          Weighted average 1 vs. rest multiclass AUC
## 21:   classif.mauc_aunu                   Average 1 vs. rest multiclass AUC
## 22:      classif.mbrier                              Multiclass Brier Score
## 23:         classif.mcc                    Matthews Correlation Coefficient
## 24:         classif.npv                           Negative Predictive Value
## 25:         classif.ppv                           Positive Predictive Value
## 26:       classif.prauc                              Precision-Recall Curve
## 27:   classif.precision                                           Precision
## 28:      classif.recall                                              Recall
## 29: classif.sensitivity                                         Sensitivity
## 30: classif.specificity                                         Specificity
## 31:          classif.tn                                      True Negatives
## 32:         classif.tnr                                  True Negative Rate
## 33:          classif.tp                                      True Positives
## 34:         classif.tpr                                  True Positive Rate
## 35:               debug                        Debug Classification Measure
## 36:           oob_error                                    Out-of-bag Error
## 37:           regr.bias                                                Bias
## 38:           regr.ktau                                       Kendall's tau
## 39:            regr.mae                                 Mean Absolute Error
## 40:           regr.mape                         Mean Absolute Percent Error
## 41:          regr.maxae                                  Max Absolute Error
## 42:          regr.medae                               Median Absolute Error
## 43:          regr.medse                                Median Squared Error
## 44:            regr.mse                                  Mean Squared Error
## 45:           regr.msle                              Mean Squared Log Error
## 46:          regr.pbias                                        Percent Bias
## 47:            regr.rae                             Relative Absolute Error
## 48:           regr.rmse                             Root Mean Squared Error
## 49:          regr.rmsle                         Root Mean Squared Log Error
## 50:           regr.rrse                         Root Relative Squared Error
## 51:            regr.rse                              Relative Squared Error
## 52:            regr.rsq                                           R Squared
## 53:            regr.sae                              Sum of Absolute Errors
## 54:          regr.smape               Symmetric Mean Absolute Percent Error
## 55:           regr.srho                                      Spearman's rho
## 56:            regr.sse                               Sum of Squared Errors
## 57:   selected_features Absolute or Relative Frequency of Selected Features
## 58:         sim.jaccard                            Jaccard Similarity Index
## 59:             sim.phi                          Phi Coefficient Similarity
## 60:           time_both                                        Elapsed Time
## 61:        time_predict                                        Elapsed Time
## 62:          time_train                                        Elapsed Time
##                     key                                               label
##     task_type          packages predict_type task_properties
##  1:      <NA>              mlr3     response                
##  2:      <NA>              mlr3     response                
##  3:   classif mlr3,mlr3measures     response                
##  4:   classif mlr3,mlr3measures         prob        twoclass
##  5:   classif mlr3,mlr3measures     response                
##  6:   classif mlr3,mlr3measures         prob        twoclass
##  7:   classif mlr3,mlr3measures     response                
##  8:   classif              mlr3     response                
##  9:   classif mlr3,mlr3measures     response        twoclass
## 10:   classif mlr3,mlr3measures     response        twoclass
## 11:   classif mlr3,mlr3measures     response        twoclass
## 12:   classif mlr3,mlr3measures     response        twoclass
## 13:   classif mlr3,mlr3measures     response        twoclass
## 14:   classif mlr3,mlr3measures     response        twoclass
## 15:   classif mlr3,mlr3measures     response        twoclass
## 16:   classif mlr3,mlr3measures     response        twoclass
## 17:   classif mlr3,mlr3measures         prob                
## 18:   classif mlr3,mlr3measures         prob                
## 19:   classif mlr3,mlr3measures         prob                
## 20:   classif mlr3,mlr3measures         prob                
## 21:   classif mlr3,mlr3measures         prob                
## 22:   classif mlr3,mlr3measures         prob                
## 23:   classif mlr3,mlr3measures     response        twoclass
## 24:   classif mlr3,mlr3measures     response        twoclass
## 25:   classif mlr3,mlr3measures     response        twoclass
## 26:   classif mlr3,mlr3measures         prob        twoclass
## 27:   classif mlr3,mlr3measures     response        twoclass
## 28:   classif mlr3,mlr3measures     response        twoclass
## 29:   classif mlr3,mlr3measures     response        twoclass
## 30:   classif mlr3,mlr3measures     response        twoclass
## 31:   classif mlr3,mlr3measures     response        twoclass
## 32:   classif mlr3,mlr3measures     response        twoclass
## 33:   classif mlr3,mlr3measures     response        twoclass
## 34:   classif mlr3,mlr3measures     response        twoclass
## 35:      <NA>              mlr3     response                
## 36:      <NA>              mlr3     response                
## 37:      regr mlr3,mlr3measures     response                
## 38:      regr mlr3,mlr3measures     response                
## 39:      regr mlr3,mlr3measures     response                
## 40:      regr mlr3,mlr3measures     response                
## 41:      regr mlr3,mlr3measures     response                
## 42:      regr mlr3,mlr3measures     response                
## 43:      regr mlr3,mlr3measures     response                
## 44:      regr mlr3,mlr3measures     response                
## 45:      regr mlr3,mlr3measures     response                
## 46:      regr mlr3,mlr3measures     response                
## 47:      regr mlr3,mlr3measures     response                
## 48:      regr mlr3,mlr3measures     response                
## 49:      regr mlr3,mlr3measures     response                
## 50:      regr mlr3,mlr3measures     response                
## 51:      regr mlr3,mlr3measures     response                
## 52:      regr mlr3,mlr3measures     response                
## 53:      regr mlr3,mlr3measures     response                
## 54:      regr mlr3,mlr3measures     response                
## 55:      regr mlr3,mlr3measures     response                
## 56:      regr mlr3,mlr3measures     response                
## 57:      <NA>              mlr3     response                
## 58:      <NA> mlr3,mlr3measures     response                
## 59:      <NA> mlr3,mlr3measures     response                
## 60:      <NA>              mlr3         <NA>                
## 61:      <NA>              mlr3         <NA>                
## 62:      <NA>              mlr3         <NA>                
##     task_type          packages predict_type task_properties
MAPE <- msr("regr.mape")

Wartość MAPE uzyskana przez model.

regresja_przewidywane$score(MAPE)
## regr.mape 
## 0.1721744