A subclass of WrappedModel. It is created
if you set the respective option in configureMlr - when a model internally crashed during training. The model always predicts NAs.
The if mlr option on.error.dump
is TRUE
, the
FailureModel
contains the debug trace of the error.
It can be accessed with getFailureModelDump
and
inspected with debugger
.
Its encapsulated learner.model
is simply a string:
The error message that was generated when the model crashed.
The following code shows how to access the message.
See also
Other debug:
ResampleResult
,
getPredictionDump()
,
getRRDump()
Examples
configureMlr(on.learner.error = "warn")
data = iris
data$newfeat = 1 # will make LDA crash
task = makeClassifTask(data = data, target = "Species")
m = train("classif.lda", task) # LDA crashed, but mlr catches this
#> Warning: Could not train learner classif.lda: Error in lda.default(x, grouping, ...) :
#> variable 5 appears to be constant within groups
print(m)
#> Model for learner.id=classif.lda; learner.class=classif.lda
#> Trained on: task.id = data; obs = 150; features = 5
#> Hyperparameters:
#> Training failed: Error in lda.default(x, grouping, ...) :
#> variable 5 appears to be constant within groups
#>
#> Training failed: Error in lda.default(x, grouping, ...) :
#> variable 5 appears to be constant within groups
#>
print(m$learner.model) # the error message
#> [1] "Error in lda.default(x, grouping, ...) : \n variable 5 appears to be constant within groups\n"
p = predict(m, task) # this will predict NAs
print(p)
#> Prediction: 150 observations
#> predict.type: response
#> threshold:
#> time: NA
#> id truth response
#> 1 1 setosa <NA>
#> 2 2 setosa <NA>
#> 3 3 setosa <NA>
#> 4 4 setosa <NA>
#> 5 5 setosa <NA>
#> 6 6 setosa <NA>
#> ... (#rows: 150, #cols: 3)
print(performance(p))
#> mmce
#> NA
configureMlr(on.learner.error = "stop")