有没有办法使用Caret的列车功能中的随机森林和PCA预处理启用mtry的网格调整?

时间:2015-11-02 10:56:28

标签: r r-caret

当我使用带有Caret包中的列车功能的PCA预处理随机森林时,如果我添加expand.grid(ncomp=c(2,5,10,15)),我还需要为mtry提供一个网格。

res <- train(Y~., data=df, method="icr", preProc = c("center",
"scale"), tuneGrid = expand.grid(n.comp = c(2,5,10,15))))

我宁愿不提供它,让它在我使用PCA预处理执行相同的随机森林而不指定任何expand.grid的情况下工作。

res <- train(Y~., data=df, method="icr", preProc = c("center",
"scale")))

有谁知道如何解决这个问题?

非常感谢

2 个答案:

答案 0 :(得分:0)

我找到了答案,我发布了有兴趣的人。 您需要在trainControl中添加ICA参数,因为ICA用于预处理。

fitControl <-(preProcOptions = list(ICAcomp = 2)) res <- train(Y~., data=df, method="icr", preProc = c("center","scale")))

不幸的是,在这种情况下,我认为你不能为ICA comp提供网格

答案 1 :(得分:0)

当您从n.comp调用{p> preProcess时,{p> train不会向{{1}}功能公开。

一种替代方法是使用自定义方法。 Here几乎完全符合您要求的示例(但使用PLS而不是PCA)。

最高