Shrinks a paradox::ParamSet towards a point. Boundaries of numeric values are shrunk to an interval around the point of half of the previous length, while for discrete variables, a random (currently not chosen) level is dropped.
Note that for paradox::p_lgl()s the value to be shrunk around is set as
the default value instead of dropping a level. Also, a tag shrunk is
added.
Note that the returned paradox::ParamSet has lost all its original
defaults, as they may have become infeasible.
x is always expected to contain the values on the scale of param_set,
i.e. the untransformed values before a trafo is applied.
Arguments
- param_set
(paradox::ParamSet)
The paradox::ParamSet to be shrunk.- x
(data.table::data.table)
data.table::data.table with one row containing the point to shrink around.- check.feasible
(
logical(1))
Should feasibility of the parameters be checked? If feasibility is not checked, and invalid values are present, no shrinking will be done. Default isFALSE.
Examples
library(paradox)
library(data.table)
param_set = ps(
x1 = p_dbl(lower = 0, upper = 10),
x2 = p_int(lower = -10, upper = 10),
x3 = p_fct(levels = c("a", "b", "c")),
x4 = p_lgl()
)
x = data.table(x1 = 5, x2 = 0, x3 = "b", x4 = FALSE)
shrink_ps(param_set, x = x)
#> <ParamSet(4)>
#> id class lower upper nlevels default value
#> <char> <char> <num> <num> <num> <list> <list>
#> 1: x1 ParamDbl 2.5 7.5 Inf <NoDefault[0]> [NULL]
#> 2: x2 ParamInt -5.0 5.0 11 <NoDefault[0]> [NULL]
#> 3: x3 ParamFct NA NA 2 <NoDefault[0]> [NULL]
#> 4: x4 ParamLgl NA NA 2 FALSE [NULL]