LbfgsLogisticRegressionBinaryTrainer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Pour IEstimator<TTransformer> prédire une cible à l’aide d’un modèle de régression logistique linéaire entraîné avec la méthode 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))
- Héritage
Remarques
Pour créer ce formateur, utilisez LbfgsLogisticRegression ou LbfgsLogisticRegression(Options).
Colonnes d’entrée et de sortie
Les données de la colonne d’étiquettes d’entrée doivent être Boolean. Les données de colonne des caractéristiques d’entrée doivent être un vecteur de taille connue de Single.
Ce formateur génère les colonnes suivantes :
Nom de colonne de sortie | Type de colonne | Description | |
---|---|---|---|
Score |
Single | Score non lié calculé par le modèle. | |
PredictedLabel |
Boolean | Étiquette prédite, en fonction du signe du score. Un score négatif est mappé à false , tandis qu’un score positif est mappé à true . |
|
Probability |
Single | Probabilité calculée en calibrant le score d’avoir la valeur true comme étiquette. La valeur de probabilité est comprise dans la plage [0, 1]. |
Caractéristiques de l’entraîneur
Tâche d’apprentissage automatique | Classification binaire |
La normalisation est-elle nécessaire ? | Oui |
La mise en cache est-elle requise ? | Non |
NuGet requis en plus de Microsoft.ML | Aucun |
Exportable vers ONNX | Oui |
Fonction de scoring
La régression logistique linéaire est une variante du modèle linéaire. Il mappe le vecteur de fonctionnalité $\textbf{x} \in {\mathbb R}^n$ à un scalaire via $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$, où le $x_j$ est la valeur de la $j$-th, l’élément $j$-th de $\textbf{w}$ est le coefficient de la $j$-ième caractéristique, et $b$ est un biais appris. La probabilité correspondante d’obtenir une étiquette vraie est $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}}$.
Détails de l’algorithme d’apprentissage
La technique d’optimisation implémentée est basée sur la méthode de mémoire limitée Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS est une méthode quasi-Newtonienne qui remplace le coût de calcul coûteux de la matrice Hessian par une approximation, mais bénéficie toujours d’un taux de convergence rapide comme la méthode Newton où la matrice Hessian complète est calculée. Étant donné que l’approximation L-BFGS utilise uniquement une quantité limitée d’états historiques pour calculer la direction de l’étape suivante, elle est particulièrement adaptée aux problèmes liés au vecteur de caractéristique haute dimension. Le nombre d’états historiques est un paramètre spécifié par l’utilisateur, l’utilisation d’un plus grand nombre peut entraîner une meilleure approximation de la matrice Hessian, mais également un coût de calcul plus élevé par étape.
La régularisation est une méthode qui peut rendre un problème mal posé plus difficile en imposant des contraintes qui fournissent des informations pour compléter les données et qui empêchent le surajustement en pénalisant l’ampleur du modèle généralement mesurée par certaines fonctions de norme. Cela peut améliorer la généralisation du modèle appris en sélectionnant la complexité optimale dans le compromis décalage/variance. La régularisation fonctionne en ajoutant la pénalité associée aux valeurs de coefficient à l’erreur de l’hypothèse. Un modèle précis avec des valeurs de coefficient extrêmes est pénalisé davantage, alors qu’un modèle moins précis avec des valeurs plus conservatrices est moins pénalisé.
Cet apprenant prend en charge la régularisation de net élastique : combinaison linéaire de L1-norm (LASSO), $|| \textbf{w} || _1$, et L2-norm (crête), $|| \textbf{w} || _2^2$ de régularisations. Les régularisations L1-norm et L2-norm ont des effets et des utilisations différents qui sont complémentaires à certains égards. L’utilisation de la norme L1 peut augmenter l’éparse du $\textbf{w}$entraîné. Lors de l’utilisation de données à grande dimension, elle réduit les petits poids des caractéristiques non pertinentes à 0 et, par conséquent, aucune ressource n’est dépensée sur ces mauvaises fonctionnalités lors de prédictions. Si la normalisation L1 est utilisée, l’algorithme d’apprentissage est OWL-QN. La régularisation de la norme L2 est préférable pour les données qui ne sont pas partiellement éparses et pénalise en grande partie l’existence de grands poids.
Une régularisation agressive (autrement dit, l’affectation de coefficients importants aux termes de régularisation L1 ou L2)) peut nuire à la capacité prédictive en excluant les variables importantes du modèle. Par conséquent, le choix des coefficients de régularisation appropriés est important lors de l’application de la régression logistique.
Consultez la section Voir aussi pour obtenir des liens vers des exemples d’utilisation.
Champs
FeatureColumn |
Colonne de caractéristique attendue par l’entraîneur. (Hérité de TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Colonne d’étiquette attendue par l’entraîneur. Peut être |
WeightColumn |
Colonne de poids attendue par l’entraîneur. Peut être |
Propriétés
Info |
Pour IEstimator<TTransformer> prédire une cible à l’aide d’un modèle de régression logistique linéaire entraîné avec la méthode L-BFGS. (Hérité de LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Méthodes
Fit(IDataView, LinearModelParameters) |
Poursuit l’entraînement d’un LbfgsLogisticRegressionBinaryTrainer utilisateur déjà formé |
Fit(IDataView) |
Effectue l’apprentissage et retourne un ITransformer. (Hérité de TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Pour IEstimator<TTransformer> prédire une cible à l’aide d’un modèle de régression logistique linéaire entraîné avec la méthode L-BFGS. (Hérité de TrainerEstimatorBase<TTransformer,TModel>) |
Méthodes d’extension
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Ajoutez un « point de contrôle de mise en cache » à la chaîne d’estimateur. Cela garantit que les estimateurs en aval seront entraînés par rapport aux données mises en cache. Il est utile d’avoir un point de contrôle de mise en cache avant les formateurs qui prennent plusieurs passes de données. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Étant donné un estimateur, retournez un objet de création de package de restrictions qui appellera un délégué une fois Fit(IDataView) appelé. Il est souvent important qu’un estimateur retourne des informations sur ce qui était adapté, c’est pourquoi la Fit(IDataView) méthode retourne un objet spécifiquement typé, plutôt que simplement un général ITransformer. Toutefois, en même temps, IEstimator<TTransformer> sont souvent formés en pipelines avec de nombreux objets. Nous pouvons donc avoir besoin de créer une chaîne d’estimateurs par EstimatorChain<TLastTransformer> le biais de laquelle l’estimateur pour lequel nous voulons obtenir le transformateur est enterré quelque part dans cette chaîne. Pour ce scénario, nous pouvons par le biais de cette méthode attacher un délégué qui sera appelé une fois l’ajustement appelé. |
S’applique à
Voir aussi
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)
- LbfgsLogisticRegressionBinaryTrainer.Options