Skip to contents

Computes either LOCO or LOCI depending on whether feature of interest is designated to be left out (LOCO) or left in (LOCI)

Usage

compute_loc(learner, task, train_ids, test_ids, features, measure, direction)

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.

Note

These functions are used for internal computations and are likely not exported in the future.

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