LbfgsLogisticRegressionBinaryTrainer Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de regresión logística lineal entrenado con el 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))
- Herencia
Comentarios
Para crear este instructor, use LbfgsLogisticRegression o LbfgsLogisticRegression(Options).
Columnas de entrada y salida
Los datos de la columna de etiqueta de entrada deben ser Boolean. Los datos de columna de características de entrada deben ser un vector conocido de Single.
Este instructor genera las columnas siguientes:
| Nombre de columna de salida | Tipo de columna | Description | |
|---|---|---|---|
Score |
Single | Puntuación sin enlazar calculada por el modelo. | |
PredictedLabel |
Boolean | Etiqueta de predicción, según el signo de la puntuación. Una puntuación negativa se asigna a false y una puntuación positiva se asigna a true. |
|
Probability |
Single | Probabilidad calculada mediante la calibración de la puntuación de tener true como etiqueta. El valor de probabilidad está en el intervalo [0, 1]. |
Características del entrenador
| Tarea de aprendizaje automático | Clasificación binaria |
| ¿Se requiere normalización? | Yes |
| ¿Se requiere el almacenamiento en caché? | No |
| NuGet necesario además de Microsoft.ML | Ninguno |
| Exportable a ONNX | Yes |
Función de puntuación
La regresión logística lineal es una variante del modelo lineal. Asigna el vector de características $\textbf{x} \in {\mathbb R}^n$ a un escalar a través de $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$, donde el $x_j$ es el valor de la característica $j$-th, el $j$-th elemento de $\textbf{w}$ es el coeficiente de la característica $j$-th, y $b$ es un sesgo que se puede aprender. La probabilidad correspondiente de obtener una etiqueta verdadera es $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}}$.
Detalles del algoritmo de entrenamiento
La técnica de optimización implementada se basa en el método de memoria limitado Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS es un método cuasi newtoniano que reemplaza el costo de cálculo costoso de la matriz hessiana por una aproximación, pero sigue disfrutando de una velocidad de convergencia rápida como el método Newton donde se calcula la matriz hessiana completa. Dado que la aproximación de L-BFGS usa solo una cantidad limitada de estados históricos para calcular la dirección del paso siguiente, es especialmente adecuado para problemas con vector de características de alta dimensión. El número de estados históricos es un parámetro especificado por el usuario, el uso de un número mayor puede dar lugar a una mejor aproximación a la matriz hessiana, pero también a un mayor costo de cálculo por paso.
La regularización es un método que puede representar un problema mal planteado más manejable mediante la imposición de restricciones que proporcionan información para complementar los datos y que impide el sobreajuste penalizando la magnitud del modelo normalmente medida por algunas funciones de norma. Esto puede mejorar la generalización del modelo aprendido seleccionando la complejidad óptima en el equilibrio de varianza de sesgo. La regularización funciona agregando la penalización asociada a los valores de coeficiente al error de la hipótesis. Un modelo preciso con valores de coeficiente extremos se penalizaría más, pero un modelo menos preciso con valores más conservadores se penalizaría menos.
Este aprendiz admite la regularización de red elástica: una combinación lineal de L1-norm (LASSO), $|| \textbf{w} ||_1$, y L2-norm (ridge), $|| \textbf{w} ||_2^2$ regularizaciones. Las regularizaciones L1-norm y L2-norm tienen diferentes efectos y usos que son complementarios en ciertos aspectos. El uso de la norma L1 puede aumentar la sparsidad del $\textbf{w}$entrenado. Al trabajar con datos de alta dimensión, reduce pequeños pesos de características irrelevantes a 0 y, por tanto, no se gastará ningún recurso en esas características incorrectas al realizar predicciones. Si se usa la regularización L1-norm, el algoritmo de entrenamiento es OWL-QN. La regularización de la norma L2 es preferible para los datos que no son dispersos y penaliza en gran medida la existencia de pesos grandes.
Una regularización agresiva (es decir, asignar coeficientes grandes a los términos de regularización L1-norm o L2-norm) puede dañar la capacidad predictiva excluyendo variables importantes fuera del modelo. Por lo tanto, elegir los coeficientes de regularización correctos es importante al aplicar la regresión logística.
Consulte la sección Ver también para obtener vínculos a ejemplos de uso.
Campos
| Nombre | Description |
|---|---|
| FeatureColumn |
Columna de características que el instructor espera. (Heredado de TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
Columna de etiqueta que el entrenador espera. Puede ser |
| WeightColumn |
Columna de peso que espera el entrenador. Puede ser |
Propiedades
| Nombre | Description |
|---|---|
| Info |
que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de regresión logística lineal entrenado con el método L-BFGS. (Heredado de LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Métodos
| Nombre | Description |
|---|---|
| Fit(IDataView, LinearModelParameters) |
Continúa el entrenamiento de un LbfgsLogisticRegressionBinaryTrainer mediante un objeto ya entrenado |
| Fit(IDataView) |
Entrena y devuelve un ITransformer. (Heredado de TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
que IEstimator<TTransformer> se va a predecir un destino mediante un modelo de regresión logística lineal entrenado con el método L-BFGS. (Heredado de TrainerEstimatorBase<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
- LbfgsLogisticRegressionBinaryTrainer.Options
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)