當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。