我在一个数据集上用4个图学习器构建了一个基准。基准测试结果的learner_id很长,因为我有一些预处理。我怎样才能设置学习者id,使其不会太长。这是我的代码:
# step 1 the task
all_plays <- readRDS("../000files/all_plays.rds")
pbp_task <- as_task_classif(all_plays, target="play_type")
split_task <- partition(pbp_task, ratio=0.75)
task_train <- pbp_task$clone()$filter(split_task$train)
task_test <- pbp_task$clone()$filter(split_task$test)
# step 2 the preprocess
pbp_prep <- po("select",
selector = selector_invert(
selector_name(c("half_seconds_remaining","yards_gained","game_id")))
) %>>%
po("colapply",
affect_columns = selector_name(c("posteam","defteam")),
applicator = as.factor) %>>%
po("filter",
filter = mlr3filters::flt("find_correlation"), filter.cutoff=0.3) %>>%
po("scale", scale = F) %>>%
po("removeconstants")
# step 3 learners
rf_glr <- as_learner(pbp_prep %>>% lrn("classif.ranger", predict_type="prob"))
log_glr <-as_learner(pbp_prep %>>% lrn("classif.log_reg", predict_type="prob"))
tree_glr <- as_learner(pbp_prep %>>% lrn("classif.rpart", predict_type="prob"))
kknn_glr <- as_learner(pbp_prep %>>% lrn("classif.kknn", predict_type="prob"))
# step 4 benckmark grid
set.seed(0520)
cv <- rsmp("cv",folds=10)
design <- benchmark_grid(
tasks = task_train,
learners = list(rf_glr,log_glr,tree_glr,kknn_glr),
resampling = cv
)
# step 5 benchmark
bmr <- benchmark(design,store_models = T)
bmr
# learner_id toooo long...
<BenchmarkResult> of 40 rows with 4 resampling runs
nr task_id learner_id resampling_id
1 all_plays select.colapply.find_correlation.scale.removeconstants.randomForest cv
2 all_plays select.colapply.find_correlation.scale.removeconstants.logistic cv
3 all_plays select.colapply.find_correlation.scale.removeconstants.decisionTree cv
4 all_plays select.colapply.find_correlation.scale.removeconstants.kknn cv
iters warnings errors
10 0 0
10 0 0
10 0 0
10 0 0
在这个结果中,learner_id
太长,对autoplot(bmr)
也不好。如何设置learner_id使其变短?非常感谢。
你可以做:
library(mlr3verse)
#> Loading required package: mlr3
learner = as_learner(po("pca") %>>% po("learner", lrn("regr.rpart")))
learner$id = "my_id"
print(learner)
#> <GraphLearner:my_id>
#> * Model: -
#> * Parameters: regr.rpart.xval=0
#> * Packages: mlr3, mlr3pipelines, rpart
#> * Predict Types: [response], se, distr
#> * Feature Types: logical, integer, numeric, character, factor, ordered,
#> POSIXct
#> * Properties: featureless, hotstart_backward, hotstart_forward,
#> importance, loglik, missings, oob_error, selected_features, weights
创建于2022-07-22由reprex包(v2.0.1(