5

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

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

聚苯乙烯。我完全知道"automatic"kpar 的值可以用来“计算一个好的 sigma ”。但我需要一些更具体、更符合tune.svm.

4

1 回答 1

1

要么您编写自己的包装器(说实话并不难),要么您可以尝试已经证明实施的解决方案,例如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)

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

于 2016-06-28T12:27:59.803 回答