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 | Sí |
Ascenso coordinado dual estocástico
No es necesario optimizar para obtener un buen rendimiento predeterminado.
Formador | Tarea | ONNX Exportable |
---|---|---|
SdcaLogisticRegressionBinaryTrainer | Clasificación binaria | Sí |
SdcaNonCalibratedBinaryTrainer | Clasificación binaria | Sí |
SdcaMaximumEntropyMulticlassTrainer | Clasificación multiclase | Sí |
SdcaNonCalibratedMulticlassTrainer | Clasificación multiclase | Sí |
SdcaRegressionTrainer | Regresión | Sí |
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 | Sí |
LbfgsMaximumEntropyMulticlassTrainer | Clasificación multiclase | Sí |
LbfgsPoissonRegressionTrainer | Regresión | Sí |
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 | Sí |
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 | Sí |
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 | Sí |
LightGbmMulticlassTrainer | Clasificación multiclase | Sí |
LightGbmRegressionTrainer | Regresión | Sí |
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 | Sí |
FastTreeRegressionTrainer | Regresión | Sí |
FastTreeTweedieTrainer | Regresión | Sí |
FastTreeRankingTrainer | Clasificación | No |
Bosque rápido
Funciona bien con datos ruidosos.
Formador | Tarea | ONNX Exportable |
---|---|---|
FastForestBinaryTrainer | Clasificación binaria | Sí |
FastForestRegressionTrainer | Regresión | Sí |
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 | Sí |
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 | Sí |
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 | Sí |
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 | Sí |
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 | Sí |
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 | Sí |
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 | Sí |