试图更好地了解如何train(tuneLength = )运作{caret}.我试图理解SVM方法之间的一些差异时发生了混乱,{kernlab}我已经阅读了文档(这里)和插入符号培训页面(这里).
我的玩具示例是使用iris数据集创建五个模型.结果在这里,可重现的代码在这里(它们相当长,所以我没有复制并粘贴到帖子中).
从{caret}文档:
tuneLength
一个整数,表示调整参数网格中的粒度量.默认情况下,此参数是列车应生成的每个调整参数的级别数.如果trainControl具有选项search ="random",则这是随机搜索将生成的调整参数组合的最大数量.(注意:如果给定,则必须命名此参数.)
在这个例子中,trainControl(search = "random")和train(tuneLength = 30),但似乎有67个结果,而不是30个(调整参数组合的最大数量)?我试着四处看看是否有30个独特的ROC价值观,甚至是ydim价值观,但按照我的统计,他们不是.
对于玩具示例,我创建了下表:
有没有办法看到"引擎盖下"发生了什么?例如,M1(svmRadial)和M3(svmRadialSigma)都采用和给出相同的调谐参数,但基于调用$results似乎使用不同的方式?
我的理解train(tuneLength = 9)是,这两种模式会产生的结果sigma和C每个9 values, 9 times由于9是每个调谐参数(唯一的例外是随机搜索)水平是多少?同样,M4将9^3因为train(tuneLength = 9)和有3调整参数?
迈克尔