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.