#r #pca #r6 #mlr3 #autoplot
Вопрос:
Я хочу визуализировать результат классификатора, как показано в этом блоге. Однако в этих примерах они используют только двумерные данные. Но я хотел бы визуализировать данные более высокого измерения. Одной из основных процедур было бы применить 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!
}
Комментарии:
1. Совет: Задавайте только один вопрос за раз. Если вы хотите выполнить PCA с помощью конвейера, посмотрите на линии mlr3pip в книге mlr3 и как работают «Обучающие программы».