R:插入符号如何选择默认调整范围?

3 r r-caret

R caret用于比较同一数据集上的多个模型时,caret如果tuneLength为所有模型指定了相同的范围并且没有指定特定于模型的范围,则足够聪明地为不同的模型选择不同的调整范围tuneGrid

例如,caret为一个特定数据集选择的调整范围是:

earth(nprune): 2, 5, 8, 11, 14

gamSpline(df): 1, 1.5, 2, 2.5, 3

rpart(cp): 0.010, 0.054, 0.116, 0.123, 0.358

有谁知道如何caret确定这些默认调整范围?我一直在搜索文档,但仍然没有确定选择范围的算法。

top*_*epo 6

这取决于型号。对于rpart和其他一些人来说,它适合初始模型以了解合理的值应该是什么。在其他情况下,它的智能程度较低。例如,因为gamSpline它是expand.grid(df = seq(1, 3, length = len))

您可以使用以下命令查看每个模型的作用getModelInfo

 > getModelInfo("earth")[[1]]$grid
 function(x, y, len = NULL) {
       dat <- if(is.data.frame(x)) x else as.data.frame(x)
       dat$.outcome <- y

       mod <- earth( .outcome~., data = dat, pmethod = "none")
       maxTerms <- nrow(mod$dirs)
       maxTerms <- min(200, floor(maxTerms * .75) + 2)
       data.frame(nprune = unique(floor(seq(2, to = maxTerms, length = len))),
                  degree = 1)
  }
Run Code Online (Sandbox Code Playgroud)

最大限度