14  Uczenie maszynowe z pakietem mlr3

Klaudia Lenart

14.1 📘 Pakiet mlr3

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

library(mlr3)

14.2 📘 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

14.2.1 ❕ 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.

14.2.2 ❕ 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

14.2.3 ❕ 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   7   8  10  12  13  14  15  17  18  19  20  21  24
 [19]  27  31  32  33  34  35  37  38  39  40  42  43  45  47  49  50  51  55
 [37]  56  57  59  61  62  63  64  65  66  67  68  70  72  73  74  75  76  77
 [55]  78  81  82  84  85  86  87  89  90  93  94  96  97 100 101 102 103 105
 [73] 106 107 108 110 111 113 114 119 120 121 122 124 126 127 128 130 131 132
 [91] 133 134 136 137 138 139 141 142 143 144 145 147

$test
 [1]   6   9  11  16  22  23  25  26  28  29  30  36  41  44  46  48  52  53  54
[20]  58  60  69  71  79  80  83  88  91  92  95  98  99 104 109 112 115 116 117
[39] 118 123 125 129 135 140 146 148 149 150

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]   1   4   5   7   8  14  15  17  21  22  23  24  25  28  29  30  35  36  37
[20]  38  39  40  41  44  48  51  53  55  57  60  62  64  65  71  72  73  74  75
[39]  80  82  84  86  89  91  93  94  95  97  98 100 101 102 103 109 114 119 120
[58] 121 123 124 125 127 129 130 132 135 136 138 139 141 146 147 148 149 150

$test
 [1]   2   3   6   9  10  11  12  13  16  18  19  20  26  27  31  32  33  34  42
[20]  43  45  46  47  49  50  52  54  56  58  59  61  63  66  67  68  69  70  76
[39]  77  78  79  81  83  85  87  88  90  92  96  99 104 105 106 107 108 110 111
[58] 112 113 115 116 117 118 122 126 128 131 133 134 137 140 142 143 144 145

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
          6    setosa    setosa
          9    setosa    setosa
         11    setosa    setosa
---                            
        148 virginica virginica
        149 virginica virginica
        150 virginica virginica

14.2.4 ❕ 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      

14.2.5 ❕ 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
          6    setosa    setosa
          9    setosa    setosa
         11    setosa    setosa
---                            
        148 virginica virginica
        149 virginica virginica
        150 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.9375 

14.2.6 ❕ 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")

14.2.7 ❕ 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.1405453