Computes either LOCO or LOCI depending on whether feature of interest is designated to be left out (LOCO) or left in (LOCI)
Arguments
- learner
(mlr3::Learner) An untrained learner to use for prediction.
- task
(mlr3::Task) The task of interest.
- train_ids, test_ids
(
integer
) Row IDs for train- and test splits.- features
(
character
) Feature names of interest.- measure
(mlr3::Measure) The measure to use for scoring. May require observation-wise loss.
- direction
(
character(1)
) Either"leave-in"
or"leave-out"
.
Value
A data.table
with columns feature
and <measure$id>_post
.
Examples
library(mlr3)
learner = lrn("classif.rpart")
task = tsk("breast_cancer")
measure = msr("classif.ce")
split = partition(task)
train_ids = split$train
test_ids = split$test
# Computing scores for all features
features = task$feature_names
# LOCO
compute_loc(
learner,
task,
train_ids = split$train,
test_ids = split$test,
features,
measure,
direction = "leave-out"
)
#> feature scores_post
#> <char> <num>
#> 1: bare_nuclei 0.04444444
#> 2: bl_cromatin 0.04444444
#> 3: cell_shape 0.05333333
#> 4: cell_size 0.03555556
#> 5: cl_thickness 0.04444444
#> 6: epith_c_size 0.04444444
#> 7: marg_adhesion 0.04444444
#> 8: mitoses 0.04444444
#> 9: normal_nucleoli 0.04444444
# LOCI
compute_loc(
learner,
task,
train_ids = split$train,
test_ids = split$test,
features,
measure,
direction = "leave-in"
)
#> feature scores_post
#> <char> <num>
#> 1: bare_nuclei 0.08444444
#> 2: bl_cromatin 0.08444444
#> 3: cell_shape 0.06222222
#> 4: cell_size 0.05777778
#> 5: cl_thickness 0.11555556
#> 6: epith_c_size 0.08888889
#> 7: marg_adhesion 0.13333333
#> 8: mitoses 0.19111111
#> 9: normal_nucleoli 0.07555556