IBM & Turbonomic | Observando el desempeño de las aplicaciones ¡Participa del Webinar!

Introducción a machine learning

Este artículo forma parte de la ruta de aprendizaje de Machine learning para desarrolladores.

Introducción

Machine learning es la ciencia en la que, para predecir un valor, se aplican algoritmos para que un sistema aprenda patrones dentro de los datos. Con el uso de datos suficientes, se establece la relación entre todas las variables de entrada y los valores a predecir. Es más fácil que el sistema prediga un nuevo valor dadas otras variables de entrada. Este enfoque difiere de la programación convencional donde una aplicación se desarrolla en base a reglas previamente establecidas. A pesar de que los conceptos fundamentales de machine learning han existido por algún tiempo, el tema ha ganado impulso recientemente debido a los procesadores de última generación y la abundante información disponible, que son clave para lograr predicciones precisas. Debido a que ya hay suficiente contenido disponible sobre la historia de machine learning, no cubrimos ese tema en este artículo. En cambio, te brindamos un enfoque práctico para comprender los conceptos necesarios que te ayudarán a empezar.

En este artículo se explican los siguientes conceptos:

  • Fundamentos de machine learning
  • Aprendizaje supervisado versus no supervisado
  • Desarrollo de modelo
  • Pipelines en machine learning

Fundamentos de machine learning

En esta sección, analizamos algunas de las terminologías básicas que se utilizan al trabajar con un proyecto de machine learning.

Álgebra lineal

El álgebra lineal es un campo de las matemáticas que se ocupa de las correlaciones entre variables. Se llama lineal porque la variable de salida se puede expresar en términos de las variables de entrada con potencias (exponentes) no mayores que uno. Comprender los conceptos básicos del álgebra lineal es de gran ayuda para comprender algunos de los conceptos básicos de machine learning. En esta sección, definimos algunos de los términos clave que se utilizan con frecuencia.

¿Qué son los tensores?

Comencemos con escalar. La representación escalar es básicamente cualquier número, como 1, 5, 23,5 o 42. Si agrupas varios escalares, acabarás con un vector. Por ejemplo, (1, 5, 23, 2) es un vector de longitud cuatro. En un vector, todos los elementos deben pertenecer al mismo tipo de datos, mientras que en una tupla, los tipos se pueden mezclar. Una matriz es una lista de vectores de igual tamaño. En una matriz, el número de filas puede ser diferente del número de columnas, pero cada elemento debe tener el mismo tipo. Una matriz con filas m y columnas n se denomina matrices m x n.

Los tensores son datos que se representan en un espacio multidimensional. Tensor es un término genérico para estas representaciones. Por ejemplo, un tensor de dimensión cero es un escalar, un tensor de una dimensión es un vector y un tensor de dos dimensiones es una matriz. La siguiente imagen muestra un ejemplo de un tensor 3D, que es básicamente una extensión de una matriz, pero en tres dimensiones.

tensor.png

Los tensores pueden ser útiles en algunos aspectos, como el procesamiento de imágenes. Es posible tener una dimensión para la altura, una para el ancho y otra para los colores.

Espacios vectoriales de alta dimensión

Comprender los espacios vectoriales de alta dimensión ayuda a brindarte una base sólida para comprender cómo funciona el machine learning. La siguiente imagen muestra un conjunto de datos que tiene tres columnas. Estas columnas se denominan dimensiones o características. La tabla también se denomina conjunto de datos tridimensionales. Cuando estos puntos se trazan en un espacio 3D, observamos tres nubes de puntos.

classification2.png

Una línea es una separación básica de puntos en un espacio bidimensional. En la imagen anterior, se ve una división que marca la separación de puntos en un espacio tridimensional. Esta línea en un espacio 3D se denomina plano. Si pasas de tres dimensiones a cuatro dimensiones o más, el plano se convierte en un hiperplano.

classification2.png

Identificar estas separaciones es fundamental porque una vez que se establecen las separaciones, predecir nuevos datos es simplemente identificar en qué parte de la separación se encuentra un punto de datos.

Machine learning supervisado versus no supervisado

Machine learning supervisado

El machine learning supervisado se refiere al tipo de problemas en los que cada registro del conjunto de datos contiene una etiqueta o bandera.

data_label.png

Ten en cuenta la siguiente tabla que contiene información sobre la temperatura máxima, la temperatura mínima y la vibración máxima.

table.png

La columna final, aspereza, es la etiqueta. Dados los datos de temperatura y vibración, queremos predecir la aspereza. Este es un conjunto de datos etiquetado.

Con este conjunto de datos que incluye la etiqueta, podemos entrenar a un algoritmo para predecir el futuro de los datos no etiquetados. Adapta eso en tu algoritmo y este ahora predice una etiqueta para estos datos. Esto se conoce como aprendizaje supervisado. Regresión y clasificación son los dos tipos de aprendizaje supervisado.

Regresión

El tipo de casos de uso en los que se debe predecir un valor continuo se denomina regresión. Por ejemplo, si pasamos al algoritmo los valores 35, 35 y 12, este predice un valor de aspereza de 0,32.

regression.png

Clasificación

El tipo de casos de uso en los que la salida es un valor binario o al menos un valor discreto en lugar de un valor continuo se denomina clasificación. En otras palabras, el algoritmo no predice un número, sino que predice una variable de clase.

table2.png

Por ejemplo, si pasamos al algoritmo los valores 35, 35 y 12, predice un valor 0 para dañado.

classification.png

Si solo tienes dos clases, se denomina clasificación binaria. Si tienes más de dos clases, tienes clasificación multiclase.

Aprendizaje no supervisado

El machine learning no supervisado se refiere al tipo de problemas en los que ningún registro del conjunto de datos contiene una etiqueta o bandera. Clustering es un tipo de machine learning no supervisado.

data2.png

Clustering

En la gráfica tridimensional mostrada anteriormente, observa los 3 clusters o nubes de datos. Con solo marcar la tabla, vemos que los datos se centran en tres clusters. Este proceso se llama clustering.

clustering.png

Desarrollo de modelo

Un modelo de machine learning se refiere a una configuración matemática que se crea utilizando datos vistos previamente y está configurada para predecir nuevos datos con un cierto grado de precisión que se calcula previamente.

A continuación, se muestra la secuencia de pasos que se realizan de forma iterativa para desarrollar un modelo desde cero.

  • Exploración de datos
  • Preprocesamiento de datos
  • División de datos para entrenamiento y pruebas
  • Preparación de un modelo de clasificación
  • Recopilación de todos estos pasos usando pipelines
  • Entrenamiento del modelo
  • Ejecución de predicciones en el modelo
  • Evaluación y visualización del rendimiento del modelo.

Un enfoque más detallado y práctico para desarrollar un modelo se describe en Crea y prueba tu primer modelo de machine learning usando Python y scikit-learn.

Pipelines

Pipelines es un proceso muy conveniente para diseñar el procesamiento de datos en un flujo de machine learning. El preprocesamiento de datos es un paso tedioso que debe aplicarse a los datos cada vez que comience el entrenamiento, independientemente del algoritmo que se aplique. La siguiente imagen muestra una secuencia típica de pasos de preprocesamiento que se aplica cada vez que comienza el modelado de datos.

pipelines-1.png

La idea es que al usar pipelines, es posible mantener el preprocesamiento y simplemente cambiar los diferentes algoritmos de modelado o diferentes conjuntos de parámetros de tu algoritmo de modelado. La idea general es que es posible fusionar todo el flujo de procesamiento de datos en un único pipeline, y ese único pipeline se puede utilizar posteriormente.

pipelines-2.png

De manera similar a un algoritmo de machine learning, los pipelines tienen métodos llamados adaptar, evaluar y puntuar. Básicamente, la adaptación inicia el entrenamiento y la puntuación devuelve el valor esperado.

pipelines-3.png

Validación cruzada es una de las mayores ventajas de usar pipelines. Se refiere al proceso de cambiar o ajustar varios hiperparámetros utilizando el mismo pipeline, lo que acelera la optimización de su algoritmo. Hay varios hiperparámetros que pueden ajustarse a modelos de mejor rendimiento. Los detalles relacionados con estos temas se tratan en un artículo futuro.

Resumen

Este tutorial proporcionó algunos de los conceptos básicos de machine learning. Es parte de la ruta de aprendizaje de Machine learning para desarrolladores. Para continuar con la ruta de aprendizaje, consulta el siguiente tutorial, Crea y prueba tu primer modelo de machine learning usando Python y scikit- learn.