首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从{kernlab}理解{插入}序列(tuneLength=)和支持向量机方法

从{kernlab}理解{插入}序列(tuneLength=)和支持向量机方法
EN

Stack Overflow用户
提问于 2016-08-09 20:19:20
回答 1查看 13.9K关注 0票数 16

试图更好地理解train(tuneLength = )如何在{caret}中工作。当我试图理解来自{kernlab}的支持向量机方法之间的一些差异时,我的困惑就发生了--我已经回顾了文档(这里)和插入符号培训页面(这里)。

我的玩具示例是使用iris数据集创建五个模型。结果是这里,可复制的代码是这里 (它们很长,所以我没有将它们复制并粘贴到帖子中)。

来自{caret}文档:

tuneLength 表示调优参数网格中粒度大小的整数。默认情况下,此参数是由train生成的每个调优参数的级别数。如果trainControl有选项search =“随机”,则这是通过随机搜索生成的最大优化参数组合数。(注:如果给出了,则必须命名此参数。)

这个例子trainControl(search = "random")train(tuneLength = 30)中,似乎有67个结果,而不是30个(优化参数组合的最大数量)?我试着四处游玩,看看是否有30个唯一的ROC值,甚至是ydim值,但据我统计,它们不是。

对于这个玩具示例,我创建了下表:

有办法看看“引擎盖下面”发生了什么吗?例如,M1 (svmRadial)和M3 (svmRadialSigma)都采用和给定相同的调参数,但基于调用$results似乎使用它们不同?

我对train(tuneLength = 9)的理解是,这两个模型都会产生sigmaC的结果,每个模型都带有9 values, 9 times,因为9是每个调优参数的级别数(随机搜索除外)。类似地,M4将是9^3,因为train(tuneLength = 9)和有3调优参数吗?

迈克尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 16:37:05

我需要更新更多的包文档,但是详细信息在用于随机搜索的软件包网页上是拼写的:

“唯一组合的总数由tuneLength选项指定为train。”

但是,使用RBF内核的SVMs尤其不稳定。下面是一篇文章:

  • svmRadial基于kern labsigest函数对成本进行调整,并使用单一的sigest值,对于网格搜索,tuneLength是要测试的代价值的个数,而对于随机搜索则是要评估的(成本,sigma)对的总数。
  • svmRadialCostsvmRadial相同,但是sigest在每个重采样循环中运行。对于随机搜索,它不会在sigma上进行调整。
  • svmRadialSigma与网格搜索调超过了成本和sigma。在一次次优认知性能的时刻,我设置了这个方法,在网格搜索中尝试最多6个sigma值,因为我觉得成本空间需要一个更大的范围。对于随机搜索,它的作用与svmRadial相同。
  • svmRadialWeightsvmRadial相同,但也考虑了类权重,只适用于2类问题。

至于网页上的SOM示例,这是一个bug。我过采样了SOM参数空间,因为xdim <= ydim & xdim*ydim < nrow(x)需要一个过滤器。错误来自于我没有保持正确数量的参数。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38859705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档