【问题标题】:Tuning ksvm from kernlab从内核实验室调整 ksvm
【发布时间】:2014-12-15 01:57:03
【问题描述】:

我想在 R 中使用 SVM 实现来做一些回归。我已经尝试使用来自e1071svm,但我受到那里的内核函数的限制。所以我从kernlab 转到ksvm。但是我有一个主要的缺点是kernlab 中没有提供调整功能(如e1071 中的tune.svm)。有人可以解释我如何在那里调整不同内核的参数吗?

附言。我想特别使用rbfdot 内核。因此,如果至少有人可以帮助我了解如何调整 sigma,我将非常感激。

PPS。我完全清楚 kpar 的 "automatic" 值可用于“计算一个好的 sigma”。但我需要一些更具体、更符合tune.svm 的东西。

【问题讨论】:

    标签: r kernlab


    【解决方案1】:

    您可以编写自己的包装器(说实话并不难),或者您可以尝试已经实现的解决方案,例如mlrcaret


    mlr教程有an example about it

    ps = makeParamSet(
      makeDiscreteParam("C", values = 2^(-2:2)),
      makeDiscreteParam("sigma", values = 2^(-2:2))
    )
    
    ctrl = makeTuneControlGrid()
    
    rdesc = makeResampleDesc("CV", iters = 3L)
    
    res = tuneParams("classif.ksvm", task = iris.task, resampling = rdesc, par.set = ps, control = ctrl)
    

    这将执行 3 折交叉验证以从网格中选择参数并评估 iris 数据集的准确性。当然,您可以更改重采样策略(留一法、蒙特卡罗 CV、CV、重复 CV、引导验证和保留)、搜索策略(网格搜索、随机搜索、广义模拟退火和迭代 F -race 都支持)和评估指标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-20
      • 2021-03-04
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多