Apoyar la regresión vectorial en el aprendizaje automático

Conteúdo

Desbloqueo de un mundo nuevo con el algoritmo de regresión vectorial de soporte

Las máquinas de vectores de soporte (SVM) se utilizan popular y ampliamente para problemas de clasificación en el aprendizaje automático. A menudo me he basado en esto no solo en proyectos de aprendizaje automático, sino también cuando quiero un resultado rápido en un hackathon.

¿Pero SVM para análisis de regresión? ¡Ni siquiera había considerado la posibilidad por un tiempo! E incluso ahora, cuando mencionoRegresión vectorial de soportefrente a los principiantes en aprendizaje automático, a menudo tengo una expresión de perplejidad. eu entendo: la mayoría de los cursos y expertos ni siquiera mencionan la regresión vectorial de soporte (SVR) como un algoritmo de aprendizaje automático.

support-vector-regression-7252922

Pero SVR tiene sus usos, como verá en este tutorial. Primero entenderemos rápidamente qué es SVM, antes de sumergirnos en el mundo de la regresión vectorial de soporte y cómo implementarlo en Python.

Observação: Puede obtener información sobre las máquinas de vectores de soporte y los problemas de regresión en formato de curso aquí (É grátis!):

Esto es lo que cubriremos en este tutorial de regresión de vectores de soporte:

  • ¿Qué es una máquina de vectores de soporte (SVM)?
  • Hiperparámetros del algoritmo de máquina de vectores de soporte
  • Introducción a la regresión de vectores de soporte (SVR)
  • Implementación de la regresión de vectores de soporte en Python

¿Qué es una máquina de vectores de soporte (SVM)?

Então, ¿qué es exactamente Support Vector Machine (SVM)? Comenzaremos entendiendo SVM en términos simples. Digamos que tenemos un diagrama de dos clases de etiquetas como se muestra en la siguiente figura:

svr2-9542020

¿Puedes decidir cuál será la línea de separación? Es posible que se le haya ocurrido esto:

svr3-5222394

La línea separa bastante las clases. Esto es lo que esencialmente hace SVM: separación de clases simple. Agora, ¿cuáles son los datos?

svr4-9405554

Aqui, no tenemos una línea simple que separe estas dos clases. Así que ampliaremos nuestra dimensão e introduciremos una nueva dimensión a lo largo del eje z. Ahora podemos separar estas dos clases:

svr5-2176777

Cuando transformamos esta línea de nuevo al plano original, se asigna al límite circular como lo he mostrado aquí:

svr6-5864528

¡Esto es exactamente lo que hace SVM! Intenta encontrar una línea / hiperplano (en un espacio multidimensional) que separe estas dos clases. Luego clasifica el nuevo punto en función de si se encuentra en el lado positivo o negativo del hiperplano según las clases a predecir.

Hiperparámetros del algoritmo de máquina de vectores de soporte (SVM)

Hay algunos parametros importantes de SVM que debe conocer antes de continuar:

  • Núcleo: Un kernel nos ayuda a encontrar un hiperplano en el espacio dimensional superior sin aumentar el costo computacional. Em geral, el costo computacional aumentará si aumenta la dimensión de los datos. Este aumento de dimensión es necesario cuando no podemos encontrar un hiperplano de separación en una dimensión determinada y debemos movernos en una dimensión superior:

hyperplane-2180294

  • Hiperplano: Esta es básicamente una línea de separación entre dos clases de datos en SVM. Pero en la regresión de vectores de soporte, esta es la línea que se utilizará para predecir la salida continua
  • Límite de decisión: Un límite de decisión se puede considerar como una línea de demarcación (para simplificar) en un lado de la cual se encuentran los ejemplos positivos y en el otro lado se encuentran los ejemplos negativos. En esta misma línea, los ejemplos pueden clasificarse como positivos o negativos. Este mismo concepto de SVM se aplicará también en la regresión de vectores de soporte

Para comprender SVM desde cero, recomiendo este tutorial: Comprender el algoritmo de Support Vector Machine (SVM) a partir de ejemplos.

Introducción a la regresión de vectores de soporte (SVR)

La regresión vectorial de soporte (SVR) utiliza el mismo principio que SVM, pero para problemas de regresión. Dediquemos unos minutos a comprender la idea detrás de SVR.

La idea detrás de la regresión de vectores de soporte

El problema de la regresión es encontrar una función que se aproxime al mapeo de un dominio de entrada a números reales sobre la base de una muestra de Treinamento. Así que ahora profundicemos y entendamos cómo funciona realmente la RVS.

svr1-1036291

Considere estas dos líneas rojas como el límite de decisión y la línea verde como el hiperplano. Nosso objetivo, cuando estamos avanzando con SVR, es básicamente considerar los puntos que están dentro de la línea límite de decisión. Nuestra mejor línea de ajuste es el hiperplano que tiene un número máximo de puntos.

Lo primero que entenderemos es cuál es el límite de decisión (¡la línea roja de peligro arriba!). Considere que estas líneas están a cualquier distancia, Digamos “uma”, del hiperplano. Então, estas son las líneas que dibujamos a la distancia ‘+ ay ‘-adel hiperplano. Esta ‘aen el texto se conoce básicamente como épsilon.

Suponiendo que la ecuación del hiperplano es la siguiente:

Y = wx+b (equation of hyperplane)

Entonces las ecuaciones de límite de decisión se convierten en:

wx+b= +a

wx+b= -a

Portanto, cualquier hiperplano que satisfaga nuestra RVS debería satisfacer:

-uma < E- wx+b < +uma 

Nuestro principal objetivo aquí es decidir un límite de decisión a una distancia ‘adel hiperplano original, de modo que los puntos de datos más cercanos al hiperplano o los vectores de soporte estén dentro de esa línea límite.

Portanto, vamos a tomar solo aquellos puntos que están dentro del límite de decisión y tienen la menor tasa de error, o están dentro del Margem de Tolerancia. Esto nos da un modelo de mejor ajuste.

Implementación de regresión vectorial de soporte (SVR) e Python

¡Es hora de ponernos nuestros sombreros de codificación! Nesta secção, entenderemos el uso de la regresión de vectores de soporte con la ayuda de un conjunto de datos. Aqui, tenemos que predecir el salario de un empleado dadas algunas variables independientes. ¡Un proyecto clásico de análisis de recursos humanos!

data-5974056

Paso 1: importar as bibliotecas

Paso 2: leer el conjunto de datos

Paso 3: Escalado de funciones

Un conjunto de datos del mundo real contiene características que varían en magnitudes, unidades y rango. Sugeriría realizar la normalización cuando la escala de una característica es irrelevante o engañosa.

Feature Scaling básicamente ayuda a normalizar los datos dentro de un rango particular. Normalmente, varios tipos de clases comunes contienen la función de escalado de características para que realicen la escala de características automáticamente. Porém, la clase SVR no es un tipo de clase de uso común, por lo que deberíamos realizar el escalado de características con Python.

Paso 4: ajuste de SVR al conjunto de datos

El kernel es la característica más importante. Hay muchos tipos de núcleos: lineales, gaussianos, etc. Cada uno se utiliza según el conjunto de datos. Para mais informações sobre este, lea esto: Soporte Vector Machine (SVM) em Python e R

Paso 5. Predecir un nuevo resultado

Então, la predicción para y_pred (6, 5) será 170,370.

Paso 6. Visualización de los resultados de SVR (para una resolução más alta y una curva más suave)

graph-7581076

Esto es lo que obtenemos como salida: la línea de mejor ajuste que tiene un número máximo de puntos. ¡Bastante preciso!

Notas finais

Podemos pensar en la regresión de vectores de soporte como la contraparte de SVM para los problemas de regresión. SVR reconoce la presencia de no linealidad en los datos y proporciona un modelo de predicción competente.

Me encantaría escuchar sus pensamientos e ideas sobre el uso de SVR para el análisis de regresión. ¡Conéctese conmigo en la sección de comentarios a continuación e ideemos!

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.