9 votos

Gridsearch para estimación de parámetros SVM

Actualmente estoy experimentando con gridsearch para entrenar a una máquina de soporte vectorial. Entiendo que, si he parámetro gamma y C, la función R melodía.svm realiza un 10-fold cross validation para todas las combinaciones de estos 2 parámetros.

Como yo no sabía cómo empezar, he tratado de obtener alguna información sobre ella, por ejemplo la wikipedia2 sugiere valores que no son lineales, por ejemplo, C en el rango {10, 100, 1000}.

Hasta ahora puedo usar los ejemplos de mi segundo enlace de wikipedia, que es:

gammas = 2^(-15:3)
costs = 2^(-5:15)

Que se traduce en 399 combinaciones.

Esto se lleva muy, muy largo (~2000 muestras). Por ejemplo, para el núcleo "radial" mi mejor resultado es el gamma = 0.5 y coste = 2.

No puedo obtener el mismo resultado si acabo de utilizar valores como (1, 2, 3, 4, ... 10) por los costos y la (0, 0.5, 1, 1.5, 2) para gammas? Sé que este ejemplo se construye porque ya sé el resultado.

Mi pregunta:

Pero, ¿por qué este exponencial de la escala?

Hay tantos valores entre 0 y 1 que creo que esto es una pérdida de tiempo de cálculo y sólo unos números muy grandes que no podía encontrar un resultado exacto de todos modos. Esto sólo tendría sentido para mí si este fue utilizado para encontrar un rango menor, digamos que saber que el mejor costo es de 2^3 y, a continuación, realizamos la búsqueda en torno a eso. Pero en ninguna parte se menciona que se realiza de esa manera.

11voto

John Richardson Puntos 1197

La razón por la exponencial de la red es que tanto C y gamma son la escala de los parámetros que la ley de multiplicatively, y al doblar gamma es probable que tenga más o menos grande de un efecto (pero en la otra dirección) como reducir a la mitad. Esto significa que si se utiliza una cuadrícula de aproximadamente crecimiento exponencial de los valores, no hay aproximadamente la misma cantidad de "información" sobre el hyper-parámetros obtenidos de la evaluación del modelo criterio de selección en cada punto de la rejilla.

Yo suelo buscar en una cuadrícula basada en potencias enteras de 2, lo que parece funcionar bastante bien (estoy trabajando en un trabajo sobre la optimización de la cuadrícula de búsqueda - si se utiliza demasiado fino en una cuadrícula, usted puede terminar encima de ajuste del modelo criterio de selección, de manera bastante rejilla gruesa resulta ser bueno para la generalización, así como el costo de cómputo.).

En cuanto a la amplia gama, por desgracia, el óptimo de hyper-valores de los parámetros depende de la naturaleza del problema, y en el tamaño del conjunto de datos y no se puede determinar a priori. La razón de los grandes, al parecer derroche de cuadrícula, es asegurarse de que los valores se pueden encontrar de forma automática, con alta probabilidad.

Si el costo de cómputo es un problema, entonces en lugar de usar la cuadrícula de búsqueda, puede utilizar el Nelder-Mead algoritmo del simplex para optimizar la cruz-error de validación. Este es un algoritmo de optimización que no requiere gradiente de información, por lo que es bastante sencillo de utilizar para cualquier problema en la cuadrícula de búsqueda se utilizan en la actualidad. Yo no soy un usuario R, pero Nelder-Mead está implementado en R mediante optim.

0voto

M_1 Puntos 313

Esto se llama el "parámetro de sintonización" problema para SVMs. Uno de los enfoques más fácil es tomar la mediana de cada una de los mayores niveles de clase de exactitud de la predicción obtenida como usted va a través de la CV de los pliegues.

También, como regla general, el uso de un simple clasificador para determinar si los datos son linealmente separables. Si k-vecinos más cercanos (kNN) o de regresión lineal funciona mejor, entonces usted no debería usar más caro (computacionalmente) enfoque como SVM. SVM puede ser fácilmente usado en exceso, así que asegúrese de evaluar la regresión lineal, kNN, el análisis discriminante lineal, al azar de los bosques, etcétera.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X