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 formé 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.
Cet entraîneur génère les colonnes suivantes :
| Nom de la 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 et 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 Machine Learning | Classification binaire |
| La normalisation est-elle nécessaire ? | Oui |
| La mise en cache est-elle requise ? | Non |
| NuGet requis en plus de Microsoft.ML | None |
| 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ù $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 qui 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 n’utilise qu’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 réductible 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 de variance de biais. 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ême serait pénalisé plus, mais un modèle moins précis avec des valeurs plus conservatrices serait pénalisé moins.
Cet apprenant prend en charge la régularisation de net élastique : combinaison linéaire de L1-norm (LASSO), $|| \textbf{w} ||_1$, et L2-norm (ridge), $|| \textbf{w} ||_2^2$ régularisations. Les normalisations L1-norm et L2-norm ont des effets et des utilisations différents qui sont complémentaires à certains égards. L1-norm peut augmenter l’éparsité du $\textbf{w}$entraîné. Lors de l’utilisation de données à dimension élevée, elle réduit les petites pondérations des fonctionnalités non pertinentes à 0 et, par conséquent, aucune ressource ne sera dépensée sur ces fonctionnalités incorrectes lors de prédictions. Si la normalisation L1 est utilisée, l’algorithme d’entraînement 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 poids importants.
Une régularisation agressive (c’est-à-dire l’affectation de coefficients importants aux termes de normalisation L1 ou L2-norm) peut nuire à la capacité prédictive en excluant les variables importantes hors 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
| Nom | Description |
|---|---|
| FeatureColumn |
Colonne de fonctionnalités 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
| Nom | Description |
|---|---|
| Info |
Pour IEstimator<TTransformer> prédire une cible à l’aide d’un modèle de régression logistique linéaire formé avec la méthode L-BFGS. (Hérité de LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Méthodes
| Nom | Description |
|---|---|
| Fit(IDataView, LinearModelParameters) |
Poursuit l’entraînement d’une LbfgsLogisticRegressionBinaryTrainer utilisation d’un élément 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 formé avec la méthode L-BFGS. (Hérité de TrainerEstimatorBase<TTransformer,TModel>) |
Méthodes d’extension
| Nom | Description |
|---|---|
| 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>) |
En fonction d’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 pour un estimateur de retourner 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 devrons peut-être construire une chaîne d’estimateurs via EstimatorChain<TLastTransformer> 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
- LbfgsLogisticRegressionBinaryTrainer.Options
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)