从 kernlab 调整 ksvm

Gai*_*inD 5 r kernlab

我想在 R 中使用 SVM 实现来做一些回归。我已经尝试使用svmfrome1071但我受到那里的内核函数的限制。所以我继续ksvmkernlab. 但我有一个重大的缺点,即调节功能尚未在提供kernlab(如tune.svme1071)。有人可以解释我如何调整不同内核的参数吗?

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

聚苯乙烯。我完全知道"automatic"kpar的值可以用来“计算一个好的西格玛”。但我需要一些更切实的东西,更符合tune.svm.

cat*_*ure 2

要么您编写自己的包装器(说实话,这并不难),要么您可以尝试已经经过验证的实施解决方案,例如mlrcaret


mlr教程有一个关于它的例子

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)
Run Code Online (Sandbox Code Playgroud)

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