Tutorial sobre Scikit-learn

Introducción a aprendizaje automático en Python

¿Qué es aprendizaje automático?

El aprendizaje automático es el proceso de extraer conocimiento de los datos automáticamente, normalmente con la meta de hacer predicciones sobre datos nuevos desconocidos. Un ejemplo clásico es el de un filtro de spam, para el que el usuario etiqueta los correos que le llegan como Spam o No Spam. Un algoritmo de aprendizaje automático entonces "aprende" un modelo predictivo de los datos que distingue el spam de los correos normales, un modelo que puede predecir si los nuevos correos son spam o no.

Uno de los elementos centrales del aprendizaje automático es el concepto de toma de decisiones automáticas a partir de los datos sin que el usuario especifique reglas acerca de cómo esas decisiones deben ser tomadas.

Para el caso de los correos, el usuario no proporciona una lista de las palabras o características de un correo spam. En lugar de eso, el usuario proporciona ejemplos de correos que son y no son spam.

El segundo concepto central es el de la generalización. La meta de un modelo de aprendizaje automático es predecir en nuevos ejemplos nunca antes vistos. En una aplicación del mundo real, no estamos interesados en clasificar correos que ya han sido etiquetados o no como spam. Queremos hacer la vida del usuario más sencilla mediante la clasificación automática de los correos que vayan llegando.

Los datos suelen presentarse al algoritmo como un array de dos dimensiones (o matriz) con números. Cada punto (también conocido como ejemplo o instancia de entrenamiento) sobre el cual queremos aprender o tomar una decisión se representa mediante una lista de números, también llamado vector de características, y contiene las características que representan las propiedades de ese punto.

Más tarde, trabajaremos en conjunto de datos (dataset) muy popular, llamado Iris. Iris, un dataset clásico de prueba en aprendizaje automático, contiene las medidas de 150 flores de tipo iris con 3 especies distintas: Iris-Setosa, Iris-Versicolor e Iris-Virginica.

Iris Setosa

Iris Versicolor

Iris Virginica

Representamos cada ejemplo de flor como una fila en nuestra matriz de datos, y las columnas (características) representan las medidas de la flor en centímetros. Por ejemplo, podemos representar el dataset Iris, que consiste en 150 ejemplos y 4 características, como un array de dos dimensiones o matriz en $\mathbb{R}^{150 \times 4}$ con el siguiente formato: $$\mathbf{X} = \begin{bmatrix} x_{1}^{(1)} & x_{2}^{(1)} & x_{3}^{(1)} & \dots & x_{4}^{(1)} \\ x_{1}^{(2)} & x_{2}^{(2)} & x_{3}^{(2)} & \dots & x_{4}^{(2)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ x_{1}^{(150)} & x_{2}^{(150)} & x_{3}^{(150)} & \dots & x_{4}^{(150)} \end{bmatrix}. $$

(el superíndice denota la iésima columna, y el subíndice denota la $j$ésima característica, respectivamente.

Hay dos tipos de aprendizaje automático, de los cuáles hablaremos hoy: aprendizaje supervisado y aprendizaje no supervisado.

Aprendizaje supervisado: regresión y clasificación

En aprendizaje supervisado, tenemos un dataset que contiene tanto características de entrada como una salida deseada, como en el ejemplo de clasificación de spam. La tarea a realizar es construir un modelo que sea capaz de predecir la salida deseada de un nuevo objeto dadas las características de entrada.

Algunos ejemplos más complejos son:

  • Dada una imagen RBG de un telescopio, determinar si el objeto es una estrella, un cuásar o una galaxia.
  • Dada la fotografía de una persona, identificar a la persona en la foto.
  • Dada una lista de películas que una persona ha visto y la puntuación que le he dado, recomendar una lista de películas que le podrían gustar.
  • Dada la edad de una persona, su educación y su posición, deducir su salario.

Lo que tienen en común todas estas tareas es que tenemos una o más cantidades no determinadas sobre un objeto que deben ser predichas usando otras cantidades.

El aprendizaje supervisado se divide a su vez en dos categorías, clasificación y regresión:

  • En clasificación, la etiqueta es discreta, por ejemplo Spam y No Spam. En otras palabras, se proporciona una distinción clara entre las categorías. Es más, es importante indicar que estas categorías son nominales y no ordinales. Las variables nominales y ordinales son ambas subcategorías de las variables categóricas. Las variables ordinales tienen asociado un orden, por ejemplo, las tallas de las camisetas "XL > L > M > S". Por el contrario, las variables nominales no implican un orden, por ejemplo, no podemos asumir (en general) "naranja > azul > verde".
  • En regresión, la etiqueta es continua, es decir una salida real. Por ejemplo, en astronomía, la tarea de determinar si un objeto es una estrella, una galaxia o un cuásar es un problema de clasificación: la etiqueta viene de tres categorías distintas. Por otro lado, podríamos querer estimar la edad de un objeto basándonos en su imagen: esto sería regresión, porque la etiqueta (edad) es una cantidad continua.

En aprendizaje supervisado siempre hay una distinción entre el conjunto de entrenamiento o training para el cual se nos proporciona la etiqueta, y el conjunto de test para el cual la etiqueta debe ser inferida. El algoritmo de aprendizaje debe ajustar el modelo predictivo al dataset de entrenamiento y usamos el conjunto de test para evaluar la capacidad de generalización.

Aprendizaje no supervisado

En aprendizaje no supervisado no hay una salida deseada asociada a los datos. En su lugar, estamos interesados en extraer algún tipo de conocimiento o modelo a partir de los datos. En cierto sentido, se podría pensar que el aprendizaje no supervisado es una forma de descubrir etiquetas a partir de los propios datos. Este tipo de aprendizaje suele ser más difícil de entender y evaluar.

El aprendizaje no supervisado engloba tareas tales como reducción de la dimensionalidad, clustering y estimación de densidades. Por ejemplo, en el dataset iris que discutimos anteriormente, podríamos aplicar métodos de aprendizaje no supervisado para determinar combinaciones de características que muestran la estructura de los datos de la mejor forma posible. Como veremos después, estas combinaciones se pueden usar como métodos de proyección para visualizar los datos originales (que estaban en 4 dimensiones) utilizando solo 2 dimensiones. Algunos ejemplos de problemas no supervisados son:

  • Dado un conjunto de observaciones detalladas sobre galaxias lejanas, determinar que combinación o combinaciones de características resumen mejor la información.
  • Dada un sonido que proviene de la mezcla de dos fuentes distintas de sonido (por ejemplo, una persona que habla por encima de una canción), separar ambas fuentes de sonido (a esto se le llama blind source separation).
  • Dado un vídeo, aislar un objeto móvil y categorizarlo en función de otros objetos móviles que hayan sido vistos anteriormente.
  • Dada una larga colección de artículos de noticias, encontrar temas recurrentes en estos artículos.
  • Dada una colección de imágenes, agrupar las imágenes que son más similares (por ejemplo, para visualizar una colección de imágenes).

Algunas veces los dos tipos de aprendizaje se combinan: por ejemplo, el aprendizaje no supervisado puede ser utilizado para encontrar características útiles en datos heterogéneos y luego usar estas características en un framework de aprendizaje supervisado.

Taxonomía de aprendizaje automático (simplificada)