Tema 7
Técnicas de Aprendizaje Automático
Tema 7. Máquinas de
vectores de soporte
Índice
Esquema
Ideas clave
7.1. Introducción
7.2. Conceptos básicos de SVM
7.3. Separando por hiperplanos
7.4. Clasificador de margen máximo
7.5. Soft margin
7.6. El truco del kernel
7.7. Aplicaciones de SVM
7.8. Cuaderno de ejercicios
7.9. Referencias bibliográficas
A fondo
ISLR Chapter 9: Support Vector Machines
Support Vector Machines in Python with scikit learn
Ejemplo para predicción sobre comportamientos de
clientes
Ejemplo de implementación de Support Vector
Regression
Test
Esquema
Técnicas de Aprendizaje Automático 3
Tema 7. Esquema
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.1. Introducción
Las máquinas de vectores de soporte o máquinas de vector soporte (del inglés
support-vector machines, SVM) son un conjunto de algoritmos de aprendizaje
supervisado desarrollados por Cortes y Vapnik, 1995. Estos métodos en su
propuesta original estaban orientados a resolver una tarea de clasificación binaria.
Más adelante, SVM fue extendido a los problemas de regresión.
Los SVM son uno de los modelos más estudiados y se basan en
modelos de aprendizaje estadístico.
El objetivo del algoritmo SVM es crear un límite o línea de decisión que pueda
separar ciertamente un conjunto de datos determinado en diferentes clases. Una vez
que se establece el límite de decisión, los nuevos ejemplos se pueden clasificar en
las clases apropiadas con relativa facilidad. En el algoritmo SVM, este límite de
decisión se conoce como hiperplano. El desafío entonces es trazar este hiperplano
con precisión.
En temas previos, se ha visto que la manera más sencilla de encontrar la función que
empareja datos de entrada con salida es suponer que la variable objetivo (salida) se
puede aproximar como una combinación lineal de las características de los datos de
entrada. Para resolver esta aproximación existen los modelos lineales como la
regresión lineal (Maulud y Abdulazeez, 2020), que emplea el método de mínimos
cuadrados para aproximar la función en el caso de un problema de regresión, o la
regresión logística para un problema de clasificación (Master’s in Data Science, s.f.).
Los modelos lineales muestran un gran rendimiento en aquellos problemas donde
subyace una dependencia lineal entre las características de entrada y la salida, es
por eso por lo que son modelos muy extendidos y estudiados. No obstante, los
modelos lineales tienen un poder de predicción limitado, por eso se han realizado
Técnicas de Aprendizaje Automático 4
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
extensas investigaciones sobre modelos no lineales. Sin embargo, existen varios
problemas asociados a los modelos no lineales:
▸ Interpretabilidad. Los modelos no lineales tienden a ser más difíciles de interpretar
en comparación con los modelos lineales debido a su complejidad inherente y la falta
de una relación lineal clara entre las características y la variable de respuesta
(Molnar, 2020).
▸ Sobreajuste. Uno de los principales problemas con los modelos no lineales es el
sobreajuste, donde el modelo se ajusta demasiado a los datos de entrenamiento y
no generaliza bien a nuevos datos (Hastie et al., 2009).
▸ Disponibilidad de datos. Los modelos no lineales suelen requerir más datos de
entrenamiento que los modelos lineales para obtener un rendimiento óptimo debido
a su mayor complejidad y capacidad de adaptación (Bishop, 2006).
▸ Coste computacional. Son computacionalmente difíciles de resolver. El
entrenamiento de modelos no lineales puede ser computacionalmente intensivo y
requerir más tiempo de procesamiento en comparación con los modelos lineales,
especialmente en conjuntos de datos grandes o con una alta dimensionalidad
(Goodfellow et al., 2016).
Estas limitaciones han hecho que los modelos lineales ganen en popularidad debido
a su simplicidad tanto teórica como computacional. También se ha descubierto que,
con las características apropiadas, el poder de predicción de los modelos lineales
puede ser tan bueno como el de los modelos no lineales (Bishop, 2006).
SVM se utiliza ampliamente para resolver problemas de reconocimiento de patrones,
clasificación de imágenes, categorización de texto y más. SVM es particularmente
eficaz en espacios de alta dimensión y cuando los datos no son separables
linealmente.
Técnicas de Aprendizaje Automático 5
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Para comprender SVM, el presente tema está organizado de la siguiente manera: en
primer lugar, vamos a ver los conceptos geométricos necesarios para entender el
funcionamiento y la base que hay por detrás de las máquinas de vector de soporte.
En segundo lugar, veremos los problemas existentes al separar por hiperplanos. A
continuación, veremos cómo solucionar el problema de separar por hiperplanos.
Finalmente, las técnicas conocidas como kernel trick.
Los objetivos que se pretenden conseguir son:
▸ Comprender el concepto básico de SVM.
▸ Conocer los fundamentos matemáticos detrás de SVM.
▸ Distinguir entre SVM lineales y no lineales.
▸ Comprender la función y los tipos de funciones del kernel utilizadas en SVM.
Técnicas de Aprendizaje Automático 6
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.2. Conceptos básicos de SVM
SVM fue propuesto por el científico de origen ruso Vladimir Vapnik y su equipo en el
año 1963. La gran contribución de Vapnik al campo del aprendizaje automático ha
consistido precisamente en proponer uno de los primeros modelos de
estimación/predicción que no está basado en ningún modelo probabilístico, lo
cual es un gran cambio de mentalidad. Puesto que todos los modelos que se usaban
hasta ese momento estaban basados en la teoría estadística y de probabilidad.
Sin embargo, SVM se puede considerar el primer modelo que utiliza un enfoque
completamente distinto, que está basado en un modelado geométrico y que se
resuelve mediante un problema de optimización con restricciones.
El objetivo de SVM es buscar un plano que separe las clases en un espacio de
características (feature space). Por feature space se entiende un nuevo espacio de
dimensiones diferente (por lo general, con un mayor número de dimensiones) al
espacio original.
Usando el ejemplo sencillo de un clasificador binario, la idea detrás de SVM es
encontrar el hiperplano que mejor separe las dos clases, maximizando el margen
entre los puntos más cercanos de cada clase (llamados vectores de soporte). Este
hiperplano será el margen de decisión usado para posteriormente clasificar al resto
de los elementos.
La Figura 1 muestra una representación visual de un modelo SVM aplicado a un
problema de clasificación binaria. En ella, se observan dos clases claramente
separadas por un hiperplano de separación, que representa el límite de decisión del
modelo SVM. Este hiperplano está posicionado de manera óptima para maximizar el
margen entre las dos clases.
Técnicas de Aprendizaje Automático 7
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
En la figura se muestran, además, los vectores de soporte, que son los puntos de
datos más cercanos al hiperplano de separación. Estos vectores de soporte son
cruciales para la definición del margen máximo y, por lo tanto, para la capacidad del
modelo de generalizar correctamente a nuevos datos.
El margen máximo se representa como la distancia perpendicular desde el
hiperplano de separación a los puntos más cercanos de ambas clases. Este margen
actúa como una «zona segura» que ayuda a prevenir el sobreajuste al separar
claramente las clases y proporcionar una frontera de decisión bien definida.
Figura 1. Representación de un modelo SVM para clasificación binaria. Fuente: elaboración propia.
En la figura se presenta el hiperplano de separación, los vectores de soporte y el
margen máximo.
Técnicas de Aprendizaje Automático 8
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Debido a que, por lo general, no es posible obtener este objetivo de buscar un plano
que separe las clases, en las SVM se proponen las siguientes modificaciones:
▸ Relajar la definición de «separar».
▸ Mejorar y enriquecer el feature space para que la separación sea posible.
Antes de entrar en detalle en el funcionamiento de las máquinas de vector de
soporte, es necesario definir los conceptos de hiperplanos y vectores.
Hiperplano
En geometría, un hiperplano es una generalización n-dimensional de un plano, un
subespacio con una dimensión menos (n-1) que su espacio origen. En el espacio
unidimensional, un hiperplano es un punto; en el espacio bidimensional es una línea;
en el espacio tridimensional es un plano ordinario, y en espacios de cuatro o más
dimensiones se le llama hiperplano.
Por ejemplo, digamos que queremos llevar a cabo un problema de
clasificación y queremos saber si un producto se compra o no (una
clasificación binaria) y si hay solo una característica (por ejemplo, Género)
disponible como característica en el conjunto de datos. Entonces, está en
un espacio unidimensional y la representación del subespacio (el límite de
separación/decisión) será (n-1=0) un espacio de 0 dimensiones (si puedo
llamarlo así), representado con solo un punto que muestra la separación
de clases (compradas o no). Si hay dos características (Edad y Género),
es un espacio bidimensional (2D), con Edad y Género en los ejes X e Y, el
límite de decisión se representará como una línea simple. De manera
similar, si las características son tres (Edad, Género, Ingresos), el límite de
decisión será un plano bidimensional en un espacio tridimensional (n-1).
Además, si tenemos puntos de datos espaciales de cuatro o más
dimensiones, entonces se llama hiperplano con (dimensión n-1). Es
Técnicas de Aprendizaje Automático 9
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
importante tener en cuenta que la cantidad de características para un
problema de aprendizaje automático determinado se puede seleccionar
mediante una técnica llamada «selección de características» (Cai, Luo,
Wang y Yang, 2018), ya que no todas las características son
necesariamente útiles, algunas pueden ser redundantes y crear ruido
innecesario en los datos.
El hiperplano es simplemente un concepto que separa un espacio de n dimensiones
en dos grupos o mitades. En términos de aprendizaje automático, es una forma de
límite de decisión que algoritmos como SVM utilizan para clasificar o separar puntos
de datos. Tiene dos partes, el hiperplano del lado negativo y el hiperplano de la parte
positiva, donde los puntos o instancias de datos pueden encontrarse en cualquiera
de las partes, lo que da lugar al grupo o clase al que pertenecen.
La ecuación general del hiperplano para un espacio de n dimensiones es:
donde el vector:
Se llama vector normal, y β es un vector unitario en el cual la suma de los
cuadrados es 1. Este vector apunta a una dirección ortogonal a la superficie del
hiperplano.
Si proyectamos cada uno de los puntos sobre el vector normal, los puntos que caen
sobre el hiperplano tienen valor 0 al proyectarse. Los puntos por encima del
hiperplano tienen un valor positivo, los puntos por debajo del hiperplano, un valor
negativo; y, además, estos valores son mayores cuanto más lejanos están del
hiperplano. Es decir, el valor que se obtiene al proyectar los puntos sobre el vector
Técnicas de Aprendizaje Automático 10
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
normal es proporcional a la distancia de los puntos al hiperplano. Esta característica
geométrica hace posible el uso de las máquinas de vector de soporte para buscar los
patrones necesarios.
Figura 2. Representación de un hiperplano, un vector normal y la distancia de los puntos proyectados en el
vector normal. Fuente: James, Witten, Hastie y Tibshirani, 2013.
La cuestión es que el hiperplano busca separar dos conjuntos de puntos en dos
regiones distintas. Por ejemplo, en un problema de clasificación el hiperplano puede
separar aquellos puntos que corresponden a personas con un tumor determinado de
aquellas personas sanas.
Sin embargo, para un conjunto de puntos determinados existen múltiples hiperplanos
posibles que nos separan los puntos en dos regiones.
El objetivo de las máquinas de vector de soporte es buscar un hiperplano que separe
las clases en un feature space. Por feature space se entiende un nuevo espacio de
Técnicas de Aprendizaje Automático 11
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
dimensiones diferente al espacio original.
Margen
El margen es la distancia entre el límite de decisión (hiperplano) y los puntos de
datos más cercanos de cada clase. El objetivo de SVM es maximizar este margen
minimizando los errores de clasificación. Un margen mayor indica un mayor grado de
confianza en la clasificación, ya que significa que hay un espacio mayor entre el
límite de decisión y los puntos de datos más cercanos de cada clase. El margen es
una medida de qué tan bien separadas están las clases en el espacio de
características. Las SVM están diseñadas para encontrar el hiperplano que maximiza
este margen, razón por la cual a veces se las denomina clasificadores de margen
máximo.
Vectores de soporte
Son los puntos de datos que se encuentran más cerca del límite de decisión
(hiperplano) en SVM. Estos puntos de datos son importantes porque determinan la
posición y orientación del hiperplano y, por lo tanto, tienen un impacto significativo en
la precisión de la clasificación del SVM. De hecho, SVM recibe el nombre de estos
vectores de soporte porque «soportan» o definen el límite de decisión. Los vectores
de soporte se utilizan para calcular el margen, que es la distancia entre el hiperplano
y los puntos de datos más cercanos de cada clase. El objetivo de las SVM es
maximizar este margen y minimizar los errores de clasificación.
Técnicas de Aprendizaje Automático 12
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.3. Separando por hiperplanos
Dada una serie de puntos en un espacio geométrico que se desea clasificar, se
puede establecer que aquellos puntos que al proyectar sobre el vector normal a un
hiperplano determinado sean > 0 y correspondan a una clase, y aquellos que sean
< 0, a otra clase.
Es decir, de forma matemática:
Si f(X)= β _0+ β _1 X_1+B_2 X_2+ ⋯ +B_p X_P , entonces:
f(X)> 0 establece los puntos en un lado del hiperplano.
f(X)<0 en el otro.
Sin embargo, lo habitual es encontrarse en la situación en la cual existen múltiples
hiperplanos posibles, como lo que se muestra en la Figura 3, y por tanto es necesario
decidir cuál de ellos establecer.
Figura 3. Ejemplo de tres hiperplanos posibles para separar dos conjuntos de clase (izquierda). En el caso
de elegir un hiperplano, los puntos se clasifican en función de cada una de las regiones sombreadas de
rojo y azul (derecha). Fuente: James et al., 2013.
Técnicas de Aprendizaje Automático 13
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.4. Clasificador de margen máximo
En el caso de un problema de clasificación binaria, de todos los hiperplanos posibles
es necesario buscar aquel que nos proporciona la mayor diferencia entre las dos
clases, lo cual se traduce en la mayor distancia entre los puntos que pertenecen a
una clase y a otra. La hipótesis que hay detrás de esto es que suponemos que este
hiperplano será el que tendrá una mayor distancia en el conjunto de test y en las
predicciones futuras.
Esta situación se puede modelar como un problema de optimización con
restricciones, donde es necesario maximizar el margen y, matemáticamente, se
define:
En la siguiente imagen se muestra de forma gráfica el concepto donde la línea
continua resaltada es el maximal-margin classifier, y se muestran dos bandas con
líneas discontinuas que contienen la distancia del hiperplano a los primeros puntos
de cada una de las clases. El objetivo es maximizar la distancia de estas dos bandas.
Técnicas de Aprendizaje Automático 14
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 4. Ejemplo del hiperplano con una separación óptima entre dos conjuntos de puntos de clases
diferentes. Fuente: James et al., 2013.
El principal problema con esta separación óptima del hiperplano es que los datos
habitualmente no son linealmente separables con una recta en el caso de un
espacio de dos dimensiones, como se observa en la siguiente gráfica, donde es
imposible separar los puntos de una clase de los de otra.
Técnicas de Aprendizaje Automático 15
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 5. Ejemplo de un espacio de dos dimensiones donde los puntos no son linealmente separables.
Fuente: James et al., 2013.
Esta situación produce una solución pobre para el clasificador maximal-margin. Por
tanto, el clasificador vector de soporte maximiza un soft margin.
Support Vector Regression
SVR (Support Vector Regression) es una variante de SVM que se utiliza para
resolver problemas de regresión en lugar de clasificación. Mientras que las SVM
tradicionales se centran en encontrar un hiperplano de separación óptimo entre
clases, SVR se enfoca en encontrar una función de regresión que se ajuste a los
datos de manera óptima a la vez que mantiene la cantidad de error dentro de un
cierto límite predefinido.
La idea principal detrás de SVR es encontrar una función que capture la relación
entre las variables independientes (características) y la variable dependiente (la que
se quiere predecir), de manera que minimice el error.
El proceso de entrenamiento de SVR implica encontrar un hiperplano de regresión
óptimo que pase lo más cerca posible de la mayoría de los puntos de datos, dentro
del margen de tolerancia especificada. Los puntos de datos que se encuentran
dentro del margen de tolerancia serán los vectores de soporte.
Técnicas de Aprendizaje Automático 16
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.5. Soft margin
Se puede decir que las instancias de datos son linealmente separables si se puede dibujar
fácilmente un límite o hiperplano de separación que muestre distintivamente los diferentes
grupos de clases. En la Figura 6 se puede ver un ejemplo de datos linealmente separables.
Los puntos de datos linealmente separables requieren, ante todo, clasificadores lineales de
aprendizaje automático.
Figura 6. Datos linealmente separables. Fuente: elaboración propia.
Los datos no linealmente separables son lo opuesto a los puntos de datos linealmente
separables. En la Figura 7 se puede observar que no importa cómo se intente dibujar una
línea recta, algunos puntos de datos se clasificarán erróneamente de una forma u otra.
SVM tiene una forma especial de clasificar este tipo de datos; utiliza funciones del kernel
para representar estos puntos de datos en un espacio de dimensiones superiores y luego
encuentra el hiperplano de separación óptimo.
Técnicas de Aprendizaje Automático 17
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 7. Datos que no son linealmente separables. Fuente: elaboración propia.
La primera solución propuesta para abordar el problema anterior en el cual los puntos no
son linealmente separables es maximizar un soft margin. En otras palabras, el clasificador
permite realizar algunos errores en la clasificación. El concepto de soft margin (o «margen
suave») es una extensión SVM que permite cierta flexibilidad en la separación de clases.
En contraste con el enfoque de hard margin («margen duro»), donde se requiere que todas
las muestras de entrenamiento estén correctamente clasificadas y se encuentren fuera del
margen, el margen suave permite que algunas muestras se encuentren dentro del margen
o incluso en el lado incorrecto del hiperplano de separación.
De forma gráfica, en la siguiente figura se observa:
Técnicas de Aprendizaje Automático 18
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 8. Ajuste de un clasificador de vector de soporte a pocos datos. Fuente: James et al., 2013.
El hiperplano se muestra con una línea sólida y los márgenes con una punteada. La imagen
de la derecha muestra el efecto cuando aparecen dos nuevas observaciones (11 y 12), las
cuales están en el lado incorrecto del hiperplano y de los márgenes.
Matemáticamente el problema se define de la siguiente forma:
Modificando el parámetro C de la ecuación anterior, el cual se conoce como función de
coste, se puede hacer el margen más grande o pequeño. En concreto, un valor de C más
grande hace el margen más pequeño, y a la inversa un valor C más pequeño, que hace el
margen más grande.
En la siguiente figura se muestra un hiperplano y los márgenes correspondientes en función
de diferente valor de C.
Técnicas de Aprendizaje Automático 19
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 9. Diferentes fronteras de decisión en los márgenes de una soft margin en función de diferentes valores de
C, y utilizando los mismos puntos y el mismo hiperplano. Fuente: James et al., 2013.
Ten en cuenta que el margen más grande es el de la gráfica superior izquierda y el más
pequeño el de la inferior derecha.
El objetivo sigue siendo maximizar el margen, pero ahora se permite un cierto grado de
violación del margen para adaptarse a los datos de entrenamiento que no se pueden
separar perfectamente con un hiperplano.
Problema con las fronteras lineales
Muchas veces las fronteras lineales siguen sin funcionar, independientemente del valor de
coste C que se utilice. Por ejemplo, en la siguiente gráfica se muestra un problema donde la
separación necesaria entre los puntos de una clase y la otra es no lineal.
Técnicas de Aprendizaje Automático 20
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 10. Ejemplo donde no es posible una separación lineal entre dos clases. Fuente: James et al., 2013.
Para solucionar este problema donde no es posible realizar una separación entre dos
clases, una opción es incrementar el espacio de las variables por medio de
transformaciones; es decir, pasar de un espacio n-dimensional a un espacio de D
dimensiones D > n. Una vez realizada esta transformación, se debería ajustar un
clasificador de vector de soporte en este nuevo espacio. El objetivo es obtener fronteras
de decisión no lineales sobre el espacio original.
Por ejemplo, si tenemos datos de entrada en dos dimensiones (X1, X2) es posible utilizar el
siguiente espacio de 6 dimensiones: (X1, X2, X12, X22, X1 X2) siendo, por tanto, la frontera
de decisión:
Esta transformación conlleva fronteras de decisión no lineales en el espacio original.
Técnicas de Aprendizaje Automático 21
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Polinomios cúbicos
Utilizando una transformación en forma de polinomios cúbicos se puede pasar de 2 a 9
variables. De esta forma, el clasificador en el nuevo espacio soluciona el problema de
buscar los patrones en el espacio con menor dimensiones.
En la Figura 11 se muestra el resultado de las fronteras de separación obtenidas por medio
de una transformación en polinomios cúbicos, resultado del cálculo de la siguiente
ecuación:
Figura 11. Ejemplo de las fronteras de decisión no lineales obtenidas por medio de una transformación obtenida
con polinomios cúbicos. Fuente: James et al., 2013.
Técnicas de Aprendizaje Automático 22
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.6. El truco del kernel
Las expansiones de las variables con polinomios, especialmente aquellas con
grandes dimensiones, son computacionalmente costosas. Existe una solución más
elegante y controlada de introducir no linealidad que se utiliza en las máquinas vector
de soporte por medio del uso de kernels. El kernel de un operador A denotado por
ker es el conjunto de todos los vectores cuya imagen sea el vector nulo:
Los kernels se apoyan en concepto del producto vectorial de los vectores de soporte.
Se trata de funciones que reciben dos vectores como parámetros. Uno de los kernels
más utilizados es el de base radial que asume que el feature space es de altas
dimensiones y se define con la siguiente función matemática:
El uso de kernels permite obtener fronteras de decisión no lineales por medio de
transformaciones matemáticas sin necesidad de tener que realizar transformaciones
con polinomios. En la siguiente figura se muestran las fronteras de decisión no
lineales obtenidas por medio del uso de un kernel de base radial.
Técnicas de Aprendizaje Automático 23
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 12. Ejemplo de las fronteras de decisión no lineales obtenidas por medio del uso de un kernel de
base radial. Fuente: James et al., 2013.
Los kernels o funciones de kernel son métodos que los clasificadores lineales como
SVM utilizan para clasificar puntos de datos no linealmente separables. Esto se hace
representando los puntos de datos en un espacio de mayor dimensión que su
original. Por ejemplo, unos datos 1D se pueden representar como datos 2D en el
espacio, unos datos 2D se pueden representar como datos 3D, etc. SVM vuelve a
representar inteligentemente puntos de datos no lineales utilizando cualquiera de las
funciones del kernel, de manera que parezca que los datos se han transformado, y
luego encuentra el hiperplano de separación óptimo. Sin embargo, en realidad los
datos siguen siendo los mismos, en realidad no se han transformado. Por eso se le
llama kernel trick.
Técnicas de Aprendizaje Automático 24
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
El truco del kernel ofrece una forma de calcular relaciones entre puntos de datos
utilizando funciones de kernel y de representar los datos de una manera más
eficiente con menos cálculo. Los modelos que utilizan esta técnica se denominan
modelos kernelizados.
Hay varias funciones que utiliza SVM para realizar esta tarea. Algunos de los más
comunes son:
▸ El kernel lineal: se utiliza para datos lineales. Esto simplemente representa los
puntos de datos mediante una relación lineal.
▸ Función kernel polinómica: transforma puntos de datos utilizando el producto
escalar y transformando los datos a una dimensión n. n podría ser cualquier valor de
2, 3, etc., es decir, la transformación será un producto al cuadrado o superior. Por lo
tanto, representa datos en un espacio de dimensiones superiores utilizando los
nuevos puntos transformados.
▸ La función de base radial (RBF): esta función se comporta como un modelo de
vecino más cercano ponderado. Transforma los datos representándolos en infinitas
dimensiones y luego utiliza el vecino más cercano ponderado (observación con
mayor influencia en el nuevo punto de datos) para la clasificación. La función radial
puede ser Gaussiana o Laplace. Esto depende de un hiperparámetro conocido como
gamma. Este es el kernel más utilizado.
▸ La función sigmoide: también conocida como función tangente hiperbólica ( tanh).
La función sigmoide mide la similitud entre dos vectores de características utilizando
la función tanh de la combinación lineal de estos dos vectores de características,
más un término de sesgo. Tiene la forma de una curva S y produce valores en el
rango (-1, 1). Esta función no se utiliza comúnmente en comparación con los kernels
lineales o RBF, ya que puede ser menos efectiva en muchos problemas y puede ser
más propensa al sobreajuste.
Técnicas de Aprendizaje Automático 25
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Figura 13. Tabla resumen con la fórmula y los parámetros de las funciones de kernel más ampliamente
usadas. Fuente: Ren, Hu y Miao, 2016.
Entre el material audiovisual encontrarás el vídeo Ejemplo en Python de SVM, donde
se muestra un ejemplo de un clasificador de especies de Iris realizado en Python con
la librería scikit learn. Con este vídeo se muestra cómo realizar la implementación de
un clasificador SVM, con diferentes configuraciones de parámetros.
Accede al vídeo:
https://unir.cloud.panopto.eu/Panopto/Pages/Embed.aspx?id=f374b9e4-f53d-
44f4-9d1b-b12200b508ab
Técnicas de Aprendizaje Automático 26
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.7. Aplicaciones de SVM
Las máquinas de vectores de soporte se han aplicado con éxito a diversos
problemas del mundo real en diferentes dominios. A continuación, se muestran
algunas aplicaciones notables de SVM:
▸ Clasificación de imágenes: las SVM se han utilizado ampliamente para el
reconocimiento de objetos de imágenes, el reconocimiento de dígitos escritos a
mano y el reconocimiento óptico de caracteres (OCR). Se han empleado en
sistemas como el filtrado de spam basado en imágenes y en sistemas de detección
de rostros utilizados para seguridad, vigilancia e identificación biométrica
(Mangasarian, Street y Wolberg, 1995).
▸ Clasificación de texto: las SVM son efectivas para tareas de categorización de
texto, como análisis de opiniones, detección de spam y clasificación de temas
(Mullen y Collier, 2004).
▸ Bioinformática: las SVM se han aplicado en bioinformática para tareas como la
predicción de la estructura de proteínas, el análisis de la expresión genética y la
clasificación del ADN (Gao, Ye, Lu y Huang, 2017).
▸ Detección de fraude y seguridad: SVM se emplea para la detección de fraudes en
transacciones financieras, identificación de anomalías en redes de computadoras, y
clasificación de spam en correos electrónicos (Bhattacharyya, Jha, Tharakunnel, y
Westland, 2011).
Las SVM también se han aplicado en otros dominios, como las geociencias, el
marketing y la visión por computadora, demostrando su versatilidad y eficacia en
diversos dominios problemáticos.
Técnicas de Aprendizaje Automático 27
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.8. Cuaderno de ejercicios
▸ Dado el siguiente conjunto de datos pertenecientes a dos clases:
Clase -1 [[1,9],[5,5],[1,1]]
Clase +1 [[8,5],[13,1],[13,9]]
Dibuja los puntos en un plano e identifica los vectores de soporte y la frontera de
decisión para un SVM lineal con un margen máximo para este conjunto de datos.
SOLUCIÓN
▸ Dibuja el hiperplano . Señala el conjunto de puntos para los
cuales , y aquellos para los que .
Técnicas de Aprendizaje Automático 28
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
SOLUCIÓN
▸ En el mismo gráfico, dibuja el hiperplano -2 + X1+3X1-X2=0. Indica qué puntos
cumplen la condición > 0 y cuáles < 0.
Técnicas de Aprendizaje Automático 29
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
▸ Generar un conjunto de datos simulado de dos clases con 100 observaciones y dos
características en las que exista una separación visible pero no lineal entre las dos
clases. Se debe mostrar que, en esta configuración, una máquina de vectores de
soporte con un núcleo polinómico (con grado mayor que 1) o un núcleo radial
superará a un clasificador de vectores de soporte en los datos de entrenamiento.
¿Qué técnica funciona mejor con los datos de prueba? Se deben mostrar los gráficos
que avalen la respuesta y analizar las tasas de error de prueba y entrenamiento para
respaldar sus afirmaciones.
SOLUCIÓN
# Generate the dataset
# https://scikit-
learn.org/stable/modules/generated/sklearn.datasets.make_moons.html
X, y = make_moons(n_samples=100, noise=0.1, random_state=42)
# Plot the dataset
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='bwr')
plt.xlabel('X1')
plt.ylabel('X2')
plt.show()
Técnicas de Aprendizaje Automático 30
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.5,
random_state=5)
# Fit a support vector classifier (kernel=linear)
svc = SVC(kernel='linear')
svc.fit(X_train, y_train)
plot_decision_regions(X_train, y_train, clf=svc,
X_highlight=svc.support_vectors_)
Técnicas de Aprendizaje Automático 31
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
# Support vector classifier model summary
print('number of support vectors: ', sum(svc.n_support_))
print('indices of support vectors: ', svc.support_)
number of support vectors: 20
indices of support vectors: [14 15 16 18 26 27 37 41 44 45 3 12 17 23 31 35
40 43 47 49]
# training set performance
y_pred = svc.predict(X_train)
cm = confusion_matrix(y_train, y_pred, labels=svc.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=svc.classes_)
Técnicas de Aprendizaje Automático 32
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
disp.plot()
SVM ha clasificado erróneamente aproximadamente el 13% del conjunto de
entrenamiento.
# Test set performance
y_pred = svc.predict(X_test)
cm = confusion_matrix(y_test, y_pred, labels=svc.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=svc.classes_)
disp.plot()
Técnicas de Aprendizaje Automático 33
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
SVM ha clasificado erróneamente aproximadamente el 17% del conjunto de
entrenamiento.
# Support Vector Machine with Polynomial Kernel
params = {'C': 10**np.linspace(-1, 3, 5),
'degree' : [2, 3, 4, 5, 6]}
svm = SVC(kernel='poly')
tune = GridSearchCV(svm, params, cv=10)
tune.fit(X, y)
pd.DataFrame(tune.cv_results_).loc[:, ['param_degree', 'param_C',
'mean_test_score', 'std_test_score']]
tune.best_params_
Técnicas de Aprendizaje Automático 34
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
{'C': 10.0, 'degree': 3}
svm = SVC(kernel='poly', C=10, degree=3)
svm.fit(X_train, y_train)
plot_decision_regions(X_train, y_train, clf=svm,
X_highlight=svm.support_vectors_)
# SVM - training set performance (with degree=3)
y_pred = svm.predict(X_train)
cm = confusion_matrix(y_train, y_pred, labels=svm.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=svm.classes_)
disp.plot()
Técnicas de Aprendizaje Automático 35
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
El modelo SVM con grado 3 ha clasificado erróneamente sólo el 5% del
conjunto de entrenamiento.
# SVM - test set performance (with degree=3)
y_pred = svm.predict(X_test)
cm = confusion_matrix(y_test, y_pred, labels=svm.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=svm.classes_)
disp.plot()
Técnicas de Aprendizaje Automático 36
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
El modelo SVM con un grado de 3 ha clasificado erróneamente sólo el 13% del
conjunto de test. Con base en estos resultados, podemos concluir que la SVM
con un kernel no lineal (polinomio - cúbico) se desempeña mejor que la SVM
con un kernel lineal tanto en el conjunto de entrenamiento como en el de
test.
# Support Vector Machine with Radial Kernel
params = {'C': 10**np.linspace(-1, 3, 5),
'gamma': [0.5, 1, 2, 3, 4]}
svm2 = SVC(kernel='rbf')
tune2 = GridSearchCV(svm2, params, cv=10)
tune2.fit(X, y)
pd.DataFrame(tune2.cv_results_).loc[:, ['param_gamma', 'mean_test_score',
Técnicas de Aprendizaje Automático 37
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
'std_test_score']]
tune2.best_params_
svm2 = SVC(kernel='rbf', C=1, gamma=4)
svm2.fit(X_train, y_train)
plot_decision_regions(X_train, y_train, clf=svm2,
X_highlight=svm2.support_vectors_)
# SVM - training set performance (with radial kernel)
y_pred = svm2.predict(X_train)
cm = confusion_matrix(y_train, y_pred, labels=svm2.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=svm2.classes_)
disp.plot()
Técnicas de Aprendizaje Automático 38
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
La SVM con kernel radial ha logrado una clasificación perfecta en el
conjunto de entrenamiento, sin observaciones mal clasificadas.
# SVM - test set performance (with radial kernel)
y_pred = svm2.predict(X_test)
cm = confusion_matrix(y_test, y_pred, labels=svm2.classes_)
disp = ConfusionMatrixDisplay(confusion_matrix=cm,
display_labels=svm2.classes_)
disp.plot()
Técnicas de Aprendizaje Automático 39
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
La SVM con kernel radial también logró una clasificación perfecta en el conjunto de
prueba, sin observaciones mal clasificadas.
Con base en los resultados obtenidos, se puede concluir que tanto el SVM con un
kernel polinomial cúbico como el SVM con un kernel radial superan al modelo SVC
con un kernel lineal en estos datos. Sin embargo, es importante tener en cuenta que
la SVM con un kernel radial puede ser propensa a sobreajustar los datos.
▸ Aplique SVM al conjunto de datos del load_breast_cancer() . Intente entrenar con
varios valores de C con un kernel lineal. ¿Puede un SVM lineal realizar una buena
separación del espacio de características?
SOLUCIÓN
cancer = datasets.load_breast_cancer()
print("Características: ", cancer.feature_names)
Técnicas de Aprendizaje Automático 40
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
#cancer.data
df = pd.DataFrame(cancer.data, columns=['mean radius', 'mean texture',
'mean perimeter', 'mean area','mean smoothness', 'mean compactness', 'mean
concavity','mean concave points', 'mean symmetry', 'mean fractal
dimension','radius error','texture error','perimeter error','area
error','smoothness error','compactness error','concavity error','concave
points error','symmetry error','fractal dimension error','worst
radius','worst texture','worst perimeter','worst area','worst
smoothness','worst compactness','worst concavity','worst concave
points','worst symmetry','worst fractal dimension'])
x = df # Todas las características
y = cancer.target # Todas las etiquetas
x_train, x_test, y_train, y_test =
sklearn.model_selection.train_test_split(x, y, test_size=0.3)
print(x_train[:5], y_train[:5])
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
x_train = sc.fit_transform(x_train)
x_test = sc.transform(x_test)
from sklearn.svm import SVC
classifierSVML = SVC(kernel = 'linear', random_state = 0)
classifierSVML.fit(x_train, y_train)
from sklearn.model_selection import KFold
Técnicas de Aprendizaje Automático 41
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
from sklearn.model_selection import GridSearchCV
num_folds = 10
c_values = [0.1, 0.3, 0.5, 0.7, 0.9, 1.0, 1.3, 1.5, 1.7, 2.0]
kernel_values = ['linear', 'poly', 'rbf', 'sigmoid']
param_grid = dict(C=c_values, kernel=kernel_values)
model = SVC()
kfold = KFold(n_splits=num_folds)
grid = GridSearchCV(estimator=model, param_grid=param_grid,
scoring='accuracy', cv=kfold)
grid_result = grid.fit(x_train, y_train)
print("Mejor: %f usando %s" % (grid_result.best_score_,
grid_result.best_params_))
means = grid_result.cv_results_['mean_test_score']
stds = grid_result.cv_results_['std_test_score']
params = grid_result.cv_results_['params']
for mean, stdev, param in zip(means, stds, params):
print("%f (%f) with: %r" % (mean, stdev, param))
classifierSVML = SVC(C=0.7, kernel = 'linear', random_state = 0)
classifierSVML.fit(x_train, y_train)
Y_pred = classifierSVML.predict(x_test)
Técnicas de Aprendizaje Automático 42
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, Y_pred)
cm
Técnicas de Aprendizaje Automático 43
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
7.9. Referencias bibliográficas
Bhattacharyya, S., Jha, S., Tharakunnel, K. y Westland, J. C. (2011). Data mining for
credit card fraud: A comparative study. Decision Support Systems, 50(3), 602-613.
Bishop, C. M. (2006). Pattern recognition and machine learning. Springer.
Cai, J., Luo, J., Wang, S. y Yang, S. (2018). Feature selection in machine learning: A
new perspective. Neurocomputing, 300, 70-79.
Cortes, C. y Vapnik, V. (1995). Support-vector networks. Machine learning, 20(3),
273-297.
Gao, L., Ye, M., Lu, X. y Huang, D. (2017). Hybrid method based on information gain
and support vector machine for gene selection in cancer classification. Genomics,
Proteomics and Bioinformatics, 15(6), 389-395.
Goodfellow, I., Bengio, Y. y Courville, A. (2016). Deep learning. MIT press.
Hastie, T., Tibshirani R., Friedman, J. (2009). The Elements of Statistical Learning.
Springer.
James, G., Witten, D., Hastie, T y Tibshirani, R. (2013). An Introduction to Statistical
Leaerning with Applications. Springer.
Mangasarian, O. L., Street, W. N. y Wolberg, W. H. (1995). Breast cancer diagnosis
and prognosis via linear programming. Operations Research, 43(4), 570-577.
Maulud, D. y Abdulazeez, A. M. (2020). A review on linear regression comprehensive
in machine learning. Journal of Applied Science and Technology Trends, 1 (2), 140-
147.
Molnar, C. (2020). Interpretable machine learning. Lulu. com.
Técnicas de Aprendizaje Automático 44
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave
Mullen, T. y Collier, N. (2004). Sentiment analysis using support vector machines with
diverse information sources. Proceedings of the 2004 conference on empirical
methods in natural language processing (pp. 412-418).
Ren, Y., Hu, F. y Miao, H. (2016). The optimization of kernel function and its
parameters for SVM in well-logging. 2016 13th International Conference on Service
Systems and Service Management (ICSSSM), 1-5.
Vapnik, V. N. (1997). The Support Vector method. En W. Gerstner, A. Germond, M.
Hasler, J. D. Nicoud (eds), Artificial Neural Networks — ICANN'97. ICANN 1997.
Lecture Notes in Computer Science, vol 1327. Springer.
https://doi.org/10.1007/BFb0020166
Técnicas de Aprendizaje Automático 45
Tema 7. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
A fondo
ISLR Chapter 9: Support Vector Machines
Data Science Analytics. (2018, junio 15). StatsLearning Chapter 9 - part 1 [Vídeo].
Y o u T u b e . https://www.youtube.com/playlist?list=PL5-
da3qGB5IDl6MkmovVdZwyYOhpCxo5o
Primer vídeo de la lista de reproducción con un conjunto de lecciones de los
profesores de Stanford Trevor, Hastie and Rob Tibshirani, autores del libro An
Introduction to Statistical Learning with Applications in R (ISLR). En esta lista están
todas las lecciones relativas a SVM.
Técnicas de Aprendizaje Automático 46
Tema 7. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo
Support Vector Machines in Python with scikit
learn
Scikit learn. (s.f.). 1.4. Support Vector Machines. https://scikit-
learn.org/stable/modules/svm.html
Documentación oficial de la librería scikit learn sobe su implementación de SVM.
Este recurso es de gran utilidad para conocer las características propias de la
implementación de SVM en esta librería en concreto. Las explicaciones están
acompañadas de ejemplos didácticos.
Técnicas de Aprendizaje Automático 47
Tema 7. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo
Ejemplo para predicción sobre comportamientos
de clientes
Worrel, N. (2020). Customer Predictive Analytics with Support Vector Machines
(SVM) and Plotly . Medium. https://towardsdatascience.com/predictive-analytics-on-
customer-behavior-with-support-vector-machines-svm-7e68fd2be610
Artículo de blog en el que explica de manera detallada cómo hace una
implementación de un clasificador de clientes para descubrir qué métodos de
marketing son más eficaces para determinados segmentos de clientes. Al final se
buscará predecir si un cliente responderá o no a una llamada de ventas en función
de sus datos demográficos y de comportamiento pasado. En el artículo se muestra el
desarrollo completo de la construcción de un clasificador incluyendo la etapa de
EDA, y de evaluación. Junto con la implementación se aporta una explicación de lo
que es SVM.
Técnicas de Aprendizaje Automático 48
Tema 7. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo
Ejemplo de implementación de Support Vector
Regression
Rasifaghihi, N. (2023). From Theory to Practice: Implementing Support Vector
Regression for Predictions in Python. Medium.
https://medium.com/@niousha.rf/support-vector-regressor-theory-and-coding-
exercise-in-python-ca6a7dfda927
Artículo de blog en el que explica de manera detallada cómo aplicar SVR a un caso
práctico. En el artículo se explican las características propias de las tareas de
regresión y cómo se abordan con SVR, para después mostrar su uso con la librería
scikit learn.
Técnicas de Aprendizaje Automático 49
Tema 7. A fondo
© Universidad Internacional de La Rioja (UNIR)
Test
1. ¿Cuál de las siguientes afirmaciones sobre las máquinas de vector de soporte es
falsa?
A. Las SVM son eficaces para resolver problemas de clasificación binaria y
también se pueden extender a problemas de regresión.
B. El objetivo principal de las SVM es encontrar un hiperplano de separación
óptimo que maximice el margen entre las clases en el espacio de
características.
C. Las SVM pueden manejar eficazmente conjuntos de datos de alta
dimensionalidad y son robustas frente al sobreajuste cuando se utilizan
técnicas como el margen suave y la optimización convexa.
D. Las SVM siempre requieren que los datos sean linealmente separables en
el espacio de características.
2. ¿Cuál de las siguientes afirmaciones sobre los hiperplanos es cierta?
A. Un hiperplano solo se define para dos dimensiones.
B. Límite de decisión entre clases que separa de manera óptima las
instancias de datos, en espacio de características multidimensional.
C. El hiperplano en SVM siempre pasa por el origen en el espacio de
características.
D. Un hiperplano busca el sobreajuste de las instancias de datos.
Técnicas de Aprendizaje Automático 50
Tema 7. Test
© Universidad Internacional de La Rioja (UNIR)
Test
3. ¿Cuál de las siguientes afirmaciones sobre los vectores en SVM es falsa?
A. Los vectores de soporte en SVM son puntos de datos que se encuentran
más cerca del límite de decisión (hiperplano) entre diferentes clases.
B. La posición y la orientación del hiperplano en SVM están determinadas por
los vectores de soporte.
C. Los vectores de soporte son cruciales para definir el margen, que es la
distancia entre el hiperplano y los puntos de datos más cercanos de cada
clase.
D. Los vectores de soporte en SVM se seleccionan aleatoriamente a partir de
los datos de entrenamiento.
4. ¿Cuál de las siguientes afirmaciones es cierta?
A. Para una serie de datos de entrenamiento de un problema binario existen
múltiples hiperplanos posibles.
B. Solo existe un hiperplano posible para cada uno de los conjuntos de datos.
C. Los hiperplanos hay que crearlos únicamente para realizar predicciones.
D. El objetivo de SVM es encontrar el hiperplano óptimo que maximice el
margen entre todos los puntos de datos sin importar el error de clasificación.
Técnicas de Aprendizaje Automático 51
Tema 7. Test
© Universidad Internacional de La Rioja (UNIR)
Test
5. ¿Cuál de las siguientes afirmaciones sobre un clasificador de margen máximo es
falsa?
A. El clasificador de margen máximo, implementado en SVM, tiene como
objetivo encontrar un hiperplano que maximice el margen entre clases.
B. El clasificador de margen máximo selecciona el hiperplano que mejor
separa los datos de entrenamiento y maximiza la distancia (margen) a los
puntos de datos más cercanos de cada clase.
C. El clasificador de margen máximo está diseñado para mejorar el
rendimiento de la generalización maximizando la separación entre clases,
reduciendo el riesgo de sobreajuste.
D. El clasificador de margen máximo siempre requiere que las clases sean
perfectamente separables mediante un hiperplano.
6. Indica cuál de las siguientes afirmaciones sobre soft margin es falsa.
A. SVM de soft margin permite cierta clasificación errónea de los puntos de
datos de entrenamiento al introducir variables débiles que relajan la
rigurosidad del margen.
B. SVM de soft margin se utiliza cuando los datos de entrenamiento no son
perfectamente separables por un hiperplano, lo que permite un límite más
flexible que puede ser adecuado con datos ruidosos.
C. El parámetro de regularización C en SVM soft margin controla el equilibrio
entre maximizar el margen y minimizar el error de clasificación en los datos de
entrenamiento.
D. SVM de soft margin siempre funciona mejor que SVM de hard margin en
conjuntos de datos linealmente separables.
Técnicas de Aprendizaje Automático 52
Tema 7. Test
© Universidad Internacional de La Rioja (UNIR)
Test
7. ¿Cuál de las siguientes afirmaciones sobre el parámetro de regularización C en
SVM es falsa?
A. El parámetro de regularización C en SVM controla el equilibrio entre
maximizar el margen y minimizar el error de clasificación en los datos de
entrenamiento.
B. Un valor más pequeño de C conduce a un margen más amplio, pero puede
dar lugar a más errores de entrenamiento permitidos por el modelo.
C. Un valor mayor de C da como resultado un margen más estrecho, pero
reduce la cantidad de errores de entrenamiento tolerados por el modelo, lo
que podría provocar un sobreajuste de los datos de entrenamiento.
D. Aumentar el valor de C en SVM siempre mejora el rendimiento del modelo
en datos no vistos.
8. La expansión en forma de polinomios:
A. Permite capturar relaciones no lineales entre las características originales
al mapear los datos a un espacio de características de mayor dimensión.
B. La expansión en forma de polinomios en SVM solo se puede realizar
utilizando un kernel lineal.
C. La expansión en forma de polinomios en SVM siempre mejora el
rendimiento del modelo en comparación con un enfoque lineal.
D. La expansión en forma de polinomios en SVM transforma automáticamente
el espacio de características original a un espacio de mayor dimensión sin
introducir complejidad adicional.
Técnicas de Aprendizaje Automático 53
Tema 7. Test
© Universidad Internacional de La Rioja (UNIR)
Test
9. ¿Cuál de las siguientes afirmaciones es una ventaja de los kernels?
A. Permiten utilizar un menor volumen de información.
B. El coste computacional es menor al utilizar kernels.
C. Los kernels permiten obtener fronteras de decisión no lineales.
D. Los kernels reducen la dimensionalidad de los datos al mapearlos a un
espacio de características mayor.
10. ¿Cuál de las siguientes afirmaciones sobre la función sigmoide es falsa?
A. La función de kernel sigmoide en SVM se define como
donde α y c son parámetros ajustables.
B. La función de kernel sigmoide puede ser útil para modelar relaciones no
lineales en SVM y puede capturar patrones complejos en los datos.
C. La función de kernel sigmoide transforma los datos a un espacio de
características de mayor dimensión utilizando una función sigmoide para
facilitar la separación lineal de clases.
D. La función de kernel sigmoide en SVM siempre produce un mejor
rendimiento que otros kernels, como el kernel lineal o el kernel polinomial.
Técnicas de Aprendizaje Automático 54
Tema 7. Test
© Universidad Internacional de La Rioja (UNIR)