当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dials grid_max_entropy 空间填充参数网格


计算机实验的实验设计用于构建参数网格,试图覆盖参数空间,使得空间的任何部分都具有离它不太远的观察到的组合。

用法

grid_max_entropy(
  x,
  ...,
  size = 3,
  original = TRUE,
  variogram_range = 0.5,
  iter = 1000
)

# S3 method for parameters
grid_max_entropy(
  x,
  ...,
  size = 3,
  original = TRUE,
  variogram_range = 0.5,
  iter = 1000
)

# S3 method for list
grid_max_entropy(
  x,
  ...,
  size = 3,
  original = TRUE,
  variogram_range = 0.5,
  iter = 1000
)

# S3 method for param
grid_max_entropy(
  x,
  ...,
  size = 3,
  original = TRUE,
  variogram_range = 0.5,
  iter = 1000
)

# S3 method for workflow
grid_max_entropy(
  x,
  ...,
  size = 3,
  original = TRUE,
  variogram_range = 0.5,
  iter = 1000
)

grid_latin_hypercube(x, ..., size = 3, original = TRUE)

# S3 method for parameters
grid_latin_hypercube(x, ..., size = 3, original = TRUE)

# S3 method for list
grid_latin_hypercube(x, ..., size = 3, original = TRUE)

# S3 method for param
grid_latin_hypercube(x, ..., size = 3, original = TRUE)

# S3 method for workflow
grid_latin_hypercube(x, ..., size = 3, original = TRUE)

参数

x

param 对象、列表或 parameters

...

一个或多个 param 对象(例如 mtry()penalty() )。所有对象都不能在参数范围或值中具有 unknown() 值。

size

返回的参数值组合总数的单个整数。如果从此大小生成重复组合,则返回较小的唯一集合。

original

逻辑:参数应该采用原始单位还是变换后的空间(如果有)?

variogram_range

大于零的数值。较大的值会降低参数空间中出现空区域的可能性。

iter

用于找到良好设计的最大迭代次数的整数。

细节

这里支持的设计类型是拉丁超立方体设计和尝试最大化坐标之间的空间相关矩阵的行列式的设计。两种设计都使用参数空间中的点的随机采样。

请注意,根据函数的调用方式,网格可能会有所不同。如果调用直接使用参数对象,则可能的范围来自 dials 中的对象。例如:

mixture()
## Proportion of Lasso Penalty (quantitative)
## Range: [0, 1]
set.seed(283)
mix_grid_1 <- grid_latin_hypercube(mixture(), size = 1000)
range(mix_grid_1$mixture)
## [1] 0.0001530482 0.9999530388

但是,在某些情况下,parsniprecipe 包会覆盖特定模型和预处理步骤的默认范围。如果网格函数使用从模型或配方创建的 parameters 对象,则范围可能具有不同的默认值(特定于这些模型)。使用上面的示例,上面的 mixture 参数对于 glmnet 模型是不同的:

library(parsnip)
library(tune)

# When used with glmnet, the range is [0.05, 1.00]
glmn_mod <-
  linear_reg(mixture = tune()) %>%
  set_engine("glmnet")

set.seed(283)
mix_grid_2 <- grid_latin_hypercube(extract_parameter_set_dials(glmn_mod), size = 1000)
range(mix_grid_2$mixture)
## [1] 0.0501454 0.9999554

参考

杰罗姆·萨克斯和韦尔奇、托比·威廉·米切尔和 J·米切尔以及亨利·韦恩。 (1989)。计算机实验的设计和分析。附有作者的评论和反驳。统计科学。 4.10.1214/ss/1177012413。

托马斯·桑特纳、布莱恩·威廉姆斯和威廉·诺茨。 (2003)。计算机实验的设计与分析。施普林格。

Dupuy, D.、Helbert, C. 和 Franco, J. (2015)。 DiceDesign 和 DiceEval:两个用于设计和分析计算机实验的 R 包。统计软件杂志,65(11)

例子

grid_max_entropy(
  hidden_units(),
  penalty(),
  epochs(),
  activation(),
  learn_rate(c(0, 1), trans = scales::log_trans()),
  size = 10,
  original = FALSE
)
#> # A tibble: 10 × 5
#>    hidden_units penalty epochs activation learn_rate
#>           <dbl>   <dbl>  <dbl> <chr>           <dbl>
#>  1         4.83   -8.55   988. softmax        0.678 
#>  2         9.12   -8.11   786. softmax        0.887 
#>  3         4.46   -2.86   122. elu            0.271 
#>  4         8.10   -9.52   250. softmax        0.219 
#>  5         8.81   -1.65   903. tanh           0.151 
#>  6         2.76   -2.67   526. tanh           0.930 
#>  7         6.13   -2.31   207. softmax        0.902 
#>  8         3.70   -8.10   441. tanh           0.332 
#>  9         9.21   -6.37   853. linear         0.0388
#> 10         2.19   -5.66   542. linear         0.130 

grid_latin_hypercube(penalty(), mixture(), original = TRUE)
#> # A tibble: 3 × 2
#>        penalty mixture
#>          <dbl>   <dbl>
#> 1 0.513          0.343
#> 2 0.000423       0.215
#> 3 0.0000000230   0.690
源代码:R/space_filling.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Space-filling parameter grids。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。