将参数传递给与显式参数冲突的点
Passing parameters to dots that conflict with explicit parameters
caret::train()
函数有一个明确的 method
参数,我们可以为其指定要使用的机器学习方法(如 MASS::polr
)。此外,caret::train()
允许您通过 ...
(点)参数将参数传递给方法函数。
但是,我想传递的 MASS::polr
参数之一是 method
,它与 caret::train()
method
参数冲突。
如何将 polr
method="probit"
参数传递给 polr
,同时仍然将 method="polr"
参数传递给 caret::train()
?
不确定 caret::train()
是否有特定技巧或函数点与一般冲突的命名函数参数的一般技巧。
具体来说,我需要:
## Generic example, no data, but captures idea
fit <- train(xdata, ydata, method="polr" # this 'method' is named parameter for train() function
, preProcess = c("center", "scale")
, method="probit" # this 'method' parameter needs to be passed via dots to 'polr'
)
一般来说,...选项将需要的参数传递给底层函数。但在某些情况下,这确实与 train 函数中的现有参数发生冲突。在 polr
的情况下,这是通过 tuneGrid
解决的。
查看 the available models 页面并搜索 polr。
在公式符号中应该如下所示:
train(y ~ x1 + x2,
data = my_data,
method = "polr",
trControl = my_control,
tuneGrid = expand.grid(method = "probit"))
caret::train()
函数有一个明确的 method
参数,我们可以为其指定要使用的机器学习方法(如 MASS::polr
)。此外,caret::train()
允许您通过 ...
(点)参数将参数传递给方法函数。
但是,我想传递的 MASS::polr
参数之一是 method
,它与 caret::train()
method
参数冲突。
如何将 polr
method="probit"
参数传递给 polr
,同时仍然将 method="polr"
参数传递给 caret::train()
?
不确定 caret::train()
是否有特定技巧或函数点与一般冲突的命名函数参数的一般技巧。
具体来说,我需要:
## Generic example, no data, but captures idea
fit <- train(xdata, ydata, method="polr" # this 'method' is named parameter for train() function
, preProcess = c("center", "scale")
, method="probit" # this 'method' parameter needs to be passed via dots to 'polr'
)
一般来说,...选项将需要的参数传递给底层函数。但在某些情况下,这确实与 train 函数中的现有参数发生冲突。在 polr
的情况下,这是通过 tuneGrid
解决的。
查看 the available models 页面并搜索 polr。
在公式符号中应该如下所示:
train(y ~ x1 + x2,
data = my_data,
method = "polr",
trControl = my_control,
tuneGrid = expand.grid(method = "probit"))