R中的liquidSVM参数选择说明

时间:2018-08-02 14:03:07

标签: r svm

这是我的第一个问题,我只是一个基本的“程序员”,所以如果我对自己的表述不够清楚,我感到抱歉。

我目前在R 3.5.0上使用liquidSVM 1.2.1,尽管潜力巨大,但我对某些技术并不了解,因为该帮助对我来说还不够解释,我无法在互联网上找到任何东西。 更具体地说,我想进一步了解参数选择的工作原理。

最终的liquidSVM模型实际上包含有关 gammas lambdas 的信息,但是我无法理解这些参数是否都在不同的单元格中使用,或者仅最后一对具有被选为最终模型。 这导致了两个子问题:

  1. 如果使用所有值,如何禁用 grid_choice 并仅为每个参数选择一个值?
  2. 如果算法选择了最后两个值,我怎么能知道它是哪个?

这是我到目前为止一直在使用的设置:

model = liquidSVM:: svm(formula, TRAIN, threads = 3, predict.prob = T, random_seed = 123, folds = 5, scale = F, d = 1, partition_choice = 5, grid_choice = -1)

我尝试了不同的事情,例如:

  1. 设置 gamma = 0.01 lambda = 0.1 ;
  2. 设置 max_gamma = 0.01 min_gamma = 0.01
  3. 设置 grid_choice = NULL grid_choice = list(gamma = 0.01,lambda = 0.01)

但是它仍然自己进行网格选择。

只要我能理解如何禁用此网格搜索并提供我选择的参数,我就会自己编写一个网格搜索代码(从而知道代码在做什么)。

谢谢。

1 个答案:

答案 0 :(得分:0)

这个问题现在有点老了。但是,如果有人仍在寻找相应的解决方案。

您可以使用名为 gammas lambdas 的参数定义要在其中搜索最佳匹配值的网格。在这种情况下,请将它们设置为一个值。

例如:

model <- svm(x1~., train, display=1,folds=5, mc_type="OvA_ls",
              gammas = 0.01,
              lambdas = 0.1
)

将仅将gamma设置为0.01,将lambda设置为0.1。

但是,这不再是网格搜索,您应该期望得到两只手来警告消息。如果提供伽玛向量和lambda向量,它将搜索该设置的网格而不是默认网格。因此,如果您想将liquidSVM与其他软件包进行比较,那么这些参数就很方便。

祝你好运