| Type: | Package | 
| Title: | Creating Meta-Information for Parameters | 
| Version: | 1.0.2 | 
| URL: | https://github.com/dynverse/dynparam | 
| BugReports: | https://github.com/dynverse/dynparam/issues | 
| Description: | Provides tools for describing parameters of algorithms in an abstract way. Description can include an id, a description, a domain (range or list of values), and a default value. 'dynparam' can also convert parameter sets to a 'ParamHelpers' format, in order to be able to use 'dynparam' in conjunction with 'mlrMBO'. | 
| License: | MIT + file LICENSE | 
| LazyData: | TRUE | 
| RoxygenNote: | 7.1.1 | 
| Encoding: | UTF-8 | 
| Depends: | R (≥ 3.0.0) | 
| Imports: | assertthat, carrier, dplyr, dynutils (≥ 1.0.2), magrittr, purrr, stringr, tibble, tidyr | 
| Suggests: | lhs, ParamHelpers, testthat | 
| NeedsCompilation: | no | 
| Packaged: | 2021-01-04 15:54:11 UTC; rcannood | 
| Author: | Robrecht Cannoodt  | 
| Maintainer: | Robrecht Cannoodt <rcannood@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2021-01-04 23:30:02 UTC | 
Define a character / string parameter
Description
Define a character / string parameter
Usage
character_parameter(id, default, values, description = NULL, tuneable = TRUE)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
values | 
 A set of possible values.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
character_parameter(
  id = "method",
  default = "pearson",
  values = c("pearson", "spearman", "kendall"),
  description = "Which correlation coefficient to compute."
)
A helper function for collapsing a set
Description
Will surround the collapsed set with brackets if it has more than one element.
Usage
collapse_set(..., sep = ", ", prefix = "{", postfix = "}")
Arguments
... | 
 Characters to collapse  | 
sep | 
 Seperator between elements  | 
prefix | 
 A prefix  | 
postfix | 
 A postfix  | 
Defining, serialising and printing distributions
Description
Distributions are used to define the domain of an
integer_parameter() or a numeric_parameter().
Usage
distribution(lower, upper, ...)
distribution_function(dist)
quantile_function(dist)
## S3 method for class 'distribution'
as.list(x, ...)
as_distribution(li)
is_distribution(x)
Arguments
lower | 
 Lower limit of the distribution.  | 
upper | 
 Upper limit of the distribution.  | 
... | 
 Fields to be saved in the distribution.  | 
dist | 
 A distribution object.  | 
x | 
 An object which might be a distribution.  | 
li | 
 A list to be converted into a distribution.  | 
Details
See the sections below for more information each of the functions.
List of all currently implemented distributions
Serialisation
-  
as.list(dist): Converting a distribution to a list. -  
as_distribution(li): Converting a list back to a distribution. -  
is_distribution(x): Checking whether something is a distribution. 
Defining a distribution
In order to create a new distribution named xxx, you need to create three functions.
A
xxx()function that callsdistribution(...) %>% add_class("xxx")at the end.-  
quantile_function.xxx(): The quantile function for converting between a uniform distribution and thexxxdistribution. -  
distribution_function.xxx(): The distribution function for converting between a uniform distribution and thexxxdistribution. 
Check the implementations of normal_distribution(), quantile_function.normal_distribution()
and distribution_function.normal_distribution() for an example
on how to do define these functions. Alternatively, check the examples below.
See Also
dynparam for an overview of all dynparam functionality.
Examples
di <- uniform_distribution(lower = 1, upper = 10)
print(di)
li <- as.list(di)
di2 <- as_distribution(li)
print(di2)
# Defining a custom distribution, using the pbeta and qbeta functions
beta_distribution <- function(
  shape1,
  shape2,
  ncp,
  lower = -Inf,
  upper = Inf
) {
  di <- distribution(lower = lower, upper = upper, shape1, shape2, ncp)
  add_class(di, beta_distribution)
}
distribution_function.beta_distribution <- function(dist) {
  function(q) {
    stats::pbeta(q, shape1 = dist$shape1, shape2 = dist$shape2, ncp = dist$ncp)
  }
}
quantile_function.beta_distribution <- function(dist) {
  function(p) {
    stats::qbeta(p, shape1 = dist$shape1, shape2 = dist$shape2, ncp = dist$ncp)
  }
}
Creating meta-information for parameters
Description
Provides tools for describing parameters of algorithms in an abstract way. Description can include an id, a description, a domain (range or list of values), and a default value. 'dynparam' can also convert parameter sets to a 'ParamHelpers' format, in order to be able to use 'dynparam' in conjunction with 'mlrMBO'.
Parameter set
Create a new
parameter_set()by adding several parameters to it-  
as_paramhelper(): Convert it to a ParamHelpers object -  
sip(): Sample a parameter set 
Parameters
These functions help you provide a meta description of parameters.
Implemented are the following functions:
-  
character_parameter(),integer_parameter(),logical_parameter(),numeric_parameter(): Creating parameters with basic R data types. -  
integer_range_parameter(),numeric_range_parameter(): Create a discrete or continuous range parameter. -  
subset_parameter(): A parameter containing a subset of a set of values. 
See ?parameter for a list of helper functions converting parameters from and to other formats.
Distributions
These distributions allow to define prior distributions for numeric and integer parameters.
Implemented are the following distributions:
See ?distribution for a list of helper functions converting parameters from and to other formats.
Advanced topics
-  
distribution(): Creating a custom distribution 
Exponentially scaled uniform distribution.
Description
Distributions are used for defining the domain of an integer_parameter() or numeric_parameter().
Usage
expuniform_distribution(lower, upper)
Arguments
lower | 
 Lower limit of the distribution.  | 
upper | 
 Upper limit of the distribution.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
expuniform_distribution(1, 10000)
expuniform_distribution(1e-5, 1e-2)
Get a description of the parameter
Description
Get a description of the parameter
Usage
get_description(x, sep = ", ")
Arguments
x | 
 The parameter  | 
sep | 
 A separator between different fields  | 
Define a integer parameter
Description
Define a integer parameter
Usage
integer_parameter(
  id,
  default,
  distribution,
  description = NULL,
  tuneable = TRUE
)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
distribution | 
 A distribution from which the parameter can be sampled.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
integer_parameter(
  id = "k",
  default = 5,
  distribution = uniform_distribution(3, 10),
  description = "The number of clusters."
)
integer_parameter(
  id = "num_iter",
  default = 100,
  distribution = expuniform_distribution(10, 10000),
  description = "The number of iterations."
)
Define a integer range parameter
Description
Define a integer range parameter
Usage
integer_range_parameter(
  id,
  default,
  lower_distribution,
  upper_distribution,
  description = NULL,
  tuneable = TRUE
)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
lower_distribution | 
 A distribution from which the lower value of the range can be sampled.  | 
upper_distribution | 
 A distribution from which the upper value fo the range can be sampled.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
integer_range_parameter(
  id = "ks",
  default = c(3L, 15L),
  lower_distribution = uniform_distribution(1L, 5L),
  upper_distribution = uniform_distribution(10L, 20L),
  description = "The numbers of clusters to be evaluated."
)
Define a logical parameter
Description
Define a logical parameter
Usage
logical_parameter(id, default, description = NULL, tuneable = TRUE)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
logical_parameter(
  id = "scale",
  default = TRUE,
  description = "Whether or not to scale the input variables"
)
Normal distribution
Description
Distributions are used for defining the domain of an integer_parameter() or numeric_parameter().
Usage
normal_distribution(mean, sd, lower = -Inf, upper = Inf)
Arguments
mean | 
 Mean of the distribution  | 
sd | 
 Standard deviation of the distribution.  | 
lower | 
 An optional lower limit.  | 
upper | 
 An optional upper limit.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
normal_distribution(mean = 0, sd = 1)
normal_distribution(mean = 5, sd = 1, lower = 1, upper = 10)
Define a numeric parameter
Description
Define a numeric parameter
Usage
numeric_parameter(
  id,
  default,
  distribution,
  description = NULL,
  tuneable = TRUE
)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
distribution | 
 A distribution from which the parameter can be sampled.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
numeric_parameter(
  id = "alpha",
  default = 0.5,
  distribution = uniform_distribution(0.0, 1.0),
  description = "Weighting parameter for distance function."
)
numeric_parameter(
  id = "beta",
  default = 0.001,
  distribution = expuniform_distribution(1e-4, 1e-1),
  description = "Percentage decrease in age per iteration"
)
Define a numeric range parameter
Description
Define a numeric range parameter
Usage
numeric_range_parameter(
  id,
  default,
  lower_distribution,
  upper_distribution,
  description = NULL,
  tuneable = TRUE
)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
lower_distribution | 
 A distribution from which the lower value of the range can be sampled.  | 
upper_distribution | 
 A distribution from which the upper value fo the range can be sampled.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
numeric_range_parameter(
  id = "quantiles",
  default = c(0.1, 0.99),
  lower_distribution = uniform_distribution(0, 0.25),
  upper_distribution = uniform_distribution(0.9, 1),
  description = "The lower and upper quantile thresholds."
)
Defining, serialising and printing parameters
Description
Multiple parameters can be combined in a parameter set. The sections below contain information on how to create, serialise and process a parameter.
Usage
parameter(id, default, ..., description = NULL, tuneable = TRUE)
## S3 method for class 'parameter'
as.list(x, ...)
as_parameter(li)
is_parameter(x)
as_descriptive_tibble(x)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
... | 
 Extra fields to be saved in the parameter.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
x | 
 An object (parameter or distribution) to be converted.  | 
li | 
 A list to be converted into a parameter.  | 
Creating a parameter
-  
character_parameter(),integer_parameter(),logical_parameter(),numeric_parameter(): Creating parameters with basic R data types. -  
integer_range_parameter(),numeric_range_parameter(): Create a discrete or continuous range parameter. -  
subset_parameter(): A parameter containing a subset of a set of values. -  
parameter(): An abstract function to be used by other parameter functions. 
Serialisation
-  
as.list(param): Converting a parameter to a list. -  
as_parameter(li): Converting a list back to a parameter. -  
is_parameter(x): Checking whether something is a parameter. -  
as_descriptive_tibble(param): Convert to a tibble containing meta information. 
See Also
dynparam for an overview of all dynparam functionality.
Examples
int_param <- integer_parameter(
  id = "num_iter",
  default = 100L,
  distribution = expuniform_distribution(lower = 1L, upper = 10000L),
  description = "Number of iterations"
)
print(int_param)
li <- as.list(int_param)
print(as_parameter(li))
subset_param <- subset_parameter(
  id = "dimreds",
  default = c("pca", "mds"),
  values = c("pca", "mds", "tsne", "umap", "ica"),
  description = "Which dimensionality reduction methods to apply (can be multiple)"
)
int_range_param <- integer_range_parameter(
  id = "ks",
  default = c(3L, 15L),
  lower_distribution = uniform_distribution(1L, 5L),
  upper_distribution = uniform_distribution(10L, 20L),
  description = "The numbers of clusters to be evaluated"
)
parameter_set(
  int_param,
  subset_param,
  int_range_param
)
Parameter set helper functions
Description
Parameter set helper functions
Usage
parameter_set(..., parameters = NULL, forbidden = NULL)
is_parameter_set(x)
## S3 method for class 'parameter_set'
as.list(x, ...)
as_parameter_set(li)
get_defaults(x)
sip(x, n = 1, as_tibble = TRUE)
as_paramhelper(x)
Arguments
... | 
 Parameters to wrap in a parameter set.  | 
parameters | 
 A list of parameters to wrap in a parameter set.  | 
forbidden | 
 States forbidden region of parameter via a character vector, which will be turned into an expression.  | 
x | 
 An object for which to check whether it is a parameter set.  | 
li | 
 A list to be converted into a parameter set.  | 
n | 
 Number of objects to return.  | 
as_tibble | 
 Whether or not to return as a tibble.  | 
Parameter set instatiations
-  
get_defaults(): Get all default parameters. -  
sip(): It's likesample(), but for parameter sets. -  
as_paramhelper(): Convert a parameter set to a ParamHelpers object. 
Serialisation
-  
as.list(): Converting a parameter set to a list. -  
as_parameter_set(): Converting a list back to a parameter set. -  
is_parameter_set(x): Checking whether something is a parameter set. 
See Also
dynparam for an overview of all dynparam functionality.
Examples
parameters <- parameter_set(
  integer_parameter(
    id = "num_iter",
    default = 100L,
    distribution = expuniform_distribution(lower = 1L, upper = 10000L),
    description = "Number of iterations"
  ),
  subset_parameter(
    id = "dimreds",
    default = c("pca", "mds"),
    values = c("pca", "mds", "tsne", "umap", "ica"),
    description = "Which dimensionality reduction methods to apply (can be multiple)"
  ),
  integer_range_parameter(
    id = "ks",
    default = c(3L, 15L),
    lower_distribution = uniform_distribution(1L, 5L),
    upper_distribution = uniform_distribution(10L, 20L),
    description = "The numbers of clusters to be evaluated"
  )
)
get_defaults(parameters)
sip(parameters, n = 1)
Define a range parameter
Description
Define a range parameter
Usage
range_parameter(
  id,
  default,
  lower_distribution,
  upper_distribution,
  description = NULL,
  tuneable = TRUE
)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
lower_distribution | 
 A distribution from which the lower value of the range can be sampled.  | 
upper_distribution | 
 A distribution from which the upper value fo the range can be sampled.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
Define a subset parameter
Description
Define a subset parameter
Usage
subset_parameter(id, default, values, description = NULL, tuneable = TRUE)
Arguments
id | 
 The name of the parameter.  | 
default | 
 The default value of the parameter.  | 
values | 
 A set of possible values.  | 
description | 
 An optional (but recommended) description of the parameter.  | 
tuneable | 
 Whether or not a parameter is tuneable.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
subset_parameter(
  id = "dimreds",
  default = c("pca", "mds"),
  values = c("pca", "mds", "tsne", "umap", "ica"),
  description = "Which dimensionality reduction methods to apply (can be multiple)"
)
Uniform distribution
Description
Distributions are used for defining the domain of an integer_parameter() or numeric_parameter().
Usage
uniform_distribution(lower, upper)
Arguments
lower | 
 Lower limit of the distribution.  | 
upper | 
 Upper limit of the distribution.  | 
See Also
dynparam for an overview of all dynparam functionality.
Examples
uniform_distribution(1, 10)