Compartir a través de


OneVersusAllTrainer Clase

Definición

IEstimator<TTransformer> para entrenar un clasificador uno frente a todo de varias clases que usa el clasificador binario especificado.

public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
Herencia

Comentarios

Para crear este instructor, use OneVersusAll.

Columnas de entrada y salida

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

Este instructor genera las siguientes columnas:

Nombre de columna de salida Tipo de columna 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.

Características del entrenador

Tarea de Machine Learning Clasificación multiclase
¿Se requiere normalización? Depende del clasificador binario subyacente
¿Se requiere el almacenamiento en caché?
NuGet necesario además de Microsoft.ML None
Exportable a ONNX

Detalles del algoritmo de entrenamiento

En la estrategia uno frente a todo (OVA), se usa un algoritmo de clasificación binaria para entrenar un clasificador para cada clase, que distingue esa clase de todas las demás clases. A continuación, la predicción se realiza mediante la ejecución de estos clasificadores binarios y la elección de la predicción con la puntuación de confianza más alta. Este algoritmo se puede usar con cualquiera de los clasificadores binarios de ML.NET. Algunos clasificadores binarios ya tienen implementación para problemas de varias clases, por lo que los usuarios pueden elegir cualquiera de ellos en función del contexto. La versión OVA de un clasificador binario, como ajustar un LightGbmBinaryTrainer, puede ser diferente de LightGbmMulticlassTrainer, que desarrolla un clasificador de varias clases directamente. Tenga en cuenta que incluso si el clasificador indica que no necesita almacenamiento en caché, OneVersusAll siempre solicitará el almacenamiento en caché, ya que realizará varios pasos sobre el conjunto de datos. Este instructor solicitará la normalización de la canalización de datos si el clasificador indica que se beneficiaría de ella.

Esto puede permitirle aprovechar entrenadores que no tienen naturalmente una opción multiclase, por ejemplo, mediante el uso de FastTreeBinaryTrainer para resolver un problema de varias clases. Como alternativa, puede permitir que ML.NET resolver un problema "más sencillo" incluso en los casos en los que el instructor tenga una opción de varias clases, pero usarlo directamente no es práctico debido a restricciones de memoria, normalmente. Por ejemplo, mientras que una regresión logística multiclase es una manera más básica de resolver un problema de varias clases, requiere que el instructor almacene mucho más estado intermedio en forma de historial de L-BFGS para todas las clases simultáneamente, en lugar de solo uno a uno, como sería necesario para un modelo de clasificación uno frente a todo.

Consulte la sección Consulte también los vínculos a ejemplos de uso.

Propiedades

Info

IEstimator<TTransformer> para entrenar un clasificador uno frente a todo de varias clases que usa el clasificador binario especificado.

(Heredado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos

Fit(IDataView)

Entrena un MulticlassPredictionTransformer<TModel> modelo.

GetOutputSchema(SchemaShape)

Obtiene las columnas de salida.

(Heredado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos de extensión

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de nivel inferior se entrenarán con los datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador está enterrado en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit.

Se aplica a

Consulte también