RのcaretパッケージでtuneLengthを指定(tuneGridは指定しない)したときのグリッドサーチ範囲

範囲は、caretで使う機械学習モデルによります。

getModelInfoで調べることができます。

例えばxgbTreeの場合、以下になります。

library(caret)
getModelInfo("xgbTree")$xgbTree$grid
function(x, y, len = NULL, search = "grid") {
                    if(search == "grid") {
                      out <- expand.grid(max_depth = seq(1, len),
                                         nrounds = floor((1:len) * 50),
                                         eta = c(.3, .4),
                                         gamma = 0,
                                         colsample_bytree = c(.6, .8),
                                         min_child_weight = c(1),
                                         subsample = seq(.5, 1, length = len))
                    } else {
                      out <- data.frame(nrounds = sample(1:1000, size = len, replace = TRUE),
                                        max_depth = sample(1:10, replace = TRUE, size = len),
                                        eta = runif(len, min = .001, max = .6),
                                        gamma = runif(len, min = 0, max = 10),
                                        colsample_bytree = runif(len, min = .3, max = .7),
                                        min_child_weight = sample(0:20, size = len, replace = TRUE),
                                        subsample = runif(len, min = .25, max = 1))
                      out$nrounds <- floor(out$nrounds)
                      out <- out[!duplicated(out),]
                    }
                    out
                  }

lenがtuneLengthに対応しているはずです。

ご参考まで。

参考: R: how does caret choose default tuning range?

では。


YouTube: ミサキさん

問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)

コメント

タイトルとURLをコピーしました