英文:
Define parameter1 as 1 - parameter2 using R paradox package
问题
我想要使用paradox包将parameter1定义为1 - parameter2。这意味着parameter1依赖于parameter2(我认为depends参数在这里不起作用)。
这是我的研究空间:
search_space = ps(
# 数据预处理
interaction_branch.selection = p_fct(levels = c("nop_filter", "modelmatrix")),
winsorizesimple.probs_high = p_fct(levels = c("0.99", "0.98", "0.97")),
winsorizesimple.probs_low = p_dbl(lower = 0, upper = 1),
# ranger
ranger.ranger.max.depth = p_fct(levels = c(2L, 10L)),
ranger.ranger.splitrule = p_fct(levels = c("gini", "extratrees")),
ranger.ranger.mtry.ratio = p_dbl(0.5, 1),
# kknn
kknn.kknn.k = p_int(1, 10),
# 额外的转换
.extra_trafo = function(x, param_set) {
winsorizesimple.probs_high = switch(
x$winsorizesimple.probs_high,
"0.99" = 0.99,
"0.98" = 0.98,
"0.97" = 0.97
)
x$winsorizesimple.probs_low = 1 - winsorizesimple.probs_high
x
}
)
输出如下:
interaction_branch.selection winsorizesimple.probs_high winsorizesimple.probs_low ranger.ranger.max.depth ranger.ranger.splitrule ranger.ranger.mtry.ratio kknn.kknn.k
1: nop_filter 0.99 0.01 2 gini 0.5000000 1
2: nop_filter 0.99 0.01 2 gini 0.5000000 4
3: nop_filter 0.99 0.01 2 gini 0.5000000 7
4: nop_filter 0.99 0.01 2 gini 0.5000000 10
5: nop_filter 0.99 0.01 2 gini 0.6666667 1
---
1532: modelmatrix 0.97 0.03 10 extratrees 0.8333333 10
1533: modelmatrix 0.97 0.03 10 extratrees 1.0000000 1
1534: modelmatrix 0.97 0.03 10 extratrees 1.0000000 4
1535: modelmatrix 0.97 0.03 10 extratrees 1.0000000 7
1536: modelmatrix 0.97 0.03 10 extratrees 1.0000000 10
我理解你的需求是将winsorizesimple.probs_low从-1更改为0.01,因此这是更正后的输出。希望这对你有帮助,不需要重新生成示例。
英文:
I want to define parameter1 as 1 - parameter2 using paradox package.
That is parameter 1 depends on parameter 2 (depends argument doesn't help here I suppose).
Here is my reserach space:
search_space = ps(
# preprocessing
interaction_branch.selection = p_fct(levels = c("nop_filter", "modelmatrix")),
winsorizesimple.probs_high = p_fct(levels = c("0.99", "0.98", "0.97")),
winsorizesimple.probs_low = p_dbl(lower = 0, upper = 1),
# ranger
ranger.ranger.max.depth = p_fct(levels = c(2L, 10L)),
ranger.ranger.splitrule = p_fct(levels = c("gini", "extratrees")),
ranger.ranger.mtry.ratio = p_dbl(0.5, 1),
# kknn
kknn.kknn.k = p_int(1, 10),
# extra transformations
.extra_trafo = function(x, param_set) {
winsorizesimple.probs_high = switch(
x$winsorizesimple.probs_high,
"0.99" = 0.99,
"0.98" = 0.98,
"0.97" = 0.97
)
x$winsorizesimple.probs_low = 1 - winsorizesimple.probs_high
x
}
)
The ooutput is:
interaction_branch.selection winsorizesimple.probs_high winsorizesimple.probs_low ranger.ranger.max.depth ranger.ranger.splitrule ranger.ranger.mtry.ratio
1: nop_filter 0.99 -1 2 gini 0.5000000
2: nop_filter 0.99 -1 2 gini 0.5000000
3: nop_filter 0.99 -1 2 gini 0.5000000
4: nop_filter 0.99 -1 2 gini 0.5000000
5: nop_filter 0.99 -1 2 gini 0.6666667
---
1532: modelmatrix 0.97 2 10 extratrees 0.8333333
1533: modelmatrix 0.97 2 10 extratrees 1.0000000
1534: modelmatrix 0.97 2 10 extratrees 1.0000000
1535: modelmatrix 0.97 2 10 extratrees 1.0000000
1536: modelmatrix 0.97 2 10 extratrees 1.0000000
kknn.kknn.k
1: 1
2: 4
3: 7
4: 10
5: 1
---
1532: 10
1533: 1
1534: 4
1535: 7
1536: 10
I winsorizesimple.probs_high1 is 0.97, winsorizesimple.probs_low should be 0.03.
Hope you can help without reprex.
答案1
得分: 3
生成设计时出现了问题,因为对我来说,您的代码可以正常工作。
library(paradox)
library(data.table)
search_space = ps(
# preprocessing
interaction_branch.selection = p_fct(levels = c("nop_filter", "modelmatrix")),
winsorizesimple.probs_high = p_fct(levels = c("0.99", "0.98", "0.97")),
winsorizesimple.probs_low = p_dbl(lower = 0, upper = 1),
# ranger
ranger.ranger.max.depth = p_fct(levels = c(2L, 10L)),
ranger.ranger.splitrule = p_fct(levels = c("gini", "extratrees")),
ranger.ranger.mtry.ratio = p_dbl(0.5, 1),
# kknn
kknn.kknn.k = p_int(1, 10),
# extra transformations
.extra_trafo = function(x, param_set) {
winsorizesimple.probs_high = switch(
x$winsorizesimple.probs_high,
"0.99" = 0.99,
"0.98" = 0.98,
"0.97" = 0.97
)
x$winsorizesimple.probs_low = 1 - winsorizesimple.probs_high
x
}
)
design = rbindlist(generate_design_grid(search_space, 3)$transpose(), fill = TRUE)
design
#> interaction_branch.selection winsorizesimple.probs_high
#> 1: nop_filter 0.99
#> 2: nop_filter 0.99
#> 3: nop_filter 0.99
#> 4: nop_filter 0.99
#> 5: nop_filter 0.99
#> ---
#> 644: modelmatrix 0.97
#> 645: modelmatrix 0.97
#> 646: modelmatrix 0.97
#> 647: modelmatrix 0.97
#> 648: modelmatrix 0.97
#> winsorizesimple.probs_low ranger.ranger.max.depth ranger.ranger.splitrule
#> 1: 0.01 2 gini
#> 2: 0.01 2 gini
#> 3: 0.01 2 gini
#> 4: 0.01 2 gini
#> 5: 0.01 2 gini
#> ---
#> 644: 0.03 10 extratrees
#> 645: 0.03 10 extratrees
#> 646: 0.03 10 extratrees
#> 647: 0.03 10 extratrees
#> 648: 0.03 10 extratrees
#> ranger.ranger.mtry.ratio kknn.kknn.k
#> 1: 0.50 1
#> 2: 0.50 5
#> 3: 0.50 10
#> 4: 0.75 1
#> 5: 0.75 5
#> ---
#> 644: 0.75 5
#> 645: 0.75 10
#> 646: 1.00 1
#> 647: 1.00 5
#> 648: 1.00 10
2023年2月23日创建,使用reprex v2.0.2
英文:
Something went wrong when generating the design, because for me your code works.
library(paradox)
library(data.table)
search_space = ps(
# preprocessing
interaction_branch.selection = p_fct(levels = c("nop_filter", "modelmatrix")),
winsorizesimple.probs_high = p_fct(levels = c("0.99", "0.98", "0.97")),
winsorizesimple.probs_low = p_dbl(lower = 0, upper = 1),
# ranger
ranger.ranger.max.depth = p_fct(levels = c(2L, 10L)),
ranger.ranger.splitrule = p_fct(levels = c("gini", "extratrees")),
ranger.ranger.mtry.ratio = p_dbl(0.5, 1),
# kknn
kknn.kknn.k = p_int(1, 10),
# extra transformations
.extra_trafo = function(x, param_set) {
winsorizesimple.probs_high = switch(
x$winsorizesimple.probs_high,
"0.99" = 0.99,
"0.98" = 0.98,
"0.97" = 0.97
)
x$winsorizesimple.probs_low = 1 - winsorizesimple.probs_high
x
}
)
design = rbindlist(generate_design_grid(search_space, 3)$transpose(), fill = TRUE)
design
#> interaction_branch.selection winsorizesimple.probs_high
#> 1: nop_filter 0.99
#> 2: nop_filter 0.99
#> 3: nop_filter 0.99
#> 4: nop_filter 0.99
#> 5: nop_filter 0.99
#> ---
#> 644: modelmatrix 0.97
#> 645: modelmatrix 0.97
#> 646: modelmatrix 0.97
#> 647: modelmatrix 0.97
#> 648: modelmatrix 0.97
#> winsorizesimple.probs_low ranger.ranger.max.depth ranger.ranger.splitrule
#> 1: 0.01 2 gini
#> 2: 0.01 2 gini
#> 3: 0.01 2 gini
#> 4: 0.01 2 gini
#> 5: 0.01 2 gini
#> ---
#> 644: 0.03 10 extratrees
#> 645: 0.03 10 extratrees
#> 646: 0.03 10 extratrees
#> 647: 0.03 10 extratrees
#> 648: 0.03 10 extratrees
#> ranger.ranger.mtry.ratio kknn.kknn.k
#> 1: 0.50 1
#> 2: 0.50 5
#> 3: 0.50 10
#> 4: 0.75 1
#> 5: 0.75 5
#> ---
#> 644: 0.75 5
#> 645: 0.75 10
#> 646: 1.00 1
#> 647: 1.00 5
#> 648: 1.00 10
<sup>Created on 2023-02-23 with reprex v2.0.2</sup>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论