OneVersusAllTrainer Classe

Definição

Para IEstimator<TTransformer> treinar um classificador de várias classes um contra todos que usa o classificador binário 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)
Herança

Comentários

Para criar este treinador, use OneVersusAll.

Colunas de entrada e saída

Os dados da coluna do rótulo de entrada devem ser do tipo chave e a coluna de recurso deve ser um vetor de tamanho conhecido de Single.

Este treinador gera as seguintes colunas:

Nome da Coluna de Saída Tipo de coluna Descrição
Score Vetor de Single As pontuações de todas as classes. Um valor mais alto significa maior probabilidade de se enquadrar na classe associada. Se o elemento iº elemento tiver o maior valor, o índice de rótulo previsto será i. Observe que i é o índice baseado em zero.
PredictedLabel tipo de chave O índice do rótulo previsto. Se seu valor for i, o rótulo real será a iº categoria no tipo de rótulo de entrada com valor de chave.

Características do Treinador

Ferramenta de machine learning Classificação multiclasse
A normalização é necessária? Depende do classificador binário subjacente
O cache é necessário? Sim
NuGet necessário além de Microsoft.ML Nenhum
Exportável para ONNX Sim

Detalhes do algoritmo de treinamento

Na estratégia de um contra todos (OVA), um algoritmo de classificação binária é usado para treinar um classificador para cada classe, o que distingue essa classe de todas as outras classes. A previsão é então executada executando esses classificadores binários e escolhendo a previsão com a maior pontuação de confiança. Esse algoritmo pode ser usado com qualquer um dos classificadores binários no ML.NET. Alguns classificadores binários já têm implementação para problemas de várias classes, portanto, os usuários podem escolher qualquer um dependendo do contexto. A versão OVA de um classificador binário, como encapsular um LightGbmBinaryTrainer, pode ser diferente de LightGbmMulticlassTrainer, que desenvolve um classificador de várias classes diretamente. Observe que, mesmo que o classificador indique que não precisa de cache, o OneVersusAll sempre solicitará o cache, pois ele executará várias passagens pelo conjunto de dados. Esse treinador solicitará a normalização do pipeline de dados se o classificador indicar que ele se beneficiaria dele.

Isso pode permitir que você explore treinadores que não têm naturalmente uma opção de multiclasse, por exemplo, usando o FastTreeBinaryTrainer para resolver um problema de várias classes. Como alternativa, ele pode permitir que ML.NET resolva um problema "mais simples", mesmo nos casos em que o treinador tem uma opção de várias classes, mas usá-lo diretamente não é prático devido, geralmente, a restrições de memória. Por exemplo, embora uma regressão logística multiclasse seja uma maneira mais com princípios de resolver um problema de várias classes, ela exige que o treinador armazene um estado muito mais intermediário na forma de histórico L-BFGS para todas as classes simultaneamente, em vez de apenas um por um, como seria necessário para um modelo de classificação um contra todos.

Verifique a seção Consulte Também para obter links para exemplos de uso.

Propriedades

Info

Para IEstimator<TTransformer> treinar um classificador de várias classes um contra todos que usa o classificador binário especificado.

(Herdado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos

Fit(IDataView)

Treina um MulticlassPredictionTransformer<TModel> modelo.

GetOutputSchema(SchemaShape)

Obtém as colunas de saída.

(Herdado de MetaMulticlassTrainer<TTransformer,TModel>)

Métodos de Extensão

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

Acrescente um "ponto de verificação de cache" à cadeia de estimativas. Isso garantirá que os estimadores downstream serão treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que fazem várias passagens de dados.

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

Dado um estimador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um estimador retorne informações sobre o que estava em forma, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário construir uma cadeia de estimadores por meio EstimatorChain<TLastTransformer> de onde o estimador para o qual queremos que o transformador seja enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado quando fit for chamado.

Aplica-se a

Confira também