Cómo elegir un algoritmo de ML.NET

Para cada tarea de ML.NET, existen varios algoritmos de entrenamiento de donde elegir. La elección depende del problema que intenta resolver, las características de los datos y los recursos de proceso y almacenamiento que tiene a su disposición. Es importante tener en cuenta que entrenar un modelo de Machine Learning es un proceso iterativo. Es posible que deba probar varios algoritmos para encontrar el que mejor funcione.

Los algoritmos funcionan con características. Las características son valores numéricos calculados a partir de los datos de entrada. Son entradas óptimas para los algoritmos de aprendizaje automático. Transforme sus datos de entrada sin formato en características mediante una o varias de las transformaciones de datos. Por ejemplo, los datos de texto se transforman en un conjunto de recuentos de palabras y recuentos de combinación de palabras. Una vez extraídas las características de un tipo de datos sin formato mediante transformaciones de datos, se dice que están caracterizadas. Por ejemplo, texto caracterizado o datos de imagen caracterizados.

Instructor = algoritmo + tarea

Un algoritmo es la expresión matemática que se ejecuta para generar un modelo. Diferentes algoritmos generan modelos con diferentes características.

Con ML.NET, se puede aplicar el mismo algoritmo a distintas tareas. Por ejemplo, se puede usar el ascenso coordinado dual estocástico para la clasificación binaria, la clasificación multiclase y la regresión. La diferencia radica en cómo se interpreta la salida del algoritmo para que coincida con la tarea.

Para cada combinación de tarea o algoritmo, ML.NET proporciona un componente que ejecuta el algoritmo de entrenamiento y hace la interpretación. Estos componentes se denominan instructores. Por ejemplo, SdcaRegressionTrainer usa el algoritmo StochasticDualCoordinatedAscent que se aplica a la tarea de regresión.

Algoritmos lineales

Los algoritmos lineales generan un modelo que calcula puntuaciones desde una combinación lineal de los datos de entrada y un conjunto de pesos. Los pesos son parámetros del modelo estimado durante el entrenamiento.

Los algoritmos lineales funcionan bien para las características que se pueden separar de manera lineal.

Antes del entrenamiento con un algoritmo lineal, se deben normalizar las características. Esto evita que una característica tenga más influencia sobre el resultado que otros.

En general, los algoritmos lineales son escalables, rápidos y baratos de entrenar y predecir. Se escalan por el número de características y aproximadamente por el tamaño del conjunto de datos de entrenamiento.

Los algoritmos lineales realizan varios recorridos por los datos de entrenamiento. Si el conjunto de datos cabe en la memoria, la adición de un punto de control de memoria caché a la canalización de ML.NET antes de anexar el instructor hará que el entrenamiento se ejecute más rápidamente.

Perceptrón promedio

Ideal para la clasificación de textos.

Formador Tarea ONNX Exportable
AveragedPerceptronTrainer Clasificación binaria

Ascenso coordinado dual estocástico

No es necesario optimizar para obtener un buen rendimiento predeterminado.

Formador Tarea ONNX Exportable
SdcaLogisticRegressionBinaryTrainer Clasificación binaria
SdcaNonCalibratedBinaryTrainer Clasificación binaria
SdcaMaximumEntropyMulticlassTrainer Clasificación multiclase
SdcaNonCalibratedMulticlassTrainer Clasificación multiclase
SdcaRegressionTrainer Regresión

L-BFGS

Se utiliza cuando el número de características es grande. Genera estadísticas de entrenamiento de regresión logística, pero no se escala tan bien como AveragedPerceptronTrainer.

Formador Tarea ONNX Exportable
LbfgsLogisticRegressionBinaryTrainer Clasificación binaria
LbfgsMaximumEntropyMulticlassTrainer Clasificación multiclase
LbfgsPoissonRegressionTrainer Regresión

Descenso de gradiente estocástico simbólico

Instructor de clasificación binaria lineal más rápido y más preciso. Se escala bien con el número de procesadores.

Formador Tarea ONNX Exportable
SymbolicSgdLogisticRegressionBinaryTrainer Clasificación binaria

El descenso de gradiente en línea

Implementa el descenso de gradiente estocástico estándar (no por lotes), con una selección de funciones de pérdida, y una opción para actualizar el vector de peso usando el promedio de los vectores detectados a lo largo del tiempo.

Formador Tarea ONNX Exportable
OnlineGradientDescentTrainer Regresión

Algoritmos de árbol de decisión

Los algoritmos de árbol de decisión crean un modelo que contiene una serie de decisiones: eficazmente un diagrama de flujo a través de los valores de datos.

Para usar este tipo de algoritmo, no es necesario poder separar las características de forma lineal. Tampoco es necesario normalizar las características, porque los valores individuales en el vector de la característica se usan de forma independiente en el proceso de toma de decisiones.

Los algoritmos de árbol de decisión normalmente son muy precisos.

Salvo por los modelos aditivos generalizados (GAM), los modelos de árbol carecen de explicación cuando el número de características es grande.

Los algoritmos de árbol de decisión consumen más recursos y no se escalan tan bien como los lineales. Se desempeñan bien en los conjuntos de datos que pueden caber en la memoria.

Los árboles de decisión potenciados son un conjunto de árboles pequeños, donde cada árbol asigna una puntuación a los datos de entrada y pasa la puntuación al árbol siguiente para generar una mejor puntuación y así sucesivamente, donde cada árbol en el conjunto mejora al anterior.

Máquina potenciada de degradado ligero

Instructores de árbol de clasificación binaria más rápidos y más precisos. Altamente optimizable.

Formador Tarea ONNX Exportable
LightGbmBinaryTrainer Clasificación binaria
LightGbmMulticlassTrainer Clasificación multiclase
LightGbmRegressionTrainer Regresión
LightGbmRankingTrainer Clasificación No

Árbol rápido

Se usa para los datos de imagen caracterizados. Resistente a los datos no equilibrados. Altamente optimizable.

Formador Tarea ONNX Exportable
FastTreeBinaryTrainer Clasificación binaria
FastTreeRegressionTrainer Regresión
FastTreeTweedieTrainer Regresión
FastTreeRankingTrainer Clasificación No

Bosque rápido

Funciona bien con datos ruidosos.

Formador Tarea ONNX Exportable
FastForestBinaryTrainer Clasificación binaria
FastForestRegressionTrainer Regresión

Modelo aditivo generalizado (GAM)

Ideal para problemas que funcionan bien con los algoritmos de árbol, pero en los que la explicación es una prioridad.

Formador Tarea ONNX Exportable
GamBinaryTrainer Clasificación binaria No
GamRegressionTrainer Regresión No

Factorización matricial

Factorización matricial

Se utiliza para el filtrado colaborativo en la recomendación.

Formador Tarea ONNX Exportable
MatrixFactorizationTrainer Recomendación No

Máquinas de factorización con reconocimiento de campo

Ideal para datos categóricos dispersos, con grandes conjuntos de datos.

Formador Tarea ONNX Exportable
FieldAwareFactorizationMachineTrainer Clasificación binaria No

Meta-algoritmos

Estos instructores crean un instructor multiclase a partir de un instructor binario. Usar con AveragedPerceptronTrainer, LbfgsLogisticRegressionBinaryTrainer, SymbolicSgdLogisticRegressionBinaryTrainer, LightGbmBinaryTrainer, FastTreeBinaryTrainer, FastForestBinaryTrainer, GamBinaryTrainer.

Uno frente a todos

Este clasificador multiclase entrena un clasificador binario para cada clase, que distingue esa clase de todas las demás. Está limitado en la escala por el número de clases para clasificar.

Formador Tarea ONNX Exportable
OneVersusAllTrainer Clasificación multiclase

Acoplamiento en pares

Este clasificador multiclase entrena un algoritmo de clasificación binaria en cada par de clases. Está limitado en la escala por el número de clases, ya que cada combinación de dos clases debe entrenarse.

Formador Tarea ONNX Exportable
PairwiseCouplingTrainer Clasificación multiclase No

K-Means

Se usa para la agrupación en clústeres.

Formador Tarea ONNX Exportable
KMeansTrainer Agrupación en clústeres

Análisis de componentes principales

Se usa para la detección de anomalías.

Formador Tarea ONNX Exportable
RandomizedPcaTrainer Detección de anomalías No

Bayes naive

Use este algoritmo de clasificación multiclase cuando las características sean independientes y el conjunto de datos de entrenamiento sea pequeño.

Formador Tarea ONNX Exportable
NaiveBayesMulticlassTrainer Clasificación multiclase

Instructor anterior

Use este algoritmo de clasificación binaria para marcar el rendimiento de otros instructores. Para ser eficaces, las métricas de los otros instructores deben ser mejores que el instructor anterior.

Formador Tarea ONNX Exportable
PriorTrainer Clasificación binaria

Máquina de vectores de soporte

Las máquinas de vectores de soporte (SVM) son una clase muy popular y contrastada de modelos de aprendizaje supervisados, que se puede usar en tareas de clasificación lineal y no lineal.

Las investigaciones recientes se han centrado en maneras de optimizar estos modelos para escalar de forma eficaz a conjuntos de entrenamiento más grandes.

SVM lineal

Predice un destino mediante un modelo de clasificación binaria lineal entrenado a través de datos de etiqueta booleanos. Alterna entre pasos de descenso de gradiente estocástico y pasos de proyección.

Formador Tarea ONNX Exportable
LinearSvmTrainer Clasificación binaria

Modelo SVM profundo local

Predice un objetivo utilizando un modelo de clasificación binaria no lineal. Reduce el costo de tiempo de predicción; el costo de predicción aumenta logarítmicamente con el tamaño del conjunto de entrenamiento, en lugar de linealmente, con una pérdida tolerable en la precisión de la clasificación.

Formador Tarea ONNX Exportable
LdSvmTrainer Clasificación binaria

Ordinaria de mínimos cuadrados

La ordinaria de mínimos cuadrados es una de las técnicas que se emplean con más frecuencia en regresión lineal.

Los mínimos cuadrados hacen referencia a la función de pérdida, que calcula el error como la suma del cuadrado de la distancia entre el valor real y la línea predicha, y ajusta el modelo minimizando el error cuadrático. Este método presupone una sólida relación lineal entre las entradas y la variable dependiente.

Formador Tarea ONNX Exportable
OlsTrainer Regresión