我目前正在尝试使用 gridsearch 来训练支持向量机。我知道,如果我有参数 gamma 和 C,R 函数 tune.svm 会对这两个参数的所有组合执行 10 倍交叉验证。
因为我不知道如何开始,所以我试图获取一些关于它的信息,例如wikipedia 2建议的值不是线性的,例如 {10、100、1000} 范围内的 C。
到目前为止,我使用了我的第二个维基百科链接中的示例,即:
gammas = 2^(-15:3)
costs = 2^(-5:15)
结果是 399 种组合。
这需要非常非常长的时间(约 2000 个样本)。例如,对于内核“径向”,我最好的结果是 gamma = 0.5 和 cost = 2。
如果我只使用 (1, 2, 3, 4, ... 10) 之类的值作为成本,使用 (0, 0.5, 1, 1.5, 2) 作为伽马值,我不能得到相同的结果吗?我知道这个例子是构造的,因为我已经知道结果。
我的问题:
但为什么会出现这种指数规模?
0 和 1 之间的值太多了,我认为这是在浪费计算时间,而且只有很少的非常大的数字,以至于无论如何都找不到非常精确的结果。如果用它来寻找更小的范围,这对我来说才有意义,假设我们知道最好的成本是 2^3,然后我们围绕它进行搜索。但是没有任何地方提到以这种方式执行。