如何使用插入符号 (maxit) 为地球传递 glm 控制参数

how to pass glm control argument for earth using caret (maxit)

glm 模型拟合 earth 时,可以将参数传递给 glm 调用。例如:

mars_fit <- earth(formula = response ~ x1 + x2, data = sim_dat,
                      glm = list(family=binomial, control = list(maxit = 50)))

使用 caret 看起来像

fit_control <- trainControl(method = "cv", number = 10)
mars_grid <- expand.grid(degree=1:2, nprune=2:10)
mars_fit <- train(factor(response)~x1+x2, method='earth', trControl = fit_control, 
                  data=sim_dat, tuneGrid=mars_grid, 
                  glm = list(control = list(maxit = 50)))

但是glm列表没有通过。有什么建议吗?

编辑 1: 阅读 https://github.com/topepo/caret/issues/554 caret 的作者说它要么被捕获在 ... 中,要么应该在调整网格中传递。当通过调整网格时,由于 glm 是一个列表,train 抱怨 degreenprune 不属于该方法,这是不正确的。 编辑 2: 打开 https://github.com/topepo/caret/issues/1018

问题已在此提交中解决: https://github.com/topepo/caret/commit/2ce2cf4c5889791b7dbca5d8896fcc6dc0d0bcfc