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'
)
答案 0 :(得分:1)
通常,...选项将所需参数传递给基础函数。但在某些情况下,这确实与列车功能中的现有参数发生冲突。在polr
的情况下,这可以通过tuneGrid
解决。
请参阅the available models页面并搜索polr。
在公式表示法中,它应如下所示:
train(y ~ x1 + x2,
data = my_data,
method = "polr",
trControl = my_control,
tuneGrid = expand.grid(method = "probit"))