SVM, interacción variable y ajuste de datos de entrenamiento

12

Tengo 2 preguntas generales / más teóricas.

1) Tengo curiosidad por saber cómo los SVM manejan las interacciones variables al construir modelos predictivos. Por ejemplo, si tengo dos funciones f1 y f2 y el objetivo depende de f1, f2 y digo f1 * f2 (o alguna función h (f1, f2)), ¿se ajusta SVM (no solo en OOS sino incluso en los datos de entrenamiento) mejorar cuando se incluyen f1, f2 y h (f1, f2) en las funciones en lugar de solo incluir f1 y f2? ¿El algoritmo SVM se ocupa de las interacciones de características? Parece que lo haría con la forma en que el SVM intenta crear hiperplanos en un espacio dimensional superior, pero no estoy seguro de querer preguntar.

2) Al ajustar un SVM en los datos de entrenamiento, dadas suficientes características y encontrar los parámetros óptimos (a través de la búsqueda de fuerza bruta o lo que sea), ¿un SVM siempre se ajustará trivialmente a los datos de entrenamiento? No estoy seguro si lo redacté correctamente, pero básicamente, si hay suficiente varianza / ruido en las características, ¿un SVM siempre se ajustará a los datos de entrenamiento al 100%? Por el contrario, si el SVM no se ajusta al 100% a los datos de entrenamiento, ¿eso significa que hay alguna información (u otras características) que afectan la variable objetivo que no se captura en los datos?

Gracias

Pequeña aclaración. Me refiero a los SVM del kernel específicamente

tomas
fuente

Respuestas:

8

Como sugiere highBandwidth, depende de si está utilizando un SVM lineal o uno no lineal (siendo pedante si no se utiliza un núcleo, es un clasificador lineal de margen máximo en lugar de un SVM).

Un clasificador lineal de margen máximo no es diferente de cualquier otro clasificador lineal en que si el proceso de generación de datos significa que hay interacciones entre los atributos, es probable que proporcionar esos términos de interacción mejore el rendimiento. El clasificador lineal de margen máximo es más bien como la regresión de cresta, con una ligera diferencia en el término de penalización que está diseñado para evitar el sobreajuste (dados los valores adecuados para el parámetro de regularización), y en la mayoría de los casos la regresión de cresta y el clasificador de margen máximo proporcionarán un rendimiento similar.

Si cree que los términos de interacción pueden ser importantes, puede introducirlos en el espacio de características de un SVM utilizando el núcleo polinomial , que dará un espacio de características en el que cada eje representa un monomio de orden o menos, el parámetro afecta la ponderación relativa de monomios de diferentes órdenes. Por lo tanto, una SVM con un núcleo polinomial es equivalente a ajustar un modelo polinomial en el espacio de atributos, que incorpora implícitamente esas interacciones. d cK(x,x)=(xx+c)ddc

Dadas suficientes características, cualquier clasificador lineal puede ajustarse trivialmente a los datos. IIRC y puntos en "posición general" en un espacio dimensional pueden romperse (separados de cualquier manera arbitraria) por un hiperplano (cf dimensión VC). Hacer esto generalmente resultará en un ajuste excesivo severo, por lo que debe evitarse. El punto de la clasificación de margen máximo es limitar este ajuste excesivo agregando un término de penalización que significa que se logra la mayor separación posible (lo que requeriría la mayor desviación de cualquier ejemplo de entrenamiento para producir una clasificación errónea). Esto significa que puede transformar los datos en un espacio dimensional muy alto (donde un modelo lineal es muy poderoso) sin incurrir en un ajuste excesivo.n - 1nn1

Tenga en cuenta que algunos núcleos dan lugar a un espacio de características de dimensiones infinitas, donde se garantiza una clasificación "trivial" para cualquier muestra de entrenamiento finito en posición general. Por ejemplo, el núcleo de la función de base radial, , donde el espacio de características es el elemento positivo de una hiperesfera de dimensión infinita. Tales núcleos hacen del SVM un aproximador universal, que puede representar esencialmente cualquier límite de decisión.K(x,x)=expγxx2

Sin embargo, esto es solo una parte de la historia. En la práctica, generalmente usamos un SVM de margen blando, donde se permite violar la restricción de margen, y hay un parámetro de regularización que controla la compensación entre maximizar el margen (que es un término de penalización, similar al utilizado en regresión de cresta) y la magnitud de las variables de holgura (que es similar a la pérdida en la muestra de entrenamiento). Luego, evitamos el ajuste excesivo ajustando el parámetro de regulación, por ejemplo, minimizando el error de validación cruzada (o algunos vinculados al error de dejar una salida), tal como lo haríamos en el caso de la regresión de cresta.

Entonces, aunque el SVM puede clasificar trivialmente el conjunto de entrenamiento, generalmente solo lo hará si la regularización y los parámetros del núcleo están mal elegidos. La clave para lograr buenos resultados con cualquier modelo de kernel radica en elegir un kernel apropiado y luego en ajustar el kernel y los parámetros de regularización para evitar un ajuste excesivo o insuficiente de los datos.

Dikran Marsupial
fuente
Gracias Dikran Eso fue extremadamente detallado y útil. Creo que entiendo las respuestas a las preguntas. Un seguimiento rápido. ¿Cómo se puede elegir el núcleo apropiado para SVM? ¿Sería similar a los parámetros de regularización / kernel (por ejemplo, mediante validación cruzada)? ¿O hay alguna base teórica para la elección? Si el kernel rbf convierte al SVM en un aproximador universal, supongo que la selección del kernel es otro parámetro para ajustar, pero no estoy seguro. Como probablemente pueda ver, soy bastante nuevo en esto.
tomas
Elegir un kernel es a menudo una buena forma de incorporar el conocimiento experto del problema en el clasificador, por ejemplo, para un sistema de reconocimiento de caracteres escrito a mano, es probable que desee utilizar un kernel que sea invariable para pequeñas rotaciones y traducciones de la imagen. La elección de un núcleo automáticamente se puede lograr mediante validación cruzada (que es lo que haría) o un límite en el error de dejar uno afuera (que se puede realizar de manera eficiente para SVM). Sin embargo, si el conjunto de datos es pequeño, elegir un kernel a través de la validación cruzada puede ser complicado debido al sobreajuste del error de validación cruzada.
Dikran Marsupial
Para muchas aplicaciones, los núcleos lineales o RBF son buenas opciones predeterminadas, y a menudo hay relativamente poco que ganar explorando una gama más amplia de núcleos (en ausencia de un conocimiento experto del problema).
Dikran Marsupial
1

Las respuestas dependen de si está utilizando SVM lineal o kernel SVM. Con SVM lineal, solo está utilizando las funciones que le da, y no tiene en cuenta las interacciones. Con Kernel SVM, básicamente está utilizando muchas características diferentes, dependiendo del kernel que elija. Si hay un hiperplano de separación, es decir, si el determina la clase donde son las características, entonces puede tener un ajuste completo de los datos de entrenamiento. Por lo general, no especifica las características, pero le da un núcleo que está relacionado con las características como . Mira hacia arriba reproduciendo espacios Kernel Hilbert.sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

highBandWidth
fuente