caret::train()
函数具有明确的method
参数,我们可以为其指定使用的机器学习方法(例如MASS::polr
)。此外,caret::train()
允许您通过...
(DOTS)参数传递参数。
但是,我想通过的MASS::polr
参数之一是method
,它与caret::train()
method
参数冲突。
在仍将method="polr"
参数传递给caret::train()
时,如何专门将polr
method="probit"
参数传递给polr
?
不确定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'
)
通常,...选项将所需的参数传递给基础函数。但是在某些情况下,这确实与火车功能中的现有参数发生了冲突。对于polr
,这是通过tuneGrid
解决的。
请参阅"可用型号"页面并搜索polr。
在公式符号中,应该看起来像这样:
train(y ~ x1 + x2,
data = my_data,
method = "polr",
trControl = my_control,
tuneGrid = expand.grid(method = "probit"))