计算机实验的实验设计用于构建参数网格,试图覆盖参数空间,使得空间的任何部分都具有离它不太远的观察到的组合。
用法
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)
细节
这里支持的设计类型是拉丁超立方体设计和尝试最大化坐标之间的空间相关矩阵的行列式的设计。两种设计都使用参数空间中的点的随机采样。
请注意,根据函数的调用方式,网格可能会有所不同。如果调用直接使用参数对象,则可能的范围来自 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
但是,在某些情况下,parsnip
和 recipe
包会覆盖特定模型和预处理步骤的默认范围。如果网格函数使用从模型或配方创建的 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 dials grid_regular 创建调整参数网格
- R dials smoothness 内核平滑度
- R dials all_neighbors 确定使用哪些邻居的参数
- R dials update.parameters 更新参数集中的单个参数
- R dials rbf_sigma 内核参数
- R dials trim_amount 修剪量
- R dials neighbors 邻居数量
- R dials num_comp 新函数数量
- R dials min_dist 嵌入点之间的有效最小距离参数
- R dials freq_cut 接近零方差参数
- R dials trees 与基于树和基于规则的模型相关的参数函数。
- R dials learn_rate 学习率
- R dials range_validate 用于处理参数范围的工具
- R dials xgboost_parameters xgboost 可能的引擎参数的参数
- R dials unknown 未知参数值的占位符
- R dials prune_method MARS修剪方法
- R dials max_tokens 保留令牌的最大数量
- R dials surv_dist 删失数据的参数分布
- R dials num_tokens 用于确定 ngram 中标记数量的参数
- R dials over_ratio 类别不平衡抽样的参数
- R dials mtry 随机抽样预测变量的数量
- R dials new-param 用于创建新参数对象的工具
- R dials momentum 梯度下降动量参数
- R dials class_weights 不平衡问题的类别权重参数
- R dials mtry_prop 随机选择的预测变量的比例
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Space-filling parameter grids。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。