Domain | R Documentation |
A Domain
object is a representation of a single dimension of a ParamSet
. Domain
objects are used to construct
ParamSet
s, either through the ps()
short form, or through the ParamSet
$search_space()
mechanism (see
to_tune()
). Domain
corresponds to a Param
object, except it does not have an $id
, and it does have a
trafo
and dependencies (depends
) associated with it. For each of the basic Param
classes (ParamInt
,
ParamDbl
, ParamLgl
, ParamFct
, and ParamUty
) there is a function constructing a Domain
object
(p_int()
, p_dbl()
, p_lgl()
, p_fct()
, p_uty()
). They each have the same arguments as the corresponding
Param
$new()
function, except without the id
argument, and with the the additional parameters trafo
, and
depends
.
Domain
objects are representations of parameter ranges and are intermediate objects to be used in short form
constructions in to_tune()
and ps()
. Because of their nature, they should not be modified by the user.
The Domain
object's internals are subject to change and should not be relied upon.
p_int(
lower = -Inf,
upper = Inf,
special_vals = list(),
default = NO_DEF,
tags = character(),
depends = NULL,
trafo = NULL,
logscale = FALSE
)
p_dbl(
lower = -Inf,
upper = Inf,
special_vals = list(),
default = NO_DEF,
tags = character(),
tolerance = sqrt(.Machine$double.eps),
depends = NULL,
trafo = NULL,
logscale = FALSE
)
p_uty(
default = NO_DEF,
tags = character(),
custom_check = NULL,
depends = NULL,
trafo = NULL
)
p_lgl(
special_vals = list(),
default = NO_DEF,
tags = character(),
depends = NULL,
trafo = NULL
)
p_fct(
levels,
special_vals = list(),
default = NO_DEF,
tags = character(),
depends = NULL,
trafo = NULL
)
lower |
( |
upper |
( |
special_vals |
( |
default |
( |
tags |
(
|
depends |
( |
trafo |
( |
logscale |
( |
tolerance |
( |
custom_check |
( |
levels |
( |
The p_fct
function admits a levels
argument that goes beyond the levels
accepted by ParamFct
$new()
.
Instead of a character
vector, any atomic vector or list (optionally named) may be given. (If the value is a list
that is not named, the names are inferred using as.character()
on the values.) The resulting Domain
will
correspond to a range of values given by the names of the levels
argument with a trafo
that maps the character
names to the arbitrary values of the levels
argument.
A Domain
object.
Other ParamSet construction helpers:
ps()
,
to_tune()
params = ps(
unbounded_integer = p_int(),
bounded_double = p_dbl(0, 10),
half_bounded_integer = p_dbl(1),
half_bounded_double = p_dbl(upper = 1),
double_with_trafo = p_dbl(-1, 1, trafo = exp),
extra_double = p_dbl(0, 1, special_vals = list("xxx"), tags = "tagged"),
factor_param = p_fct(c("a", "b", "c")),
factor_param_with_implicit_trafo = p_fct(list(a = 1, b = 2, c = list()))
)
print(params)
params$trafo(list(
bounded_double = 1,
double_with_trafo = 1,
factor_param = "c",
factor_param_with_implicit_trafo = "c"
))
# logscale:
params = ps(x = p_dbl(1, 100, logscale = TRUE))
# The ParamSet has bounds log(1) .. log(100):
print(params)
# When generating a equidistant grid, it is equidistant within log values
grid = generate_design_grid(params, 3)
print(grid)
# But the values are on a log scale with desired bounds after trafo
print(grid$transpose())
# Integer parameters with logscale are `ParamDbl`s pre-trafo
params = ps(x = p_int(0, 10, logscale = TRUE))
print(params)
grid = generate_design_grid(params, 4)
print(grid)
# ... but get transformed to integers.
print(grid$transpose())
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.