R 如何在插入符号包中的指定网格中进行随机搜索?

R 如何在插入符号包中的指定网格中进行随机搜索?,r,regression,r-caret,training-data,hyperparameters,R,Regression,R Caret,Training Data,Hyperparameters,我想知道是否可以在预定义的网格中使用随机搜索。例如,对于glmnet方法,我的网格具有alpha和lambdaalpha介于0和1之间,lambda介于-10和10之间。我想使用随机搜索5次,随机尝试在这个界限点。我为网格搜索编写了下面的代码,它工作得很好,但是我不能在绑定中修改它以进行随机搜索 rand_ctrl <- trainControl(method = "repeatedcv", repeats = 5, search = "

我想知道是否可以在预定义的网格中使用随机搜索。例如,对于
glmnet
方法,我的网格具有
alpha
lambda
alpha
介于0和1之间,
lambda
介于-10和10之间。我想使用随机搜索5次,随机尝试在这个界限点。我为网格搜索编写了下面的代码,它工作得很好,但是我不能在绑定中修改它以进行随机搜索

rand_ctrl <- trainControl(method = "repeatedcv", repeats = 5,
                          search = "random")
grid <- expand.grid(alpha=seq(0,1,0.1),lambda=seq(-10,10,1)) # I think this should be modified
rand_search <- train(Response ~ ., data = train_dat,
                     method = "glmnet",
                     ## Create 20 random parameter values
                     metric = "RMSE",
                     tuneLength = 5,
                     preProc = c("scale"),
                     tuneGrid = grid,
                     trControl = rand_ctrl)

rand\u ctrl一种方法是定义一个网格,并使用
sample
选择几个随机行:

set.seed(1)
samp <- sample(1:nrow(grid), 5)
grid[samp,]
#output
    alpha lambda
62    0.6     -5
86    0.8     -3
132   1.0      1
208   0.9      8
46    0.1     -6
并将其作为
tuneGrid
参数提供


第二种方法不是从网格中选取随机元素,而是从定义的最小值和最大值之间选取随机数。

一种方法是定义一个网格并使用
sample
选取多个随机行:

set.seed(1)
samp <- sample(1:nrow(grid), 5)
grid[samp,]
#output
    alpha lambda
62    0.6     -5
86    0.8     -3
132   1.0      1
208   0.9      8
46    0.1     -6
并将其作为
tuneGrid
参数提供


第二种方法不是从网格中选取随机元素,而是在定义的最小值和最大值之间选取随机数。

有意义。我怎么想不出来。不管怎样,谢谢你的帮助。说得通。我怎么想不出来。无论如何,谢谢你的帮助。