gpt4 book ai didi

r - 从基准实验中使用的重采样获取ResamplingIndices - mlr

转载 作者:行者123 更新时间:2023-11-30 09:30:34 29 4
gpt4 key购买 nike

我在基准实验中使用嵌套交叉验证。我想检索用于每个外循环的实例的索引。我知道有一个函数 getResamplingIndices() 适合此任务。但它不接受“BenchmarkResult”对象。有办法解决这个问题吗?这是一个例子:

res = benchmark(lrns, task, outer, measures = list(auc, ppv, npv), show.info = FALSE, models = T)

getResamplingIndices(res)

Error in getResamplingIndices(res) :
Assertion on 'object' failed: Must inherit from class 'ResampleResult', but has class 'BenchmarkResult'.

最佳答案

重采样索引在任务之间是相同的,因此您只需将其应用到嵌套在 BenchmarkResult 对象中的 ResamplingResult 对象中即可。

如果您希望 BenchmarkResult 对象中的每个任务都拥有它,请执行

inds_by_task = lapply(bmr$results, function(x) getResamplingIndices(x[[1]]))

请参阅下面的完整表示。

library(mlr)
#> Loading required package: ParamHelpers

lrns = list(makeLearner("classif.lda"), makeLearner("classif.rpart"))
tasks = list(iris.task, sonar.task)
rdesc = makeResampleDesc("CV", iters = 2L)
meas = list(acc, ber)
bmr = benchmark(lrns, tasks, rdesc, measures = meas, show.info = FALSE)

getResamplingIndices(bmr$results$`iris-example`$classif.lda)
#> $train.inds
#> $train.inds[[1]]
#> [1] 25 136 62 77 22 114 101 145 87 34 93 120 133 126 76 4 105 97 7
#> [20] 128 49 19 106 9 54 5 72 102 73 51 109 115 23 86 89 112 130 69
#> [39] 57 122 53 12 60 40 36 70 83 90 108 81 38 50 129 75 71 59 47
#> [58] 95 31 147 37 30 127 43 148 103 27 66 137 29 124 35 143 132 45
#>
#> $train.inds[[2]]
#> [1] 79 123 28 17 82 55 110 8 107 26 125 121 32 33 48 119 98 58 116
#> [20] 144 139 67 13 142 111 16 65 21 74 42 113 149 117 2 99 68 140 104
#> [39] 96 150 1 94 46 131 135 11 10 146 85 15 52 78 63 100 3 118 134
#> [58] 6 88 138 41 39 92 56 84 61 20 24 91 80 18 64 14 141 44
#>
#>
#> $test.inds
#> $test.inds[[1]]
#> [1] 1 2 3 6 8 10 11 13 14 15 16 17 18 20 21 24 26 28 32
#> [20] 33 39 41 42 44 46 48 52 55 56 58 61 63 64 65 67 68 74 78
#> [39] 79 80 82 84 85 88 91 92 94 96 98 99 100 104 107 110 111 113 116
#> [58] 117 118 119 121 123 125 131 134 135 138 139 140 141 142 144 146 149 150
#>
#> $test.inds[[2]]
#> [1] 4 5 7 9 12 19 22 23 25 27 29 30 31 34 35 36 37 38 40
#> [20] 43 45 47 49 50 51 53 54 57 59 60 62 66 69 70 71 72 73 75
#> [39] 76 77 81 83 86 87 89 90 93 95 97 101 102 103 105 106 108 109 112
#> [58] 114 115 120 122 124 126 127 128 129 130 132 133 136 137 143 145 147 148

reprex package于2020年1月4日创建(v0.3.0)

关于r - 从基准实验中使用的重采样获取ResamplingIndices - mlr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59583188/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com