mlr3 - Как изменить resample_results и сделать pca
Я хочу визуализировать результат классификатора, как показано в этом блоге . Однако в этих примерах используются только двумерные данные. Но я хотел бы визуализировать многомерные данные. Одна из основных процедур - применить PCA к пространству функций и построить только первые два компонента PCA.
Было бы здорово просто изменить класс rr resample_result R6. Но я не могу понять, как получить доступ к этим данным.
Любая помощь приветствуется. Заранее спасибо.
library("mlr3verse")
library("mlr3viz")
learners = list(
# k-nearest neighbours classifier
lrn("classif.kknn", id = "kkn", predict_type = "prob", k = 3),
# linear svm
lrn("classif.svm", id = "lin. svm", predict_type = "prob", kernel = "linear")
)
design = benchmark_grid(
tasks = tsk("iris"),
learners = learners,
resamplings = rsmp("holdout")
)
bmr = benchmark(design, store_models = TRUE)
perf = bmr$aggregate(msr("classif.acc"))[, c("task_id", "learner_id", "classif.acc")]
perf
n = bmr$n_resample_results
plots = vector("list", n)
for (i in seq_len(n)) {
rr = bmr$resample_result(i)
rr.pred <- as.data.table(as.data.table(rr)$prediction[[1]])
## doing pca ... with something like %>>% po("pca")
plots[[i]] = autoplot(rr, type = "prediction")
## Error: Plot learner prediction only works for tasks with two features for classification!
}