Tareas de aprendizaje automático en ML.NET

Una tarea de aprendizaje automático es el tipo de predicción o inferencia que se está realizando, en función del problema o la pregunta que se está formulando, y los datos disponibles. Por ejemplo, la tarea de clasificación asigna datos a categorías y la tarea de agrupación en clústeres agrupa datos según su similitud.

Las tareas de aprendizaje automático se basan en patrones de los datos en lugar de programarse explícitamente.

En este artículo se describen las diferentes tareas de aprendizaje automático que puede elegir en ML.NET y algunos casos de uso comunes.

Cuando haya decidido qué tarea funciona en su escenario, debe elegir el mejor algoritmo para entrenar el modelo. Los algoritmos disponibles se muestran en la sección correspondiente a cada tarea.

Clasificación binaria

Una tarea de aprendizaje automatizado supervisado que se usa para predecir a cuál de las dos clases (categorías) pertenece una instancia de datos. La entrada de un algoritmo de clasificación es un conjunto de ejemplos con etiqueta, donde cada etiqueta es un número entero de 0 o 1. El resultado de un algoritmo de clasificación binaria es un clasificador, que puede usar para predecir la clase de nuevas instancias sin etiqueta. Entre los ejemplos de escenarios de clasificación binaria están los siguientes:

  • Comprensión del sentimiento de comentarios de Twitter en tanto que "positivos" o "negativos".
  • Diagnosticar si un paciente tiene una determinada enfermedad o no.
  • Tomar una decisión para marcar un correo electrónico como no deseado o no.
  • Determinar si una fotografía contiene un elemento determinado o no, como un perro o una fruta.

Para obtener más información, consulte el artículo de Wikipedia Binary classification (Clasificación binaria).

Instructores de clasificación binaria

Puede entrenar un modelo de clasificación binaria mediante los algoritmos siguientes:

Entradas y salidas de clasificación binaria

Para obtener los mejores resultados con la clasificación binaria, los datos de entrenamiento deben estar equilibrados (es decir, igual número de datos de entrenamiento positivos y negativos). Los valores que faltan se deben controlar antes del entrenamiento.

Los datos de la columna de etiquetas de entrada deben ser Boolean. Los datos de la columna de características de entrada deben ser un vector de tamaño fijo de Single.

Estos instructores generan las columnas siguientes:

Nombre de columna de salida Tipo de columna Descripción
Score Single Puntuación sin procesar calculada por el modelo
PredictedLabel Boolean Etiqueta de predicción, según el signo de la puntuación. Una puntuación negativa se asigna a false y una positiva a true.

Clasificación multiclase

Una tarea de aprendizaje automatizado supervisado que se usa para predecir la clase (categoría) de una instancia de datos. La entrada de un algoritmo de clasificación es un conjunto de ejemplos con etiqueta. Cada etiqueta se inicia normalmente como texto. Luego se ejecuta mediante TermTransform, que lo convierte al tipo de clave (numérico). El resultado de un algoritmo de clasificación es un clasificador, que puede usar para predecir la clase de nuevas instancias sin etiqueta. Entre los ejemplos de escenarios de clasificación multiclase están los siguientes:

  • Clasificar los vuelos como "anticipados", "puntuales" o "retrasados".
  • Comprender las críticas de películas como "positivas", "neutrales" o "negativas".
  • Categorizar las reseñas de hoteles en función de factores como "ubicación", "precio", "limpieza", etc.

Para obtener más información, consulte el artículo de Wikipedia Multiclass classification (Clasificación multiclase).

Nota

Uno frente a todos actualiza los mecanismos de aprendizaje de clasificación binaria para que actúen en conjuntos de datos multiclase. Más información en Wikipedia.

Instructores de clasificación multiclase

Puede entrenar un modelo de clasificación multiclase mediante los siguientes algoritmos de aprendizaje:

Entradas y salidas de clasificación multiclase

Los datos de la columna de etiquetas de entrada deben ser de tipo de clave. La columna de características debe ser un vector de tamaño fijo de Single.

Este instructor produce lo siguiente:

Nombre de archivo de salida Tipo Descripción
Score Vector de Single Puntuaciones de todas las clases. Un valor más alto indica mayor probabilidad de que caigan en la clase asociada. Si el elemento i-th tiene el valor más grande, el índice de la etiqueta de predicción sería i. Tenga en cuenta que i es el índice de base cero.
PredictedLabel Tipo de clave Índice de la etiqueta de predicción. Si su valor es i, la etiqueta real sería la categoría de i-th en el tipo de etiqueta de entrada con valores de clave.

Regresión

Una tarea de aprendizaje automatizado supervisado que se usa para predecir el valor de la etiqueta a partir de un conjunto de características relacionadas. La etiqueta puede tener cualquier valor real y no proviene de un conjunto finito de valores como en las tareas de clasificación. Los algoritmos de regresión modelan la dependencia de la etiqueta de sus características relacionadas para determinar cómo cambiará la etiqueta a medida que varíen los valores de las características. La entrada de un algoritmo de regresión es un conjunto de ejemplos con etiquetas de valores conocidos. El resultado de un algoritmo de regresión es una función, que puede utilizar para predecir el valor de etiqueta para cualquier nuevo conjunto de características de entrada. Estos son algunos ejemplos de escenarios de regresión:

  • Predecir los precios de la vivienda según los atributos de la casa, como el número de habitaciones, la ubicación o el tamaño.
  • Predecir los precios de las acciones futuras en función de los datos históricos y las tendencias del mercado actual.
  • Predecir las ventas de un producto en función del presupuesto para publicidad.

Instructores de regresión

Puede entrenar un modelo de regresión mediante los siguientes algoritmos:

Entradas y salidas de regresión

Los datos de la columna de etiquetas de entrada deben ser Single.

Los instructores para esta tarea producen lo siguiente:

Nombre de archivo de salida Tipo Descripción
Score Single Puntuación sin procesar que el modelo predijo

Agrupación en clústeres

Una tarea de aprendizaje automático no supervisado que se usa para agrupar instancias de datos en clústeres que contienen características similares. La agrupación en clústeres también se puede utilizar para identificar relaciones en un conjunto de datos que podrían no detectarse lógicamente mediante la exploración o la simple observación. Las entradas y salidas de un algoritmo de agrupación en clústeres dependen de la metodología elegida. Puede tomar un enfoque de distribución, centroide, de conectividad o de densidad. ML.NET admite actualmente un enfoque basado en centroide mediante la agrupación en clústeres K-Means. Entre los ejemplos de escenarios de agrupación en clústeres están los siguientes:

  • Comprender los segmentos de los huéspedes de un hotel según los hábitos y las características de las opciones de hotel.
  • Identificar segmentos y datos demográficos de clientes para ayudar a crear campañas publicitarias específicas.
  • Categorizar un inventario tomando como base las métricas de fabricación.

Instructor de agrupación en clústeres

Puede entrenar un modelo de agrupación en clústeres mediante el siguiente algoritmo:

Entradas y salidas de agrupación en clústeres

Los datos de las características de entrada deben ser Single. No se necesita ninguna etiqueta.

Este instructor produce lo siguiente:

Nombre de archivo de salida Tipo Descripción
Score Vector de Single Distancias del punto de datos especificado a los centroides de todos los clústeres
PredictedLabel Tipo de clave El índice del clúster más cercano predicho por el modelo.

Detección de anomalías

Esta tarea crea un modelo de detección de anomalías mediante el uso de análisis de componentes principales (PCA). La detección de anomalías basada en PCA le permite generar un modelo en escenarios donde resulta sencillo obtener datos de entrenamiento de una clase, como transacciones válidas, pero difícil obtener muestras suficientes de las anomalías de destino.

Una técnica establecida en aprendizaje automático, el PCA se suele usar en el análisis de datos exploratorios porque revela la estructura interna de los datos y explica la variación en los datos. El PCA funciona analizando datos que contienen varias variables. Busca correlaciones entre las variables y determina la combinación de valores que mejor capta las diferencias en los resultados. Estos valores de características combinados se usan para crear un espacio de características más compactas llamadas componentes principales.

La detección de anomalías engloba muchas tareas importantes de aprendizaje automático:

  • La identificación de transacciones potencialmente fraudulentas.
  • El aprendizaje de patrones que indican que se ha producido una intrusión de red.
  • La búsqueda de clústeres anómalos de pacientes.
  • La comprobación de los valores especificados en un sistema.

Dado que las anomalías son eventos excepcionales por definición, puede ser difícil recopilar una muestra representativa de datos que usar en el modelado. Los algoritmos que se incluyen en esta categoría se han diseñado especialmente para abordar los principales desafíos de compilar y entrenar modelos mediante el uso de conjuntos de datos desequilibrados.

Instructor de detección de anomalías

Puede entrenar un modelo de detección de anomalías mediante el siguiente algoritmo:

Salidas y entradas de detección de anomalías

Las características de entrada deben ser un vector de tamaño fijo de Single.

Este instructor produce lo siguiente:

Nombre de archivo de salida Tipo Descripción
Score Single Puntuación no negativa sin enlazar que ha calculado el modelo de detección de anomalías
PredictedLabel Boolean Un valor true o false que representa si la entrada es una anomalía (PredictedLabel=true) o no (PredictedLabel=false)

Clasificación

Una tarea de clasificación construye un clasificador a partir de un conjunto de ejemplos etiquetados. Este conjunto de ejemplos consta de grupos de instancias que se pueden puntuar con un criterio determinado. Las etiquetas de clasificación son {0, 1, 2, 3, 4} para cada instancia. El clasificador está entrenado para clasificar nuevos grupos de instancias con puntuaciones desconocidas para cada instancia. Los mecanismos de aprendizaje de clasificación de ML.NET se basan en la clasificación aprendida automáticamente.

Algoritmos de aprendizaje de clasificación

Puede entrenar un modelo de clasificación mediante los algoritmos siguientes:

Salidas y entradas de clasificación

El tipo de datos de la etiqueta de entrada debe ser de tipo de clave o Single. El valor de la etiqueta determina la relevancia, donde los valores más altos indican mayor relevancia. Si la etiqueta es de tipo de clave, entonces el índice de la clave es el valor de relevancia, donde el índice más pequeño es el menos relevante. Si la etiqueta es un Single, los valores mayores indican mayor relevancia.

Los datos de la característica deben ser un vector de tamaño fijo de Single y la columna de grupo de filas de entrada debe ser de tipo de clave.

Este instructor produce lo siguiente:

Nombre de archivo de salida Tipo Descripción
Score Single Puntuación sin enlazar que ha calculado el modelo para determinar la predicción

Recomendación

Una tarea de recomendación permite generar una lista de productos o servicios recomendados. ML.NET utiliza la factorización matricial (MF), un algoritmo de filtrado de colaboración de las recomendaciones cuando hay datos históricos de clasificación de productos en el catálogo. Por ejemplo, tiene datos históricos de clasificación de películas para los usuarios y quiere recomendar otras películas que puedan ver a continuación.

Algoritmos de aprendizaje de recomendación

Puede entrenar un modelo de recomendación mediante el siguiente algoritmo:

Previsión

La tarea de previsión usa datos de serie temporal pasados para realizar predicciones sobre el comportamiento futuro. Los escenarios aplicables a la previsión incluyen previsiones meteorológicas, predicciones de ventas estacionales y mantenimiento predictivo.

Instructores de previsión

Puede entrenar un modelo de previsión con el algoritmo siguiente:

ForecastBySsa

Clasificación de imágenes

Una tarea de aprendizaje automatizado supervisado que se usa para predecir la clase (categoría) de una imagen. La entrada es un conjunto de ejemplos con etiqueta. Cada etiqueta se inicia normalmente como texto. Luego se ejecuta mediante TermTransform, que lo convierte al tipo de clave (numérico). El resultado de un algoritmo de clasificación de imágenes es un clasificador, que puede usar para predecir la clase de nuevas imágenes. La tarea de clasificación de imágenes es un tipo de clasificación multiclase. Entre los ejemplos de escenarios de clasificación de imágenes destacan los siguientes:

  • Determinar la raza de un perro como "husky siberiano", "labrador", "caniche", etc.
  • Determinar si un producto de fabricación es defectuoso o no.
  • Determinar los tipos de flores, como "rosa", "girasol", etc.

Instructores de clasificación de imágenes

Puede entrenar un modelo de clasificación de imágenes mediante los siguientes algoritmos de aprendizaje:

Entradas y salidas de clasificación de imágenes

Los datos de la columna de etiquetas de entrada deben ser de tipo de clave. La columna de características debe ser un vector de tamaño variable de Byte.

Este instructor genera las siguientes columnas:

Nombre de archivo de salida Tipo Descripción
Score Single Puntuaciones de todas las clases. Un valor más alto indica mayor probabilidad de que caigan en la clase asociada. Si el elemento i-th tiene el valor más grande, el índice de la etiqueta de predicción sería i. Tenga en cuenta que i es el índice de base cero.
PredictedLabel Tipo de clave Índice de la etiqueta de predicción. Si su valor es i, la etiqueta real sería la categoría de i-th en el tipo de etiqueta de entrada con valores de clave.

Detección de objetos

Una tarea de aprendizaje automático supervisado que se usa para predecir la clase (categoría) de una imagen, pero que también proporciona un rectángulo de selección donde esa categoría está dentro de la imagen. En lugar de clasificar un único objeto en una imagen, la detección de objetos puede detectar varios objetos dentro de una imagen. Entre los ejemplos de detección de objetos se incluyen:

  • Detectar automóviles, señales o personas en las imágenes de una carretera.
  • Detectar defectos en las imágenes de productos.
  • Detectar áreas de interés en las imágenes de rayos X.

Actualmente, el entrenamiento del modelo de detección de objetos solo está disponible en Model Builder mediante Azure Machine Learning.