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! 
}

0 ответов

Другие вопросы по тегам