Compartir a través de


Tareas de aprendizaje automático en ML.NET

Un aprendizaje automático tarea es un tipo de predicción o inferencia que se basa en ambos:

  • El problema o la pregunta
  • Los datos disponibles

Por ejemplo, la tarea de clasificación asigna datos a categorías y los datos de agrupación en clústeres agrupan datos según la similitud.

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

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

Una vez que haya decidido qué tarea funciona para su escenario, debe elegir el mejor algoritmo para entrenar el modelo. Los algoritmos disponibles se enumeran en la sección de cada tarea.

Tareas de clasificación

Clasificación binaria

La clasificación binaria es un Aprendizaje automático supervisado tarea que se utiliza para predecir cuál de Exactamente dos Clases (categorías) a las que pertenece una instancia de datos. La entrada de un algoritmo de clasificación es un conjunto de ejemplos etiquetados, donde cada etiqueta es un entero de 0 o 1. La salida de un algoritmo de clasificación binaria es un clasificador, que puede usar para predecir la clase de nuevas instancias sin etiquetar. Entre los ejemplos de escenarios de clasificación binaria se incluyen:

  • Comprender el sentimiento de los comentarios de Twitter ya sea positivo o negativo.
  • Diagnóstico de si un paciente tiene una determinada enfermedad.
  • Tomar una decisión para marcar un correo electrónico como correo no deseado.
  • Determinar si una foto contiene un elemento determinado, como un perro o una fruta.

Para obtener más información, consulte el artículo clasificación binaria en Wikipedia.

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 clasificación binaria, los datos de entrenamiento deben equilibrarse (es decir, los números iguales de datos de entrenamiento positivos y negativos). Los valores que faltan deben gestionarse antes de la formación.

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

Estos instructores generan las columnas siguientes:

Nombre de la columna de salida Tipo de columna Descripción
Score Single La puntuación sin procesar que calculó 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 puntuación positiva se asigna a true.

Clasificación multiclase

La clasificación multiclase es una Aprendizaje automático supervisado tarea que se utiliza para clasificar una instancia de datos en uno de tres o más Clases (categorías). La entrada de un algoritmo de clasificación es un conjunto de ejemplos etiquetados. Normalmente, cada etiqueta se inicia como texto. A continuación, se ejecuta a través de TermTransform, que lo convierte en el tipo Key (numérico). La salida de un algoritmo de clasificación es un clasificador, que puede usar para predecir la clase de nuevas instancias sin etiquetar. Entre los ejemplos de escenarios de clasificación multiclase se incluyen:

  • Clasificar los vuelos como "temprano", "a tiempo" o "tarde".
  • Comprender las reseñas de películas como "positivas", "neutrales" o "negativas".
  • Clasificar las opiniones sobre hoteles como "ubicación", "precio" o "limpieza", por ejemplo.

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

Nota

Uno contra resto Actualiza cualquier Aprendiz de clasificación binaria para actuar sobre conjuntos de datos multiclase.

Instructores de clasificación multiclase

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

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ística debe ser un vector de tamaño fijo de Single.

Este instructor genera lo siguiente:

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

Clasificación de texto

La clasificación de texto es una subcategoría de clasificación multiclase que se ocupa específicamente del texto sin formato. El texto plantea desafíos interesantes porque tiene que tener en cuenta el contexto y la semántica en los que se produce el texto. Por lo tanto, puede ser difícil codificar el significado y el contexto.

Modelos de Aprendizaje Profundo han surgido como una técnica prometedora para resolver problemas de lenguaje natural. Más concretamente, un tipo de red neuronal conocida como transformador de se ha convertido en la forma predominante de resolver problemas de lenguaje natural, como la clasificación de texto, la traducción, el resumen y la respuesta a preguntas. Algunas arquitecturas de transformadores populares para tareas de lenguaje natural incluyen:

  • Representaciones de codificadores bidireccionales de transformadores (BERT)
  • Enfoque de preentrenamiento BERT sólidamente optimizado (RoBERTa)
  • Transformador generativo preentrenado (GPT)

La API de clasificación de texto ML.NET se basa en TorchSharp. TorchSharp es una biblioteca de .NET que proporciona acceso a la biblioteca que impulsa PyTorch. TorchSharp contiene los bloques de creación para entrenar redes neuronales desde cero en .NET. ML.NET abstrae parte de la complejidad de TorchSharp en el nivel de escenario. Utiliza una versión preentrenada de la función NAS-BERT modele y lo ajuste con sus datos.

Para obtener un ejemplo de clasificación de texto, consulte Introducción a la API de clasificación de texto.

Clasificación de imágenes

La clasificación de imágenes es un aprendizaje automático supervisado tarea que se usa para predecir la clase (categoría) de una imagen. La entrada es un conjunto de ejemplos etiquetados. Normalmente, cada etiqueta se inicia como texto. A continuación, se pasa por TermTransform, que lo convierte en el tipo Clave (numérico). La salida del 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 se incluyen:

  • Determinar la raza de un perro como un "Siberian Husky", "Golden Retriever", "Poodle", etc.
  • Determinar si un producto de fabricación es defectuoso o no.
  • Determinar qué tipos de flores son "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 entrenamiento:

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ística debe ser un vector de tamaño variable de Byte.

Este instructor genera las columnas siguientes:

Nombre de salida Tipo Descripción
Score Single Puntuaciones de todas las clases. El valor más alto significa una mayor probabilidad de caer en la clase asociada. Si el elemento i-th tiene el valor más grande, el índice de etiqueta previsto sería i. (i es un índice de base cero).
PredictedLabel Llave tipo Índice de la etiqueta de predicción. Si su valor es i, la etiqueta real sería la categoría i-th en el tipo de etiqueta de entrada con valores clave.

Regresión

La regresión es una tarea de aprendizaje automático supervisado que se usa para predecir el valor de la etiqueta a partir de un conjunto de características relacionadas. La etiqueta puede ser de cualquier valor real y no procede de un conjunto finito de valores como en las tareas de clasificación. Los algoritmos de regresión modelan la dependencia de la etiqueta en sus características relacionadas para determinar cómo cambiará la etiqueta a medida que varían los valores de las características. La entrada de un algoritmo de regresión es un conjunto de ejemplos con etiquetas de valores conocidos. La salida de un algoritmo de regresión es una función, que puede usar para predecir el valor de etiqueta de cualquier nuevo conjunto de características de entrada. Entre los ejemplos de escenarios de regresión se incluyen:

  • Predicción de los precios de las casas en función de los atributos de la vivienda, como el número de dormitorios, la ubicación o el tamaño.
  • Predicción de los precios futuros de las acciones en función de los datos históricos y las tendencias actuales del mercado.
  • Predicción de las ventas de un producto en función de los presupuestos publicitarios.
  • Búsqueda de artículos relacionados en una publicación (similitud de oraciones).

Instructores de regresión

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

Entradas y salidas de regresión

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

Los instructores para esta tarea producen lo siguiente:

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

Agrupamiento

La agrupación en clústeres es 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 usar para identificar relaciones en un conjunto de datos que es posible que no derive lógicamente mediante la exploración o la observación simple. Las entradas y salidas de un algoritmo de agrupación en clústeres dependen de la metodología elegida. Puede adoptar un enfoque de distribución, centroide, conectividad o basado en 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 se incluyen:

  • Descripción de los segmentos de los huéspedes del hotel en función de los hábitos y características de las opciones de hotel.
  • Identificar segmentos de clientes y datos demográficos para ayudar a crear campañas publicitarias dirigidas.
  • Clasificar el inventario en función de 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 algoritmo siguiente:

Agrupación en clústeres de entradas y salidas

Los datos de las características de entrada deben ser Single. No se necesitan etiquetas.

Este instructor genera lo siguiente:

Nombre de salida Tipo Descripción
Score Vector de Single Las distancias del punto de dato dado a los centroides de todos los clústeres.
PredictedLabel llave tipo Índice del clúster más cercano previsto por el modelo.

Detección de anomalías

La tarea de detección de anomalías crea un modelo de detección de anomalías mediante el análisis de componentes principal (PCA). La detección de anomalías basada en PCA le ayuda a crear un modelo en escenarios en los que es fácil obtener datos de entrenamiento de una clase, como transacciones válidas, pero difícil obtener suficientes muestras de las anomalías objetivo.

Una técnica establecida en el aprendizaje automático, PCA se usa con frecuencia en el análisis exploratorio de datos porque revela la estructura interna de los datos y explica la varianza en los datos. PCA funciona mediante el análisis de datos que contienen varias variables. Busca correlaciones entre las variables y determina la combinación de valores que mejor captura las diferencias en los resultados. Estos valores de características combinados se usan para crear un espacio de características más compacto denominado componentes principales.

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

  • Identificación de transacciones potencialmente fraudulentas.
  • Patrones de aprendizaje que indican que se ha producido una intrusión de red.
  • Búsqueda de clústeres anómalos de pacientes.
  • Comprobación de los valores introducidos en un sistema.

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

Instructor de detección de anomalías

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

Entradas y salidas de detección de anomalías

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

Este instructor genera lo siguiente:

Nombre de salida Tipo Descripción
Score Single Puntuación no negativa y sin límites calculada por el modelo de detección de anomalías.
PredictedLabel Boolean true si la entrada es una anomalía o false si no es así.

Clasificación

Una tarea de clasificación construye un clasificador a partir de un conjunto de ejemplos etiquetados. Este conjunto de ejemplo 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 se entrena para clasificar nuevos grupos de instancias con puntuaciones desconocidas para cada instancia. ML.NET clasificación de los estudiantes son clasificación aprendida por máquina basado.

Algoritmos de entrenamiento de clasificación

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

Clasificación de entradas y salidas

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 una clave de tipo , 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 más grandes 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 genera lo siguiente:

Nombre de salida Tipo Descripción
Score Single Puntuación ilimitada calculada por 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 es probable que vean a continuación.

Algoritmos de entrenamiento de recomendaciones

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

Previsión

La tarea de previsión usa datos de series temporales anteriores para realizar predicciones sobre el comportamiento futuro. Entre los escenarios aplicables a la previsión se incluyen la previsión meteorológica, las predicciones de ventas estacionales y el mantenimiento predictivo.

Instructores de previsión

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

ForecastBySsa

Detección de objetos

La detección de objetos es una tarea de aprendizaje automático supervisado que se usa para predecir la clase (categoría) de una imagen, pero también proporciona un cuadro delimitador donde esa categoría está dentro de la imagen. En lugar de clasificar un solo 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 coches, señales o personas en imágenes de una carretera.
  • Detección de defectos en imágenes de productos.
  • Detección de áreas de preocupación en imágenes X-Ray.

El entrenamiento del modelo de detección de objetos solo está disponible actualmente en Generador de modelos mediante Azure Machine Learning.