#7 Estadística y modelos naive, el campo base de la IA

  • Autor de la entrada:
En este momento estás viendo #7 Estadística y modelos naive, el campo base de la IA
Imagen de Trifonov_Evgeniy de Getty Images Pro en Canva

Tiempo estimado de lectura: 24 minutos.

¡Buenos días y buenos datos!

Voy a empezar con una confesión, empezamos con una parte muy técnica y hay personas que lo saben contar mucho mejor que yo porque son especialistas en ello. Se llaman científicos de datos. ¿Os suenan?

Científico de datos: el trabajo más sexy del siglo 21.

Thomas Davenport y D. J. Patil

Y es que para contar bien las matemáticas que hay detrás del mundo de la analítica avanzada, principalmente estadística matemática, se necesitan muchos días con estos expertos técnicos.

Por ello me voy a intentar hacer explicaciones sencillas para que te suenen las cosas y al final te dejaré referencias donde mis compañeros científicos dan más detalle para profundizar.

Antes de seguir, te recuerdo la definición de modelo de analítica avanzada para poner en contexto esta última categoría de modelos analíticos:

Hoy y durante varios días, hablaremos de modelos analíticos según el algoritmo matemático utilizado.

Si comenzase de nuevo mis estudios, seguiría el consejo de Platón y comenzaría con las matemáticas.

Galileo Galilei

Durante este y los próximos capítulos nos moveremos en torno al paso 4 de la metodología CRISP-DM.

Estadística vs machine learning

Antes de nada, me gustaría lanzar una pregunta ¿en qué se diferencia la estadística del aprendizaje automático?

Es una pregunta que me hice yo cuando empecé a aprender de este tema y me di cuenta de que se trataban como campos o disciplinas diferentes.

Me gusta la cita de Larry A. Wasserman, estadístico de la universidad de Carnegie Melon.

No hay ninguna diferencia entre estadísticas y aprendizaje automático. Ambas tratan de contestar a la misma pregunta: ¿Cómo aprendemos de los datos?

Wasserman. Estadístico canadiense-americano.

Y justo es eso lo que me he ido encontrando después de mucho leer y experimentar por mi lado.

Aún así, Wasserman comenta que hay algunas diferencias aunque a día de hoy pueden ser bastante sutiles:

  • Por un lado la estadística es una rama de las matemáticas anterior al aprendizaje automático en una época donde los avances tecnológicos eran más limitados. Debido a ello, la estadística está más centrada en inferencias estadísticas (estadísticos óptimos, intervalos de confianza y test de hipótesis) y en resolución de problemas de baja dimensionalidad y con pocos parámetros.
  • Por otro lado, el machine learning o aprendizaje automático tiene un fuerte componente de ingeniería informática y procesamiento que, como ya sabes por entradas anteriores, permite resolución de problemas de alta dimensionalidad (muchas variables) y con mucho volumen de datos.

En qué consiste «desarrollar» un modelo de aprendizaje automático

Para «desarrollar» un modelo de aprendizaje automático necesito tres cosas:

  • Datos.
  • Entrenar un algoritmo.
  • Evaluar el algoritmo.

Datos

Recuerda que los problemas de aprendizaje automático se resuelven aprendiendo de los datos.

Aunque dedicaré otra entrada para hablar en detalle de los datos, en esta haré una breve introducción.

Registros y variables
Ejemplo de registros y variables para entrenar un modelo.

En general los datos utilizados por un modelo se organizan en:

  • Registros. Contienen los diferentes elementos o individuos sobre lo que quiero resolver el problema y tienen un identificador único (ejemplo: clientes, potenciales clientes, averías, transacciones financieras, correos electrónicos, etc…). 
  • Variables. Cada registro está definido por unas características o variables.

Estas variables pueden ser: 

  • Variable objetivo o dependiente: normalmente se representa con la letra «Y» y es el dato que quiero predecir a partir del resto. 
  • Variables independientes o predictores: normalmente se representan con la letra «X» y son las características que tienen relación con la variable objetivo y a partir de la cuales se predice esta. 
Datos entrenamiento pruebas
Ejemplo de división datos para entrenar un modelos: entrenamiento y pruebas.

El conjunto de datos que se utiliza para aprender es normalmente un muestra de los datos totales y se dividen en dos subconjuntos:

  • Registros de entrenamiento con el que «desarrollo» mi modelo. 
  • Registros de pruebas con el que valido el modelo.

Normalmente la proporción de entrenamiento-pruebas debería de estar entre un 60%-40% y un 70%-30%. 

Entrenamiento del modelo

Si te fijas, cuando hablo de «desarrollar» el modelo lo pongo entre comillas.

Entrenamiento modelos
Ejemplos de entrenamiento de modelos ajustando una línea a los datos.

Esto es porque ya existen funciones desarrolladas para la mayoría de los modelos y lo que realmente se hace en esta etapa es lo que en la jerga de datos se llama entrenar un modelo.

Entrenar un modelo consiste en seleccionar una función matemática y estimar sus parámetros para que se ajuste lo más posible a los datos de entrenamiento disponibles.

Por ello, entrenar un modelo se dice «fit» que significa ajustar en inglés.   

Evaluar el algoritmo

La evaluación de un modelo se realiza ejecutando el modelo entrenado (predict en inglés) con los datos de prueba que he reservado y comparando la predicción con los datos reales.

Hay que ser muy cuidadoso a la hora de reservar el conjunto de datos para las pruebas porque utilizar parte de estos en la etapa de entrenamiento invalida totalmente el modelo.  

Sesgo
Ejemplos de modelos con bajo y alto sesgo.

Es posible que los resultados de un modelo sean regulares mientras que los de otro algoritmo sean excelentes, es decir, casi no tengan errores, para los mismos datos de entrenamiento.

El peor escenario se dice que es un modelo sesgado.

Sobrejajuste
Ejemplos de modelos con baja y alta varianza.

Por el contrario, puede pasar que un modelo que tiene peores métricas para el conjunto de entrenamiento, obtenga mejores resultados con el conjunto de pruebas.

En este caso decimos que el modelo que es bueno en el entrenamiento pero peor en la pruebas está sobreajustado (overfit en inglés) y no generaliza bien.

Esto nos lleva a la negociación sesgo-varianza de un modelo que es clave para la selección de variables, parámetros y algoritmos para resolver nuestro problema:

– El sesgo es la incapacidad de un algoritmo de capturar las relaciones entre los datos.

– La varianza es la variabilidad de los resultados del modelo según se utilicen diferentes conjuntos de datos.

El algoritmo perfecto será el que menos sesgo y menos varianza tiene y para conseguirlo se utilizan técnicas que veremos a lo largo de las siguientes entradas:

  • Regularización a la hora de seleccionar variables.
  • Boosting y Bagging: para seleccionar los mejores parámetros de los algoritmos.

Modelos matemáticos básicos

Empezaré con los modelos más sencillos, considerados más dentro del campo de la estadística que del aprendizaje automático.

Estos se utilizan sobre todo para hacer inferencias e interpretaciones ya que tienen peor rendimiento a la hora de hacer predicciones que otros algoritmos más avanzados que veremos más adelante.

Por el contrario, suelen ser altamente explicativos.

Y suelen ser la base inicial de comparación entre modelos.

Dentro de este apartado se incluyen: la regresión lineal, la regresión logística y Naive Bayes.

1. Regresión lineal

Regresión lineal. Imagen de freepng.es

Una regresión lineal es una ecuación que establece una relación entre los predictores (X) y una variable objetivo numérica continua (y) formando una línea.

Esta línea se calcula ajustando a mínimos cuadrados ordinarios (OLS en su acrónimo en inglés). Es decir, minimizando el error al cuadrado entre el valor de la estimación (línea roja) y el valor real (punto azul).

La ecuación resultante es: y = W1x + W2, donde:

  • W1: es el parámetro que indica la pendiente o inclinación de la recta con la línea de abscisas o eje horizontal (x).
  • W2: es el parámetro que representa la intersección o punto de corte de la recta con la línea de ordenadas o eje vertical (y)

Esta línea es la que se utiliza para predecir el valor objetivo dado unos datos de entrada. Por ejemplo, sirve para calcular las ventas de un producto en función de una cantidad de inversión en publicidad realizada. El valor de la inversión se representaría sobre el eje horizontal y las ventas obtenidas serían el valor donde el eje vertical corta a la línea roja.

Para evaluar la bondad de la regresión se utilizan varios indicadores:

  • Por un lado, para saber cómo de bueno es el predictor para estimar el valor objetivo, utilizamos el estadístico R2. Cuando más cercano a «1» sea, mejor es la regresión.
  • Por otro lado, se utiliza el estadístico «p-value» para determinar si el R2 obtenido es significativo. Es decir, indica si la relación encontrada tiene sentido o ha sido por «casualidad».

La regresión es simple cuando sólo tenemos un predictor y es múltiple cuando hay varios predictores o variables de entrada (varias dimensiones).

En entradas posteriores profundizaremos las métricas utilizadas para evaluar el rendimiento de este tipo de modelos. Aunque he hablado de R2 pero hay otros. Por ahora simplemente quédate con los nombres: MSE (error cuadrático medio), RMSE (raíz cuadrada del error cuadrático medio), MAE (error absoluto medio), MAPE (Error porcentual absoluto medio).

2. Regresión logística

Función sigmoide. Imagen de freepng.es

Una regresión logística predice si una variable de salida u objetivo (y) es de una clase u otra en función de unos valores de entrada o predictores (x). Para ello utiliza la función logística o sigmoide que devuelve un valor entre 0 y 1. En función del sentido de negocio se establece el umbral que determina cuando la clase a la que pertenece.

Por ello, una regresión logística se utiliza para clasificar.

En una operadora móvil, este modelo se utilizará para predecir si un cliente se va a dar de baja o no en función del vencimiento de su compromiso de permanencia. El negocio determinará el umbral. Por ejemplo a partir de un 50% de probabilidad el cliente será baja (churn en inglés) y si es menor se mantendrá.

Estos modelos son muy versátiles y pueden trabajar con datos continuos (edad, peso) o con datos discretos (tipo de flor: rosa, tulipán, girasol).

La línea o ecuación se calcula ajustando por Máxima similitud (Maximun Likelihood en inglés).

Este método está muy bien contado en este vídeo que también he dejado en las referencias. Básicamente consiste en dibujar diferentes curvas de Gauss con la media y desviación estándar centrada en cada uno de los datos y calcular la probabilidad de observar el resto de los datos en cada una de dichas curvas. La media y desviación estándar final serán aquellas que maximicen la probabilidad de la observación.

En entradas posteriores profundizaremos en las métricas utilizadas para evaluar la bondad de este tipo de modelos.

Hoy simplemente quédate con los nombres: Matriz de confusión, Accuracy, Precision, Recall, f1-score, ROC (receiver operating characteristic curve), AUC (Area Under the ROC curve), lift.

3. Naive Bayes

Es una técnica de clasificación muy utilizada basada en el «Teorema de Bayes» y la probabilidad condicional

Teorema_Bayes
Teorema de Bayes

La probabilidad de que ocurra un evento «A» habiendo ocurrido un evento «B» es igual a la probabilidad de que ocurra «B» habiendo ocurrido «A» por la probabilidad de que ocurra «A» dividido entre el total de probabilidad de que ocurra «B».

Como si sigues por estos derroteros te lo vas a encontrar, te dejo un poco de terminología:

  • P(A | B) o posterior es la probabilidad que quiero calcular, es decir, la probabilidad de que se cumpla una hipótesis A, dada una evidencia B.
  • P(B | A) o «likelihood» es la probabilidad de que se observar la evidencia B dada una hipótesis A
  • P(A) o prior es la probabilidad de que se cumpla la hipótesis
  • P(B) es la probabilidad marginal de que se observe la evidencia B

Un ejemplo sobre cómo funciona sería el siguiente.

En un supermercado quieren saber la probabilidad de que un cliente compre pan o no en función de otros productos de su cesta. Esto les servirá por ejemplo para decidir donde colocar el pan.

En este caso tenemos:

  • Variable objetivo: «compra pan» o «no compra pan».
  • Variables predictoras: otros productos de la cesta como leche entera, leche desnatada, huevos, fruta o pizza.
  • Además, el supermercado tienen información histórica de los últimos dos años sobre:
    • el porcentaje de las compras realizadas en las que los cliente incluyen pan
    • de las compras con pan o no pan, cuántas tienen leche entera, leches desnatada, huevos, fruta o pizza.

Aplicando el teorema, si queremos saber si un cliente que ha comprado fruta, se llevará el pan, seguiremos los siguientes pasos:

Aunque este ejemplo es muy sencillo, con pocos datos y basado en una distribución de probabilidad discreta (no continua), Naive Bayes también escala bien con más valores y distribuciones de datos continuas.

Son estimadores muy sencillos que asumen que los eventos predictores son independientes entre sí. En nuestro ejemplo de antes, esto quiere decir que la probabilidad de que un cliente compre «leche desnatada» y luego «pizza» es igual a la probabilidad de que compre «pizza» y luego «leche desnatada».

Sin embargo, los datos en general no se comportan de esta manera. Si hubiera que calcular todas las opciones, implicaría un coste de cálculo muy alto, de ahí su simplicidad.

Además, generaliza muy bien (baja varianza) aunque, tiene también un alto sesgo.

En definitiva, debido a su simplicidad, cualquier de los tres algoritmos anteriores se suele utilizar como base inicial para comparar el rendimiento de otros modelos más complicados.

Aunque intente simplificar, es denso, ¿verdad?. Te dejo descansar así que me voy despidiendo por ahora. Espero que hayas disfrutado y si te ha gustado, compártelo en redes y dímelo en comentarios.

Te espero en las siguientes entregas de «La época de la información» donde seguiré hablando de matemáticas cada vez con modelos más complejos.

Bibliografía y referencias

Como comentaba al principio, hoy cobran especial relevancia las referencias. Si quieres saber más hay mucho y bueno ahí fuera. Yo te dejo una selección de artículos y vídeos he utilizado como inspiración y que me han llamado la atención:

Nota: recuerda que si el vídeo está en inglés, Youtube facilita la traducción simultánea a otro idioma. Para activar la traducción simultánea al español, sigue estos pasos: ¿Cómo activar la traducción simultánea en Youtube?