PairwiseCouplingTrainer Clase

Definición

IEstimator<TTransformer> para entrenar un clasificador multiclase en pares que usa el clasificador binario especificado.

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

Comentarios

Para crear este instructor, use PairwiseCoupling.

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 No

Detalles del algoritmo de entrenamiento

En esta estrategia, se entrena un algoritmo de clasificación binaria en cada par de clases. Los pares no están ordenados pero se crean con reemplazo: por lo tanto, si hubiera tres clases, 0, 1, 2, entrenaríamos clasificadores para los pares (0,0), (0,1), (0,2), (1,1), (1,2) y (2,2). Para cada clasificador binario, un punto de datos de entrada se considera un ejemplo positivo si se encuentra en cualquiera de las dos clases del par y un ejemplo negativo de lo contrario. En el momento de la predicción, las probabilidades de cada par de clases se consideran la probabilidad de estar en cualquiera de las clases del par dados los datos y las probabilidades predictivas finales de cada clase se calculan teniendo en cuenta la probabilidad de que un ejemplo esté en cualquier par determinado.

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, mientras que una regresión logística multiclase es una manera más principal 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 por uno, como sería necesario para un modelo de clasificación de acoplamiento en pares.

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 multiclase en pares que usa el clasificador binario especificado.

(Heredado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos

Nombre Description
Fit(IDataView)

Ajusta los datos al transformador

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