OneVersusAllTrainer Clase

Definición

IEstimator<TTransformer> para entrenar un clasificador uno frente a todo multiclase 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 columnas siguientes:

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

Características del entrenador

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

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 encapsular un LightGbmBinaryTrainer, puede ser diferente de LightGbmMulticlassTrainer, que desarrolla directamente un clasificador de varias clases. Tenga en cuenta que incluso si el clasificador indica que no necesita almacenamiento en caché, OneVersusAll solicitará siempre 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 los 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 multiclase, pero usarlo directamente no es práctico debido, normalmente, a las restricciones de memoria. Por ejemplo, aunque una regresión logística multiclase es una manera más basada en principios de resolver un problema multiclase, requiere que el instructor almacene un estado mucho más intermedio en forma de historial 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 Ver también para obtener vínculos a ejemplos de uso.

Propiedades

Nombre Description
Info

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

(Heredado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos

Nombre Description
Fit(IDataView)

Entrena un MulticlassPredictionTransformer<TModel> modelo.

GetOutputSchema(SchemaShape)

Obtiene las columnas de salida.

(Heredado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos de extensión

Nombre Description
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 se ha ajustado, por lo que el Fit(IDataView) método devuelve un objeto específicamente tipado, 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