Atualmente, estou experimentando o gridsearch para treinar uma máquina de vetores de suporte. Entendo que, se possuo o parâmetro gama e C, a função R tune.svm executa uma validação cruzada de 10 vezes para todas as combinações desses 2 parâmetros.
Como não sabia como começar, tentei obter algumas informações sobre isso, por exemplo, a Wikipedia 2 sugere valores que não são lineares, por exemplo, C no intervalo {10, 100, 1000}.
Até agora, uso os exemplos do meu segundo link da wikipedia, que é:
gammas = 2^(-15:3)
costs = 2^(-5:15)
O que resulta em 399 combinações.
Isso leva muito, muito tempo (~ 2000 amostras). Por exemplo, para o kernel "radial", meu melhor resultado é gama = 0,5 e custo = 2.
Não poderia obter o mesmo resultado se apenas usasse valores como (1, 2, 3, 4, ... 10) para custos e (0, 0,5, 1, 1,5, 2) para gammas? Eu sei que este exemplo é construído porque eu já sei o resultado.
Minha pergunta:
Mas por que essa escala exponencial?
Existem tantos valores entre 0 e 1 que acho que é um desperdício de tempo de computação e tão poucos números muito grandes que, de qualquer maneira, não foi possível encontrar um resultado exato. Só faria sentido para mim se isso fosse usado para encontrar um intervalo menor, digamos que sabemos que o melhor custo é 2 ^ 3 e depois procuramos por ele. Mas em nenhum lugar é mencionado que é realizado dessa maneira.