Machine learning en estado puro. En este artículo vas a descubrir unas de las máquinas matemáticas que mejor funcionan 🙂 que te va a permitir llevar tus proyectos a otro nivel.
Voy a presentarte qué es una máquina de vectores de soporte (Support Vector Machine) y cómo interpretarla.
También voy a compartir contigo uno de los algoritmos que mejores resultados puede darte siempre que tus datos complan algunos aspectos que quiero que tengas claros.
¡Vamos a llevar tus proyectos al siguiente nivel!
¿Qué es un algoritmo clasificador? Repaso
En este artículo te hablo de machine learning.
Una disciplina cada vez más utilizada.
Se trata de implementar el uso de algoritmos matemáticos y estadísticos para poder encontrar patrones de tus datos.
Pero… ¿qué es eso de patrones de tus datos?
Por ejemplo…
- Crear grupos similares de pacientes según unas mismas características. (clustering)
- Diferenciar grupos de especies según las características de las flores, hojas etc… (clasificación)
- Saber si un cliente tiene probabilidades de comprarte o no (clasificación)
- Estimar la demanda de stock de la empresa a partir de años anteriores (regresión)
- …
Todo esto se puede responder con técnicas de machine learning.
Si quieres más detalles puedes ir a este artículo.
Hoy nos centraremos en algoritmos clasificadores. Que son un tipo de algoritmos supervisados.
Ponemos un ejemplo y lo vas a entender rápidamente:
Queremos estimar el diagnóstico de una enfermedad.
Es decir, poder decidir si el paciente tiene o no diabetes a partir de características de ese paciente (sangre, edad, peso, hábitos alimenticios …)
En la imagen tienes un posible esquema de lo que estamos hablando:
Fíjate que puedes definir el problema, como siempre, con la famosa estructura de entrada – salida que usamos en los modelos:
- La entrada son las características en sangre.
- Y la salida es la variable respuesta o clase: diabetes leve o diabetes grave.
En la práctica, primero vamos a entrenar el algoritmo con la salida conocida. Sabremos si los pacientes pertenecen a un grupo u otro.
Una vez entrenado. El algoritmo ya habrá creado un regla de decisión para usarla en la práctica.
Con los datos de características en sangre de nuevos pacientes el algoritmo podrá clasificar al paciente en uno de los dos grupos: diabetes leve o diabetes grave.
¿Se ve?
Ahora ya conoces qué es un algoritmo clasificador.
¡Bien!
Uno de los más utilizados es la máquina de soporte vectorial. Support Vector Machine en inglés, abreviado: SVM.
Ahora lo vas a descubrir. Te recomiendo que mires el vídeo que estoy seguro que te va ayudar 🙂
Intuición práctica: ¿Qué es una máquina de vectores de soporte?
Te aviso.
Este algoritmo es un tanto complejo matemáticamente.
Pero antes de leer matemáticas lo primero es tener clara la intuición práctica de cómo funciona..
Ya has visto que un algoritmo clasificador trata de separar grupos ya conocidos.
Esto se puede representar en el papel de esta forma:
Los puntos negros son un grupo. Imagina los pacientes que tienen diabetes.
Y los puntos blancos son los que no tienen diabetes.
Aquí trabajamos con dos características en sangre: x1 y x2.
Los algoritmos clasificadores tratan de separar los dos grupos. O encontrar una serie de condiciones que nos permitan separar los puntos negros de los blancos.
Eso significa clasificar.
Y es precisamente lo que están haciendo las máquinas de soporte vectorial. Tratan de buscar una recta o un plano que permita diferenciar los dos grupos de la mejor manera posible.
¿Se ve?
Y es lo que hacemos cuando tratamos de entrenar este tipo de algoritmos.
Ahora bien, no es fácil a nivel matemático encontrar este tipo de recta o plano que mejor separe los dos grupos.
Como muestra esta imagen existen muchas rectas solución:
¿Cuál de ellas es la mejor de estas tres? ¿H1, H2 o H3?
Está claro que la H2. En este caso es evidente. Pero en la práctica no lo es tanto.
Para ello tienes que conocer un poco más en detalle del algoritmo y te lo voy a contar en un vídeo que será más visual para ti.
Más abajo lo tienes 😉
Vídeo: qué es una máquina de vectores de soporte, intuiación y referencias. Incluye ejemplo paso a paso en R.
¡Bien!
Ahora que ya conoces el funcionamiento súper básico de estos algoritmos es momento de adentrarte más y conocer aspectos que te ayudarán en la práctica.
En el vídeo que te he preparado va a descubrir:
- Un repaso sobre el algoritmo clasificador
- La intuición práctica de SVM
- Qué es el margen y los vectores de soporte
- Qué es el coste y cómo afecta en la práctica
- Qué son las transformaciones Kernel que nos ayudarán a utilizar el SVM en la práctica
- Descubrirás una de las transformaciones Kernel más utilizadas: funciones radiales
- Un ejemplo paso a paso en R para que veas cómo lo puedes implementar
Aquí tienes el vídeo de la lección:
Enlace del código R del ejemplo
Lista de referencias del vídeo que son muy muy buenas:
- Vídeo increíble sobre SVM y cómo afectan el coste y demás parámetro en el uso del SVM
- Wikipedia sobre Support Vector Machine
- Vídeo sobre SVM que a nivel matemático está muy muy bien explicado
- Comparación entre algoritmos clasificadores
- Artículo de SVM en la web cienciadedatos.net que es una página referente para mi
Resumen del artículo:
Espero y deseo que te haya gustado el vídeo y el artículo de hoy.
Es un algoritmo muy muy potente que siempre que tengas buenos datos te funcionará a las mil maravillas.
Estoy muy contento con los resultados que he obtenido en diferentes proyectos utilizando este tipo de algoritmos 🙂
Take away. Estos son los aspectos importantes que has visto en la lección:
- SVM es un algoritmo clasificador (aprendizaje supervisado)
- SVM lineal trata de separar los puntos por hiperplanos
- El margen flexible nos ayuda a evitar overfitting
- Las funciones Kernel aumentan la capacidad de clasificación en problemas reales
- Un algoritmo computacionalmente costoso pero muy efectivo (sobretodo con variables cuantitativas)
- Y el código R de este ejemplo
Si te ha gustado esta lección y quieres profundizar en cómo Analizar los Datos y convertirte en científico de datos en tu sector puedes acceder a la clase gratuita Analiza Tus Datos dónde voy a compartir el sistema que uso en los proyectos de mis clientes paso a paso.
Madre mía Jordi, brutal el artículo como siempre, estoy tomando ahora un curso de Matlab, pero seguiré con el de científico libre (luego porque me atraso) y en el grupo de WhatsApp lo compartí y están fascinados.