J'expérimente actuellement avec gridsearch pour former une machine à vecteur de support. Je comprends que si j'ai des paramètres gamma et C, la fonction R tune.svm effectue une validation croisée 10 fois pour toutes les combinaisons de ces 2 paramètres.
Comme je ne savais pas par où commencer, j'ai essayé d'obtenir des informations à ce sujet, par exemple wikipedia 2 suggère des valeurs qui ne sont pas linéaires, par exemple C dans la plage {10, 100, 1000}.
Jusqu'à présent, j'utilise les exemples de mon deuxième lien wikipedia, qui est:
gammas = 2^(-15:3)
costs = 2^(-5:15)
Ce qui donne 399 combinaisons.
Cela prend très, très longtemps (~ 2000 échantillons). Par exemple pour le noyau "radial" mon meilleur résultat est gamma = 0,5 et coût = 2.
Ne pourrais-je pas obtenir le même résultat si je viens d'utiliser des valeurs comme (1, 2, 3, 4, ... 10) pour les coûts et (0, 0,5, 1, 1,5, 2) pour les gammas? Je sais que cet exemple est construit parce que je connais déjà le résultat.
Ma question:
Mais pourquoi cette échelle exponentielle?
Il y a tellement de valeurs entre 0 et 1 que je pense que c'est une perte de temps de calcul et seulement si peu de très gros nombres qu'il n'a pas pu trouver un résultat très précis de toute façon. Cela n'aurait de sens pour moi que si cela était utilisé pour trouver une gamme plus petite, disons que nous savons alors que le meilleur coût est 2 ^ 3, puis nous cherchons autour de cela. Mais il n'est mentionné nulle part qui est exécuté de cette façon.