AveragedPerceptronTrainer Classe

Definição

A IEstimator<TTransformer> previsão de um destino usando um modelo de classificação binária linear treinado com o perceptron médio.

public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
    inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
Herança

Comentários

Para criar esse treinador, use AveragedPerceptron ou AveragedPerceptron(Options).

Colunas de entrada e saída

Os dados da coluna de rótulo de entrada devem ser Boolean. Os dados da coluna de recursos de entrada devem 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 Single A pontuação não associada calculada pelo modelo.
PredictedLabel Boolean O rótulo previsto com base no sinal da pontuação. Uma pontuação negativa é mapeada para false e uma pontuação positiva é mapeada para true.

Características do treinador

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

Detalhes do algoritmo de treinamento

O perceptron é um algoritmo de classificação que faz suas previsões encontrando um hiperplano separador. Por exemplo, com valores de recurso $f_0, f_1,..., f_{D-1}$, a previsão é fornecida determinando em que lado do hiperplano o ponto se enquadra. Isso é o mesmo que o sinal da soma ponderada das feautures, ou seja, $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, onde $w_0, w_1,..., w_{D-1}$ são os pesos calculados pelo algoritmo e $b$ é o viés calculado pelo algoritmo.

O perceptron é um algoritmo online, o que significa que processa as instâncias no conjunto de treinamento um de cada vez. Ele começa com um conjunto de pesos iniciais (zero, aleatório ou inicializado de um aprendiz anterior). Em seguida, para cada exemplo no conjunto de treinamento, a soma ponderada dos recursos é calculada. Se esse valor tiver o mesmo sinal que o rótulo do exemplo atual, os pesos permanecerão os mesmos. Se eles tiverem sinais opostos, o vetor de pesos será atualizado adicionando ou subtraindo (se o rótulo for positivo ou negativo, respectivamente) o vetor de recurso do exemplo atual, multiplicado por um fator 0 <<a = 1, chamado de taxa de aprendizado. Em uma generalização desse algoritmo, os pesos são atualizados adicionando o vetor de recurso multiplicado pela taxa de aprendizado e pelo gradiente de alguma função de perda (no caso específico descrito acima, a perda é a perda de dobradiça, cujo gradiente é 1 quando não é zero).

Em Perceptron Médio (também conhecido como voted-perceptron), para cada iteração, ou seja, passe pelos dados de treinamento, um vetor de peso é calculado conforme explicado acima. Em seguida, a previsão final é calculada pela média da soma ponderada de cada vetor de peso e observando o sinal do resultado.

Para obter mais informações, consulte a entrada da Wikipédia para perceptron ou classificação de margem grande usando o algoritmo Perceptron.

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

Campos

FeatureColumn

A coluna de recursos esperada pelo treinador.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

A coluna de rótulo esperada pelo treinador. Pode ser null, o que indica que o rótulo não é usado para treinamento.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

A coluna de peso que o treinador espera. Pode ser null, o que indica que o peso não é usado para treinamento.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)

Propriedades

Info

A IEstimator<TTransformer> previsão de um destino usando um modelo de classificação binária linear treinado com o perceptron médio.

(Herdado de OnlineLinearTrainer<TTransformer,TModel>)

Métodos

Fit(IDataView)

Treina e retorna um ITransformer.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)
Fit(IDataView, LinearModelParameters)

Continua o treinamento de um usando um OnlineLinearTrainer<TTransformer,TModel> já treinado modelParameters e retorna um ITransformer.

(Herdado de OnlineLinearTrainer<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

A IEstimator<TTransformer> previsão de um destino usando um modelo de classificação binária linear treinado com o perceptron médio.

(Herdado de TrainerEstimatorBase<TTransformer,TModel>)

Métodos de Extensão

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

Acrescente um 'ponto de verificação de cache' à cadeia do avaliador. Isso garantirá que os estimadores downstream sejam treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que levam vários passes de dados.

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

Dado um avaliador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) que seja chamado. Geralmente, é importante que um avaliador 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 criar uma cadeia de avaliadores por meio EstimatorChain<TLastTransformer> de onde o estimador para o qual queremos obter o transformador está enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado assim que o ajuste for chamado.

Aplica-se a

Confira também