可以为任意数量的参数对象创建随机和规则网格。
用法
grid_regular(x, ..., levels = 3, original = TRUE, filter = NULL)
# S3 method for parameters
grid_regular(x, ..., levels = 3, original = TRUE, filter = NULL)
# S3 method for list
grid_regular(x, ..., levels = 3, original = TRUE, filter = NULL)
# S3 method for param
grid_regular(x, ..., levels = 3, original = TRUE, filter = NULL)
# S3 method for workflow
grid_regular(x, ..., levels = 3, original = TRUE, filter = NULL)
grid_random(x, ..., size = 5, original = TRUE, filter = NULL)
# S3 method for parameters
grid_random(x, ..., size = 5, original = TRUE, filter = NULL)
# S3 method for list
grid_random(x, ..., size = 5, original = TRUE, filter = NULL)
# S3 method for param
grid_random(x, ..., size = 5, original = TRUE, filter = NULL)
# S3 method for workflow
grid_random(x, ..., size = 5, original = TRUE, filter = NULL)
参数
- x
-
param
对象、列表或parameters
。 - ...
-
一个或多个
param
对象(例如mtry()
或penalty()
)。所有对象都不能在参数范围或值中具有unknown()
值。 - levels
-
用于制作规则网格的每个参数值的数量的整数。
levels
可以是单个整数或整数向量,其长度与...
中的参数数量相同。levels
可以是命名整数向量,其名称与参数的 id 值匹配。 - original
-
逻辑:参数应该采用原始单位还是变换后的空间(如果有)?
- filter
-
逻辑:是否应该在生成网格之前过滤参数。必须是引用参数名称且计算结果为逻辑向量的单个表达式。
- size
-
为随机网格返回的参数值组合总数的单个整数。如果从此大小生成重复组合,则返回较小的唯一集合。
细节
请注意,根据函数的调用方式,网格可能会有所不同。如果调用直接使用参数对象,则可能的范围来自 dials
中的对象。例如:
mixture()
## Proportion of Lasso Penalty (quantitative)
## Range: [0, 1]
set.seed(283)
mix_grid_1 <- grid_random(mixture(), size = 1000)
range(mix_grid_1$mixture)
## [1] 0.001490161 0.999741096
但是,在某些情况下,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_random(extract_parameter_set_dials(glmn_mod), size = 1000)
range(mix_grid_2$mixture)
## [1] 0.05141565 0.99975404
例子
# filter arg will allow you to filter subsequent grid data frame based on some condition.
p <- parameters(penalty(), mixture())
grid_regular(p)
#> # A tibble: 9 × 2
#> penalty mixture
#> <dbl> <dbl>
#> 1 0.0000000001 0
#> 2 0.00001 0
#> 3 1 0
#> 4 0.0000000001 0.5
#> 5 0.00001 0.5
#> 6 1 0.5
#> 7 0.0000000001 1
#> 8 0.00001 1
#> 9 1 1
grid_regular(p, filter = penalty <= .01)
#> # A tibble: 6 × 2
#> penalty mixture
#> <dbl> <dbl>
#> 1 0.0000000001 0
#> 2 0.00001 0
#> 3 0.0000000001 0.5
#> 4 0.00001 0.5
#> 5 0.0000000001 1
#> 6 0.00001 1
# Will fail due to unknowns:
# grid_regular(mtry(), min_n())
grid_regular(penalty(), mixture())
#> # A tibble: 9 × 2
#> penalty mixture
#> <dbl> <dbl>
#> 1 0.0000000001 0
#> 2 0.00001 0
#> 3 1 0
#> 4 0.0000000001 0.5
#> 5 0.00001 0.5
#> 6 1 0.5
#> 7 0.0000000001 1
#> 8 0.00001 1
#> 9 1 1
grid_regular(penalty(), mixture(), levels = 3:4)
#> # A tibble: 12 × 2
#> penalty mixture
#> <dbl> <dbl>
#> 1 0.0000000001 0
#> 2 0.00001 0
#> 3 1 0
#> 4 0.0000000001 0.333
#> 5 0.00001 0.333
#> 6 1 0.333
#> 7 0.0000000001 0.667
#> 8 0.00001 0.667
#> 9 1 0.667
#> 10 0.0000000001 1
#> 11 0.00001 1
#> 12 1 1
grid_regular(penalty(), mixture(), levels = c(mixture = 4, penalty = 3))
#> # A tibble: 12 × 2
#> penalty mixture
#> <dbl> <dbl>
#> 1 0.0000000001 0
#> 2 0.00001 0
#> 3 1 0
#> 4 0.0000000001 0.333
#> 5 0.00001 0.333
#> 6 1 0.333
#> 7 0.0000000001 0.667
#> 8 0.00001 0.667
#> 9 1 0.667
#> 10 0.0000000001 1
#> 11 0.00001 1
#> 12 1 1
grid_random(penalty(), mixture())
#> # A tibble: 5 × 2
#> penalty mixture
#> <dbl> <dbl>
#> 1 0.00000000433 0.312
#> 2 0.0000000435 0.174
#> 3 0.00359 0.423
#> 4 0.00000299 0.192
#> 5 0.00000146 0.633
相关用法
- R dials grid_max_entropy 空间填充参数网格
- 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等大神的英文原创作品 Create grids of tuning parameters。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。