Ich experimentiere derzeit mit Gridsearch, um eine Support-Vektor-Maschine zu trainieren. Ich verstehe, dass, wenn ich die Parameter gamma und C habe, die R-Funktion tune.svm eine 10-fache Kreuzvalidierung für alle Kombinationen dieser beiden Parameter durchführt.
Da ich nicht wusste, wie ich anfangen soll, habe ich versucht, einige Informationen darüber zu erhalten, zum Beispiel schlägt Wikipedia 2 Werte vor, die nicht linear sind, z. B. C im Bereich {10, 100, 1000}.
Bisher verwende ich die Beispiele aus meinem zweiten Wikipedia-Link:
gammas = 2^(-15:3)
costs = 2^(-5:15)
Daraus ergeben sich 399 Kombinationen.
Dies dauert sehr, sehr lange (~ 2000 Proben). Zum Beispiel für den Kernel "radial" ist mein bestes Ergebnis gamma = 0,5 und cost = 2.
Könnte ich nicht das gleiche Ergebnis erzielen, wenn ich nur Werte wie (1, 2, 3, 4, ... 10) für die Kosten und (0, 0,5, 1, 1,5, 2) für Gammas verwenden würde? Ich weiß, dass dieses Beispiel konstruiert ist, weil ich das Ergebnis bereits kenne.
Meine Frage:
Aber warum diese exponentielle Skala?
Es gibt so viele Werte zwischen 0 und 1, dass ich denke, dies ist eine Verschwendung von Rechenzeit und nur so wenige sehr große Zahlen, dass es sowieso kein sehr genaues Ergebnis finden konnte. Es wäre für mich nur sinnvoll, wenn dies verwendet würde, um einen kleineren Bereich zu finden. Nehmen wir an, wir wissen dann, dass die besten Kosten 2 ^ 3 sind, und dann suchen wir danach. Aber es wird nirgends erwähnt, dass dies so durchgeführt wird.