Partager via


LbfgsLogisticRegressionBinaryTrainer Classe

Définition

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 null, ce qui indique que l’étiquette n’est pas utilisée pour l’entraînement.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Colonne de poids attendue par l’entraîneur. Peut être null, ce qui indique que le poids n’est pas utilisé pour l’entraînement.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)

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)

Effectue l’apprentissage et retourne un ITransformer.

(Hérité de TrainerEstimatorBase<TTransformer,TModel>)
Fit(IDataView, LinearModelParameters)

Poursuit l’entraînement d’un LbfgsLogisticRegressionBinaryTrainer utilisateur déjà formé modelParameters et retourne un BinaryPredictionTransformer<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