LbfgsLogisticRegressionBinaryTrainer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A IEstimator<TTransformer> previsão de um destino usando um modelo de regressão logística linear treinado com o método L-BFGS.
public sealed class LbfgsLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsLogisticRegressionBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type LbfgsLogisticRegressionBinaryTrainer = class
inherit LbfgsTrainerBase<LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class LbfgsLogisticRegressionBinaryTrainer
Inherits LbfgsTrainerBase(Of LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
- Herança
Comentários
Para criar esse treinador, use LbfgsLogisticRegression ou LbfgsLogisticRegression(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 . |
|
Probability |
Single | A probabilidade calculada calibrando a pontuação de ter true como o rótulo. O valor da probabilidade está no intervalo [0, 1]. |
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 |
Função Score
A regressão logística linear é uma variante do modelo linear. Ele mapeia o vetor de recursos $\textbf{x} \in {\mathbb R}^n$ para um escalar via $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$, em que o $x_j$ é o valor do recurso $j$-th, o elemento $j$-th de $\textbf{w}$ é o coeficiente do recurso $j$-th, e $b$ é um viés de aprendizado. A probabilidade correspondente de obter um rótulo verdadeiro é $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}$.
Detalhes do algoritmo de treinamento
A técnica de otimização implementada baseia-se no método Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) de memória limitada. L-BFGS é um método quase newtoniano que substitui o custo de computação caro da matriz hessiana por uma aproximação, mas ainda desfruta de uma taxa de convergência rápida como o método Newton onde a matriz hessiana completa é calculada. Como a aproximação L-BFGS usa apenas uma quantidade limitada de estados históricos para calcular a direção da próxima etapa, ela é especialmente adequada para problemas com vetor de recursos de alta dimensão. O número de estados históricos é um parâmetro especificado pelo usuário, usando um número maior pode levar a uma melhor aproximação para a matriz hessiana, mas também um custo de computação mais alto por etapa.
A regularização é um método que pode tornar um problema mal representado mais tratável impondo restrições que fornecem informações para complementar os dados e que impede a sobreajuste penalizando a magnitude do modelo geralmente medida por algumas funções normais. Esse processo pode aprimorar a generalização do modelo aprendido por meio da seleção da complexidade ideal na compensação de viés-variância. A regularização funciona adicionando a penalidade associada aos valores de coeficiente ao erro da hipótese. Um modelo preciso com valores de coeficiente extremo seria mais penalizado, mas um modelo menos preciso com valores mais conservadores seria menos penalizado.
Este aprendiz dá suporte à regularização de rede elástica: uma combinação linear de LASSO (norma L1), $|| \textbf{w} || _1$, e L2-norm (ridge), $|| \textbf{w} || _2^2$ regularizações. As regularizações L1-norm e L2-norm têm efeitos e usos diferentes complementares em determinados aspectos. O uso da norma L1 pode aumentar a moderação do $\textbf{w}$treinado. Ao trabalhar com dados de alta dimensão, ele reduz os pequenos pesos de recursos irrelevantes para 0 e, portanto, nenhum recurso será gasto nesses recursos ruins ao fazer previsões. Se a regularização de norma L1 for usada, o algoritmo de treinamento será OWL-QN. A regularização de norma L2 é preferível para dados que não são esparsos e penalizam em grande parte a existência de pesos grandes.
Uma regularização agressiva (ou seja, atribuir coeficientes grandes a termos de regularização de norma L1 ou L2) pode prejudicar a capacidade preditiva excluindo variáveis importantes do modelo. Portanto, escolher os coeficientes de regularização corretos é importante ao aplicar a regressão logística.
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 |
WeightColumn |
A coluna de peso que o treinador espera. Pode ser |
Propriedades
Info |
A IEstimator<TTransformer> previsão de um destino usando um modelo de regressão logística linear treinado com o método L-BFGS. (Herdado de LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Métodos
Fit(IDataView, LinearModelParameters) |
Continua o treinamento de um usando um LbfgsLogisticRegressionBinaryTrainer já treinado |
Fit(IDataView) |
Treina e retorna um ITransformer. (Herdado de TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
A IEstimator<TTransformer> previsão de um destino usando um modelo de regressão logística linear treinado com o método L-BFGS. (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
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)
- LbfgsLogisticRegressionBinaryTrainer.Options