Es una de las estrategias de machine learning supervisado más usadas y poderosas para aportar gran valor y conocimiento mediante tus datos.
Estoy seguro que puedes aplicar esta técnica que vas a descubrir hoy en tu caso concreto.
Por experiencia, te digo que en el 90% de los proyectos se puede aplicar esta metodología y los pasos que voy a compartir contigo.
¿Preparada?
Sigue leyendo y descubre cuál es y los pasos a seguir 🙂
La técnica número de machine learning supervisado que podrías implementar hoy es …
… es un clasificador.
Y… ¿qué es un clasificador?
Sencillamente una herramienta matemática que te permite clasificar grupos.
Te has quedado igual supongo…
Déjame ponerte unos ejemplos:
- Un clasificador permite estimar la probabilidad de que un paciente tenga o no una determinada enfermedad.
- Podrías estimar la probabilidad de que un potencial cliente te pueda comprar o no.
- Puedes incluso, saber las probabilidades de que un deportista se vuelva a lesionar.
En el fondo un clasificador te permite estimar (predecir) una determinada respuesta o variable objetivo en base a unas características que puedas medir.
Por ejemplo este imagen:
Tenemos una variable de salida (variable objetivo o respuesta) que indica si tiene enfermedad o no.
La ponemos en función de las variables de entrada.
ENFERMEDAD = F(CARACTERÍSTICAS DEL PACIENTE)
Eso es.
Vamos a ver esta estructura en los ejemplos anteriores:
Estimar la probabilidad de que un paciente tenga o no una determinada enfermedad:
- Mi variable objetivo es “si tiene la enfermedad”
- y las variables explicativas podrían ser características del paciente (edad, sexo, análisis de sangre etc…)
Estimar la probabilidad de que un potencial cliente te pueda comprar o no:
- Mi variable objetivo es “si compra o no”
- Mis variables explicativas podrían ser el comportamiento de potencial cliente (visitas a la web, si ha venido o no a un seminario web, intereses, edad…)
Calcular la probabilidad de que un deportista se vuelva a lesionar:
- Mi variable objetivo es “si se lesiona o no”
- Mis variables explicativas pueden ser las características del jugador, las características de la lesión, el tiempo de lesión, lesiones anteriores etc…
¿Qué significa clasificar? Machine learning supervisado
Clasificar es, precisamente lo que acabas de ver en los ejemplos del punto anterior, diferenciar entre grupos. (Normalmente se usan dos grupos porque así es más fácil para el algoritmo.)
Es decir, a partir de unas características del paciente saber si se puede considerar en el grupo con enfermedad sí o enfermedad no.
Así de sencillo.
En la práctica, ¿cómo funciona?, ¿cómo podemos calcular esta expresión?
ENFERMEDAD = F(CARACTERÍSTICAS DEL PACIENTE)
Como hacemos los humanos. Aprendiendo. Nosotros necesitamos de la experiencia para aprender. A los algoritmos y modelos les pasa igual.
Es decir, necesitas datos históricos. Con esos datos tu sabes tanto los valores de las características de entrada como los valores de tu variable objetivo.
Siguiendo con el ejemplo, tienes 1000 pacientes, conoces la información de las características y también sabes si tienen o no la enfermedad.
Con esos datos tu puedes entrar un modelo o algoritmo utilizando el proceso de machine learning supervisado que vas a ver a continuación:
Los pasos de un proyecto clasificador en machine learning supervisado
En la práctica este proceso es muy paso a paso y es el que llevamos a cabo en la mentoría Artist ya que es un proyecto altamente aplicable y usado en el 90% de los proyectos:
# 1. Problema a resolver: la clasificación
El problema es sencillo. Clasificar.
Pero tienes que tener en cuenta que lo tienes que definir en el contexto de todo el proyecto.
Definir bien la aplicabilidad del clasificador, en qué condiciones.
Al inicio del artículo tienes ejemplos de posibles objetivos de clasificadores.
Piensa además que el proceso del cálculo de un clasificador también te va ayudar a cuantificar la importancia de las características para tu respuesta.
Y también te ayudará a estimar con nuevos casos.
Ejemplo de planteamiento del problema:
# 2. Estructura de un clasificador
Plantea la estructura del clasificador. Es decir, qué variables son las variables de entrada y cuál es tu variable de salida.
Tus variables de entrada o explicativas son la clave del proyecto.
Si tienes buenas variables clasificadoras el éxito está asegurado. Dicho de otro modo, cuanto mejor información dispongas mejor va a funcionar el proceso.
Aquí un esquema de la tabla de datos que tienes que trabajar:
Normalmente a la derecha del todo está tu variable respuesta o de salida. Que es una variable nominal que distingue los grupos de enfermedad o no enfermedad.
Las variables explicativas o de entrada se colocan a la izquierda y son la clave del clasificador. Una buena selección de esta variables hará que tu proyecto tenga éxito 🙂
# 3. La descripción de las características
Se trata de describir tus variables explicativas en función de la respuesta.
Aquí te pongo un ejemplo de descripción de una característica del paciente numérica en función si tienen o no enfermedad (color).
He usado un histograma de densidad para ver la distribución en ambos grupos:
El color indica la variable respuesta. El verde es que no tienen enfermedad y el rojo que si tienen la enfermedad. Nos damos cuenta que existe un patrón ya que el las dos distribuciones están un poco desplazadas.
¡Genial! Vamos bien con esta variable.
Esto lo deberíamos hacer para todas las variables explicativas.
También puedes calcular la media y la desviación en los grupos de tu variable respuesta.
Solo con las descripciones ya consigues ver qué variable está relacionada o asociada con tu respuesta.
Incluso, con la experiencia, solo con las descripción puedes ver si tus variables explicativas tienen poder de clasificación o no. Es decir, si son buenas variables para poner en los modelos.
# 4. La selección de variables (feature selection)
Este paso me encanta.
Se trata de encontrar qué variables son las realmente importantes para explicar tu respuesta.
En muchos proyectos el número de variables es muy grande y muchas de esas no te sirven para poder clasificar. Las tenemos que desestimar.
Este paso es muy interesante porque ya puedes sacar tus primeras conclusiones del proyecto y sirve para que el entrenamiento sea más eficaz.
Las técnicas que puedes usar son: Mutual Information, ANOVA, Recursive Feature Elimination (RFE) entre otras.
Son técnicas muy potentes que te ayudarán a filtrar las variables.
# 5. Modelo estadístico (modelo logístico)
Este punto casi nadie lo propone pero creo que es muy relevante que lo conozcas.
Se trata de calcular un modelo logístico con la variable objetivo en función de las características que has seleccionado en el paso anterior.
En este paso te recomiendo que utilices un método de selección de modelo óptimo para ajustar lo mejor posible el modelo a las variables. En este enlace te paso una función de R que funciona de maravilla.
Lo que conseguimos aquí es tener un primer modelo estadístico que nos explica la variable respuesta en función de las explicativas.
En la imagen está pintado el resultado estadístico del modelo en cuestión:
Están tachadas en azul el nombre de la variables que hemos introducido, pero lo importante es ver cuáles de ellas son significativas.
Tienes que mirar la última columna. Pr que significa el p-valor, sinónimo de la significación estadística.
Si tenemos valores menos que el 5% podemos decir que esa variable es significativa con la respuesta.
En la imagen se ven solo dos que no son significativas. El resto de variables son significativas.
Te recomiendo hacer este primer modelo logístico antes de entrenar algoritmos.
# 6. Entrenamiento de modelos o algoritmos
En este paso vas a entrenar una batería de modelos y algoritmos. Y vas a seleccionar el que mejor funcione.
Primero, se parten los datos en el 70% para entrenar y el 30% para validar.
Se calculan los algoritmos y modelos con el 70% de los datos y se calcula el error con los datos de validación.
Se selecciona el mejor algoritmo utilizando diferentes métricas como el Accuracy, sensibilidad, especificidad etc…
# 7. Interpretación de los resultados
Es momento de interpretar los resultados.
Aquí te muestro los resultados obtenidos en un proyecto real de diagnóstico de enfermedad.
Los resultados son muy bueno ya que tenemos una efectividad del 87% y hemos conseguido un muy buen clasificador de esta enfermedad.
Ya lo podemos poner en marcha en el hospital 🙂
El Proyecto CORE: el proyecto clasificador se utiliza el 90% de los proyectos reales
En muchos proyectos donde he colaborado con el servicio Acelera tu Proyecto hemos usado el clasificador y los pasos que has visto en este artículo.
Lo he llamado proyecto CORE porque si dominas todos estos pasos y la esencia que hay detrás puedes aportar mucho en tus colaboraciones y proyectos.
Es precisamente este proyecto el que trabajamos durante la mentoría grupal Artist. Cada alumno aporta los datos que le interesan en su sector o nosotros os buscamos proyectos reales donde colaborar.
Si estás interesado en formar parte de la mentoría Artist y dominar estos pasos puedes pre inscribirte aquí.
Espero que te haya servido el artículo y lo apliques en breve en tus proyectos.