Partager via


AveragedPerceptronTrainer Classe

Définition

IEstimator<TTransformer> Pour prédire une cible à l’aide d’un modèle de classification binaire linéaire entraîné avec le perceptron moyen.

public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
    inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
Héritage

Remarques

Pour créer ce formateur, utilisez AveragedPerceptron ou AveragedPerceptron(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.

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

Détails de l’algorithme d’apprentissage

Le perceptron est un algorithme de classification qui effectue ses prédictions en recherchant un hyperplan de séparation. Par exemple, avec des valeurs de fonctionnalité $f_0, f_1,..., f_{D-1}$, la prédiction est donnée en déterminant le côté de l’hyperplan dans lequel le point tombe. C’est le même que le signe de la somme pondérée des feautures, c’est-à-dire $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, où $w_0, w_1,..., w_{D-1}$ sont les pondérations calculées par l’algorithme, et $b$ est le biais calculé par l’algorithme.

Le perceptron est un algorithme en ligne, ce qui signifie qu’il traite les instances du jeu d’entraînement un par un. Il commence par un ensemble de pondérations initiales (zéro, aléatoire ou initialisé à partir d’un apprenant précédent). Ensuite, pour chaque exemple du jeu d’entraînement, la somme pondérée des fonctionnalités est calculée. Si cette valeur a le même signe que l’étiquette de l’exemple actuel, les pondérations restent identiques. S’ils ont des signes opposés, le vecteur poids est mis à jour en ajoutant ou en soustrayant (si l’étiquette est positive ou négative, respectivement) le vecteur de caractéristique de l’exemple actuel, multiplié par un facteur 0 < a <= 1, appelé taux d’apprentissage. Dans une généralisation de cet algorithme, les poids sont mis à jour en ajoutant le vecteur de caractéristique multiplié par le taux d’apprentissage et par le dégradé de certaines fonctions de perte (dans le cas spécifique décrit ci-dessus, la perte est la perte de charnière, dont le dégradé est égal à 1 lorsqu’il n’est pas égal à zéro).

Dans Averaged Perceptron (également appelé perceptron voté), pour chaque itération, c’est-à-dire passer par les données d’entraînement, un vecteur de poids est calculé comme expliqué ci-dessus. La prédiction finale est ensuite calculée en calculant la moyenne de la somme pondérée de chaque vecteur de poids et en examinant le signe du résultat.

Pour plus d’informations, consultez l’entrée Wikipédia pour perceptron ou la classification de marges volumineuses à l’aide de l’algorithme Perceptron.

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

IEstimator<TTransformer> Pour prédire une cible à l’aide d’un modèle de classification binaire linéaire entraîné avec le perceptron moyen.

(Hérité de OnlineLinearTrainer<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 OnlineLinearTrainer<TTransformer,TModel> utilisateur déjà formé modelParameters et retourne un ITransformer.

(Hérité de OnlineLinearTrainer<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> Pour prédire une cible à l’aide d’un modèle de classification binaire linéaire entraîné avec le perceptron moyen.

(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