Métodos de Machine Learning para científicos de datos

Pon en marcha tus habilidades en ciencia de datos

Machine Learning es un tema candente en la investigación y la industria, y constantemente se desarrollan nuevas metodologías. La velocidad y la complejidad del campo hacen que mantenerse al día con las nuevas técnicas sea difícil incluso para los expertos, y potencialmente abrumador para los principiantes.

Para desmitificar el aprendizaje automático y ofrecer una ruta de aprendizaje para aquellos que son nuevos en los conceptos básicos, veamos diez métodos de Machine Learning para científicos de datos, que incluyen descripciones simples, visualizaciones y ejemplos para cada uno.

Un algoritmo de aprendizaje automático, también llamado modelo, es una expresión matemática que representa datos en el contexto de un problema, a menudo un problema empresarial. El objetivo es pasar de los datos al conocimiento.

Por ejemplo, si un minorista en línea quiere anticipar las ventas para el próximo trimestre, podría utilizar un algoritmo de aprendizaje automático que prediga esas ventas en función de las ventas pasadas y otros datos relevantes.

De manera similar, un fabricante de molinos de viento podría monitorear visualmente equipos importantes y alimentar los datos de video a través de algoritmos entrenados para identificar grietas peligrosas.

Los diez métodos de Machine Learning para científicos de datosdescritos ofrecen una descripción general y una base sobre la que puede construir a medida que perfecciona sus conocimientos y habilidades de aprendizaje automático:

  1. Regresión
  2. Clasificación
  3. Agrupación
  4. Reducción de la dimensionalidad
  5. Métodos de conjunto
  6. Redes neuronales y aprendizaje profundo
  7. Incrustaciones de palabras
Distingamos dos categorías generales de aprendizaje automático:

Supervisado y no supervisado. Aplicamos técnicas de ML supervisadas cuando tenemos un dato que queremos predecir o explicar.

Lo hacemos utilizando datos previos de entradas y salidas para predecir una salida basada en una nueva entrada. Por ejemplo, podría usar técnicas de ML supervisadas para ayudar a una empresa de servicios que desea predecir la cantidad de usuarios nuevos que se registrarán para el servicio el próximo mes.

Por el contrario, sin supervisión ML busca formas de relacionar y agrupar puntos de datos sin el uso de una variable objetivo para predecir. En otras palabras, evalúa los datos en términos de rasgos y los utiliza para formar grupos de elementos que son similares entre sí.

Por ejemplo, podría usar técnicas de aprendizaje sin supervisión para ayudar a un minorista que desea segmentar productos con características similares, sin tener que especificar de antemano qué características utilizar.

Métodos de Machine Learning

Métodos de Machine Learning: Regresión

Los métodos de Machine Learning de regresión se encuentran dentro de la categoría de ML supervisado. Ayudan a predecir o explicar un valor numérico particular basado en un conjunto de datos anteriores, por ejemplo, predecir el precio de una propiedad en base a datos de precios anteriores para propiedades similares.

El método más simple es la regresión lineal donde usamos la ecuación matemática de la línea ( y = m * x + b ) para modelar un conjunto de datos.

Entrenamos un modelo de regresión lineal con muchos pares de datos (x, y) calculando la posición y la pendiente de una línea que minimiza la distancia total entre todos los puntos de datos y la línea. En otras palabras, calculamos la pendiente ( m ) y la intersección en y ( b ) para una línea que mejor se aproxima a las observaciones en los datos.

Consideremos una más Un ejemplo concreto de regresión lineal. Una vez usé una regresión lineal para predecir el consumo de energía (en kWh) de ciertos edificios al reunir la edad del edificio, el número de pisos, los pies cuadrados y el número de equipos de pared tapados. Como había más de una entrada (edad, pies cuadrados, etc.), usé una regresión lineal de múltiples variables.

El principio era el mismo que una simple regresión lineal uno a uno, pero en este caso, la “línea” que creé ocurrió en un espacio multidimensional en función del número de variables.

La siguiente gráfica muestra qué tan bien funciona la lineal El modelo de regresión se ajusta al consumo energético real del edificio. Ahora imagine que tiene acceso a las características de un edificio (edad, pies cuadrados, etc.) pero no sabe el consumo de energía. En este caso, podemos usar la línea ajustada para aproximar el consumo de energía de un edificio en particular.

Tenga en cuenta que también puede usar la regresión lineal para estimar el peso de cada factor que contribuye a la predicción final de la energía consumida. Por ejemplo, una vez que tenga una fórmula, puede determinar si la edad, el tamaño o la altura son los más importantes.

 

Estimaciones del modelo de regresión lineal del consumo de energía en el edificio (kWh).

Las técnicas de regresión van desde la simple (como Regresión lineal) a complejo (como regresión lineal regularizada, regresión polinomial, árboles de decisión y regresiones aleatorias de bosques, redes neuronales, entre otras). Pero no se atasque: comience por estudiar la regresión lineal simple, domine las técnicas y continúe desde allí.

Métodos de Machine Learning: Clasificación

Otra clase de NM supervisado, los métodos de Machine Learning de clasificación predicen o explican un valor de clase. Por ejemplo, pueden ayudar a predecir si un cliente en línea comprará o no un producto. La salida puede ser sí o no: comprador o no comprador.

Pero los métodos de Machine Learning de clasificación no se limitan a dos clases. Por ejemplo, un método de clasificación podría ayudar a evaluar si una imagen dada contiene un automóvil o un camión.

En este caso, el resultado será 3 valores diferentes:

  1. La imagen contiene un automóvil.
  2. La imagen contiene un camión.
  3. La imagen no contiene ni un automóvil ni un camión.

El algoritmo de clasificación más simple es logístico Regresión: lo que hace que parezca un método de regresión, pero no lo es. La regresión logística estima la probabilidad de que ocurra un evento basado en una o más entradas.

Por ejemplo, una regresión logística puede tomar como entradas dos puntuaciones de examen para un estudiante para estimar la probabilidad de que el estudiante sea admitido un colegio particular.

Debido a que la estimación es una probabilidad, la salida es un número entre 0 y 1, donde 1 representa una certeza completa. Para el estudiante, si la probabilidad estimada es mayor que 0.5, entonces predecimos que será admitido. Si la probabilidad estimada es inferior a 0,5, predecimos que se rechazará.

La siguiente tabla muestra los puntajes de los estudiantes anteriores junto con si fueron admitidos. Regresión logística nos permite trazar una línea que representa el límite de decisión.

 

Regresión logística Límite de decisión: ¿admitido en la universidad o no?

Dado que la regresión logística es un modelo lineal, es un buen lugar para comenzar la clasificación. A medida que avanza, puede sumergirse en clasificadores no lineales, como árboles de decisión, bosques aleatorios, máquinas de vectores de soporte y redes neuronales, entre otros.

Métodos de Machine Learning: Agrupación

Con los métodos de Machine Learning de agrupación, ingresamos en la categoría de LD sin supervisión. porque su objetivo es agrupar o agrupar observaciones que tienen características similares.

Los métodos de agrupación no utilizan la información de salida para la capacitación, sino que permiten que el algoritmo defina la salida. En los métodos de Machine Learning de agrupación, solo podemos usar visualizaciones para inspeccionar la calidad de la solución.

El método de agrupación más popular es K-Means, donde “K” representa la cantidad de agrupaciones que el usuario elige crear. (Tenga en cuenta que existen varias técnicas para elegir el valor de K, como el método del codo).

A grandes rasgos, lo que K-Means hace con los puntos de datos:

  1. Elige al azar K centros dentro de los datos.
  2. Asigna cada punto de datos al más cercano de los centros creados al azar.
  3. Vuelve a calcular el centro de cada grupo.
  4. Si los centros no cambian (o cambian muy poco), el proceso finaliza. De lo contrario, volvemos al paso 2. (Para evitar terminar en un bucle infinito si los centros continúan cambiando, establezca un número máximo de iteraciones por adelantado).

La siguiente gráfica aplica K-Means a un conjunto de datos de edificios . Cada columna en la parcela indica la eficiencia para cada edificio. Las cuatro mediciones están relacionadas con el aire acondicionado, los equipos enchufados (microondas, refrigeradores, etc.), el gas doméstico y el gas de calefacción.

Elegimos K = 2 para agrupación, lo que facilita la interpretación de uno de los grupos como el grupo de edificios eficientes y el otro grupo como el grupo de edificios ineficientes.

A la izquierda puede ver la ubicación de los edificios y a la derecha, dos de las cuatro dimensiones que usamos como entradas: equipo enchufado y gas de calefacción:

 

Agrupación de edificios en grupos eficientes (verde) e ineficientes (rojo).

 

A medida que explora la agrupación en clústeres, encontrará algoritmos muy útiles, como la agrupación espacial basada en densidad de aplicaciones con ruido (DBSCAN), la agrupación de cambios medios, la agrupación jerárquica aglomerativa, la agrupación de expectativas-maximización utilizando modelos de mezcla gaussianos, entre otros.

Reducción de la dimensionalidad

Como su nombre indica, usamos la reducción de la dimensionalidad para eliminar las columnas menos importantes de un conjunto de datos. En la práctica, a menudo veo conjuntos de datos con cientos o incluso miles de columnas (también llamadas características), por lo que reducir el número total es vital.

Por ejemplo, las imágenes pueden incluir miles de píxeles, no todos los cuales son importantes para su análisis. O al probar microchips dentro del proceso de fabricación, es posible que tenga miles de mediciones y pruebas aplicadas a cada chip, muchas de las cuales proporcionan información redundante. En estos casos, necesita algoritmos de reducción de dimensionalidad para que el conjunto de datos sea manejable.

El método de reducción de dimensionalidad más popular es el análisis de componentes principales (PCA), que reduce la dimensión del espacio de características al encontrar nuevos vectores que maximizan la variación lineal. de los datos.

La PCA puede reducir la dimensión de los datos dramáticamente y sin perder demasiada información cuando las correlaciones lineales de los datos son fuertes. (Y, de hecho, también puede medir el alcance real de la pérdida de información y ajustarlo en consecuencia).

Otro método popular es la incrustación de vecinos estocásticos distribuidos en t (t-SNE), que realiza una reducción de la dimensionalidad no lineal. La gente suele usar t-SNE para la visualización de datos, pero también puede usarlo para tareas de aprendizaje automático como la reducción del espacio de características y la agrupación, por mencionar solo algunas.

La siguiente gráfica muestra un análisis de la base de datos MNIST de dígitos escritos a mano. . MNIST contiene miles de imágenes de dígitos del 0 al 9, que los investigadores utilizan para probar sus algoritmos de agrupación y clasificación.

Cada fila del conjunto de datos es una versión vectorizada de la imagen original (tamaño 28 x 28 = 784) y una etiqueta para cada imagen (cero, uno, dos, tres, …, nueve). Tenga en cuenta que, por lo tanto, estamos reduciendo la dimensionalidad de 784 (píxeles) a 2 (dimensiones en nuestra visualización). Proyectar a dos dimensiones nos permite visualizar el conjunto de datos originales de alta dimensión.

Iteraciones t-SNE en la base de datos MNIST de dígitos escritos a mano.

Métodos de Machine Learning: de conjunto

Imagina que has decidido construir una bicicleta porque eres No se siente feliz con las opciones disponibles en las tiendas y en línea. Puede comenzar por encontrar lo mejor de cada parte que necesita. Una vez que haya ensamblado todas estas excelentes piezas, la bicicleta resultante eclipsará a todas las demás opciones.

Los métodos de Machine Learning de conjunto utilizan la misma idea de combinar varios modelos predictivos (ML supervisado) para obtener predicciones de mayor calidad que cada uno de los modelos podría proporcionar en su propio.

Por ejemplo, los algoritmos de Random Forest son un método conjunto que combina muchos árboles de decisión entrenados con diferentes muestras de los conjuntos de datos. Como resultado, la calidad de las predicciones de un bosque aleatorio es mayor que la calidad de las predicciones estimadas con un solo Árbol de decisión.

Piense en los métodos conjuntos como una manera de reducir la varianza y el sesgo de un modelo de aprendizaje de una sola máquina. . Eso es importante porque cualquier modelo dado puede ser exacto en ciertas condiciones pero inexacto en otras condiciones. Con otro modelo, la precisión relativa podría revertirse. Al combinar los dos modelos, la calidad de las predicciones se equilibra.

La gran mayoría de los ganadores de las competencias de Kaggle utilizan métodos conjuntos de algún tipo. Los algoritmos de conjuntos más populares son Random Forest, XGBoost y LightGBM .

Redes neuronales y aprendizaje profundo

En contraste con las regresiones lineales y logísticas que se consideran modelos lineales. El objetivo de las redes neuronales es capturar patrones no lineales en datos agregando capas de parámetros al modelo.

En la imagen a continuación, la red neuronal simple tiene cuatro entradas, una sola capa oculta con cinco parámetros y una capa de salida:

 

Red neuronal con una capa oculta.

De hecho, la estructura de las redes neuronales es lo suficientemente flexible Para construir nuestra conocida regresión lineal y logística. El término Aprendizaje profundo proviene de una red neuronal con muchas capas ocultas (ver la siguiente Figura) y encapsula una amplia variedad de arquitecturas.

Es especialmente difícil mantenerse al día con los desarrollos en el aprendizaje profundo, en parte porque las comunidades de investigación y de la industria tienen duplicando sus esfuerzos de aprendizaje profundo, generando nuevas metodologías todos los días.

 

 

Red neuronal con muchas capas ocultas.

Para obtener el mejor rendimiento, las técnicas de aprendizaje profundo requieren una gran cantidad de datos y una gran cantidad de cálculos. poder ya que el método es autoajustar muchos parámetros dentro de grandes arquitecturas.

Rápidamente queda claro por qué los profesionales del aprendizaje profundo necesitan computadoras muy potentes mejoradas con GPU (unidades de procesamiento gráfico).

En particular, las técnicas de aprendizaje profundo han sido extremadamente exitosas en las áreas de visión (clasificación de imágenes), texto, audio y video. Los paquetes de software más comunes para el aprendizaje profundo son Tensorflow y PyTorch .

Transfer Learning

Supongamos que eres un científico de datos que trabaja en la industria minorista. Has pasado meses entrenando a un modelo de alta calidad para clasificar las imágenes como camisetas, camisetas y polos.

Tu nueva tarea es construir un modelo similar para clasificar imágenes de vestidos como pantalones de mezclilla, de carga, informales y de vestir. ¿Puede transferir el conocimiento incorporado en el primer modelo y aplicarlo al segundo modelo? Sí, puede usar Transfer Learning.

Transfer Learning se refiere a reutilizar parte de una red neuronal previamente entrenada y adaptarla a una tarea nueva pero similar. Específicamente, una vez que entrena una red neuronal utilizando datos para una tarea, puede transferir una fracción de las capas entrenadas y combinarlas con algunas capas nuevas que puede entrenar utilizando los datos de la nueva tarea. Al agregar algunas capas, la nueva red neuronal puede aprender y adaptarse rápidamente a la nueva tarea.

La principal ventaja de la transferencia de aprendizaje es que necesita menos datos para entrenar la red neuronal, lo cual es particularmente importante porque la capacitación para el aprendizaje profundo los algoritmos son costosos en términos de tiempo y dinero (recursos computacionales) y, por supuesto, a menudo es muy difícil encontrar suficientes datos etiquetados para el entrenamiento.

Regresemos a nuestro ejemplo y asumamos que para el modelo de camiseta usas un neuronal Red con 20 capas ocultas. Después de realizar algunos experimentos, te darás cuenta de que puedes transferir 18 capas del modelo de camiseta y combinarlas con una nueva capa de parámetros para entrenar en las imágenes de los pantalones. El modelo de pantalones por lo tanto tendría 19 capas ocultas.

Las entradas y salidas de las dos tareas son diferentes, pero las capas reutilizables pueden estar resumiendo información relevante para ambas, por ejemplo, aspectos de la tela, los sujetadores y la forma.

El aprendizaje por transferencia se ha vuelto cada vez más popular y existe. ahora hay muchos modelos sólidos pre-entrenados disponibles para tareas comunes de aprendizaje profundo como la clasificación de imágenes y textos.

Aprendizaje de refuerzo (Reinforcement Learning)

Imagina un ratón en un laberinto que trata de encontrar trozos de queso escondidos. Cuantas más veces exponemos el ratón al laberinto, mejor se pone el queso. Al principio, el mouse puede moverse al azar, pero después de un tiempo, la experiencia del mouse lo ayuda a darse cuenta de qué acciones lo acercan más al queso.

El proceso para el mouse refleja lo que hacemos con el Aprendizaje de Refuerzos (RF) para entrenar a un Sistema o un juego. En términos generales, RL es un método de aprendizaje automático que ayuda a un agente a aprender de la experiencia.

Al registrar acciones y utilizar un enfoque de prueba y error en un entorno determinado, RF puede maximizar una recompensa acumulada.

En nuestro ejemplo, el ratón es el agente y el laberinto es el entorno. El conjunto de acciones posibles para el mouse son: mover hacia delante, hacia atrás, hacia la izquierda o hacia la derecha. La recompensa es el queso.

Puede usar RF cuando no tiene datos históricos sobre un problema, ya que no necesita información por adelantado (a diferencia de los métodos tradicionales de aprendizaje automático). En un marco de RF, aprendes de los datos a medida que avanzas.

No es sorprendente que la RF sea especialmente exitosa con los juegos, especialmente los juegos de “ información perfecta ” como el ajedrez y el Go.

Con los juegos, los comentarios del agente y el medio ambiente llegan rápidamente, lo que permite que el modelo aprenda rápidamente. La desventaja de la RF es que puede tomar mucho tiempo entrenar si el problema es complejo.

Así como el Deep Blue de IBM venció al mejor jugador de ajedrez humano en 1997, AlphaGo, un algoritmo basado en RF, venció al mejor Go Jugador en 2016. Los pioneros actuales de RF son los equipos de DeepMind en el Reino Unido. Más información sobre AlphaGo y DeepMind aquí .

En abril de 2019, el equipo OpenAI Five fue la primera IA en vencer a un equipo campeón mundial de e-sport Dota 2, un videojuego muy complejo que el OpenAI Cinco equipos eligieron porque no había algoritmos de RF que pudieran ganarlos en ese momento.

El mismo equipo de IA que venció al campeón del equipo humano de Dota 2 también desarrolló una mano robótica que puede reorientar un bloque. Lea más sobre el equipo de OpenAI Five aquí .

Puede darse cuenta de que el aprendizaje por refuerzo es una forma especialmente poderosa de IA, y estamos seguros de que veremos más avances de estos equipos, pero también vale la pena recordar las limitaciones del método.

Procesamiento del lenguaje natural

Un gran porcentaje de los datos y conocimientos del mundo se encuentra en algún tipo de lenguaje humano. ¿Te imaginas poder leer y comprender miles de libros, artículos y blogs en segundos?

Obviamente, las computadoras todavía no pueden entender completamente el texto humano, pero podemos capacitarlos para hacer ciertas tareas.

Por ejemplo, podemos entrenar nuestros teléfonos para autocompletar nuestros mensajes de texto o corregir palabras mal escritas. Incluso podemos enseñar a una máquina a tener una conversación simple con un humano.

El procesamiento del lenguaje natural (PNL) no es un método de aprendizaje automático en sí mismo, sino una técnica ampliamente utilizada para preparar texto para el aprendizaje automático. Piense en toneladas de documentos de texto en una variedad de formatos (palabra, blogs en línea, …).

La mayoría de estos documentos de texto estarán llenos de errores tipográficos, caracteres faltantes y otras palabras que deben filtrarse. En este momento, el paquete más popular para procesar texto es NLTK (Natural Language Toolkit), creado por investigadores de Stanford.

La forma más sencilla de asignar el texto en una representación numérica es calcular la frecuencia de cada palabra dentro de cada documento de texto Piense en una matriz de enteros donde cada fila representa un documento de texto y cada columna representa una palabra. Esta representación matricial de las frecuencias de palabras se denomina comúnmente Matriz de frecuencia de término (TFM).

A partir de ahí, podemos crear otra representación matricial popular de un documento de texto al dividir cada entrada en la matriz por el peso de la importancia de cada palabra dentro del conjunto de documentos.

Llamamos a este método Frecuencia de Frecuencia Inversa de Documentos (TFIDF) y normalmente funciona mejor para tareas de aprendizaje automático.

Incorporaciones de palabras

TFM y TFIDF son representaciones numéricas de documentos de texto que solo consideran la frecuencia y las frecuencias ponderadas para representar documentos de texto . Por el contrario, las incrustaciones de palabras pueden capturar el contexto de una palabra en un documento.

Con el contexto de la palabra, las incrustaciones pueden cuantificar la similitud entre palabras, lo que a su vez nos permite hacer aritmética con palabras.

Word2Vec es un método basado en redes neuronales que mapea palabras en un corpus a un vector numérico. Luego podemos usar estos vectores para encontrar sinónimos, realizar operaciones aritméticas con palabras o para representar documentos de texto (tomando la media de todos los vectores de palabras en un documento).

Por ejemplo, supongamos que usamos un corpus suficientemente grande de documentos de texto para estimar las incrustaciones de palabras. Supongamos también que las palabras king queen man y woman son ​​parte del corpus. Digamos que vector (“palabra”) es el vector numérico que representa la palabra “palabra” .

Para estimar vector (‘mujer’) podemos realizar la operación aritmética con vectores:

vector (‘rey’) + vector (‘mujer’) vector (‘hombre’) ~ vector (‘ reina’)

Aritmética con incrustaciones de palabras (vectores).

 

Las representaciones de palabras permiten encontrar similitudes entre palabras al calcular la similitud de coseno entre la representación de vectores de dos palabras. La similitud de coseno mide el ángulo entre dos vectores.

Calculamos incrustaciones de palabras utilizando métodos de Machine Learning para científicos de datos, pero eso suele ser un paso previo a la aplicación de un algoritmo de aprendizaje automático en la parte superior.

Por ejemplo, supongamos que tenemos acceso a los tweets de varios miles de usuarios de Twitter. Supongamos también que sabemos quién de estos usuarios de Twitter compró una casa. Para predecir la probabilidad de que un nuevo usuario de Twitter compre una casa, podemos combinar Word2Vec con una regresión logística.

Usted puede entrenar incrustaciones de palabras por sí mismo u obtener un conjunto de vectores de palabras previamente entrenados (aprendizaje por transferencia). Para descargar vectores de palabras pre-entrenados en 157 idiomas diferentes, eche un vistazo a FastText .

Resumen

He intentado cubrir los diez métodos de Machine Learning para científicos de datos más importantes: desde el más básico hasta el El borde sangrante. El estudio bien de estos métodos y la comprensión completa de los conceptos básicos de cada uno pueden servir como un punto de partida sólido para un estudio más profundo de algoritmos y métodos más avanzados.

Por supuesto, queda mucha información importante que cubrir, incluida la métrica de la calidad, validación cruzada, desequilibrio de clase en los métodos de clasificación y sobredimensionamiento de un modelo, por mencionar solo algunos. Estad atentos.

Dejá un comentario