OneVersusAllTrainer 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> l’entraînement d’un classifieur multiclasse un-contre-tous qui utilise le classifieur binaire spécifié.
public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
- Héritage
Remarques
Pour créer ce formateur, utilisez OneVersusAll.
Colonnes d’entrée et de sortie
Les données de colonne d’étiquette d’entrée doivent être de type clé et la colonne de caractéristique doit ê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 |
Vecteur de Single | Scores de toutes les classes. Une valeur supérieure signifie une probabilité plus élevée de tomber dans la classe associée. Si l’i-ième élément a la plus grande valeur, l’index d’étiquette prédit est i. Notez que i est un index de base zéro. |
PredictedLabel |
Type de clé | Index de l’étiquette prédite. Si sa valeur est i, l’étiquette réelle est la i-ième catégorie dans le type d’étiquette d’entrée clé-valeur. |
Caractéristiques de l’entraîneur
| Tâche Machine Learning | Classification multiclasse |
| La normalisation est-elle nécessaire ? | Dépend du classifieur binaire sous-jacent |
| La mise en cache est-elle requise ? | Oui |
| NuGet requis en plus de Microsoft.ML | None |
| Exportable vers ONNX | Oui |
Détails de l’algorithme d’apprentissage
Dans une stratégie OVA (one-versus-all), un algorithme de classification binaire est utilisé pour entraîner un classifieur pour chaque classe, qui distingue cette classe de toutes les autres classes. La prédiction est ensuite effectuée en exécutant ces classifieurs binaires et en choisissant la prédiction avec le score de confiance le plus élevé. Cet algorithme peut être utilisé avec l’un des classifieurs binaires dans ML.NET. Quelques classifieurs binaires ont déjà une implémentation pour des problèmes multiclasses, ce qui permet aux utilisateurs de choisir l’un ou l’autre en fonction du contexte. La version OVA d’un classifieur binaire, telle que l’encapsulage d’un LightGbmBinaryTrainer, peut être différente de LightGbmMulticlassTrainercelle d’un classifieur multiclasse directement. Notez que même si le classifieur indique qu’il n’a pas besoin de mise en cache, OneVersusAll demande toujours la mise en cache, car il effectue plusieurs passes sur le jeu de données. Cet entraîneur demande la normalisation du pipeline de données si le classifieur indique qu’il en tirerait parti.
Cela peut vous permettre d’exploiter des formateurs qui n’ont pas naturellement d’option multiclasse, par exemple, en utilisant l’outil FastTreeBinaryTrainer pour résoudre un problème multiclasse. Il peut également permettre à ML.NET de résoudre un problème « plus simple », même dans les cas où l’entraîneur dispose d’une option multiclasse, mais l’utilisation directe n’est pas pratique en raison, généralement, de contraintes de mémoire. Par exemple, alors qu’une régression logistique multiclasse est un moyen plus fondamental de résoudre un problème multiclasse, il faut que l’entraîneur stocke beaucoup plus d’état intermédiaire sous la forme de l’historique L-BFGS pour toutes les classes simultanément, plutôt que d’un seul par un, comme cela serait nécessaire pour un modèle de classification un-contre-tous.
Consultez la section Voir aussi pour obtenir des liens vers des exemples d’utilisation.
Propriétés
| Nom | Description |
|---|---|
| Info |
Pour IEstimator<TTransformer> l’entraînement d’un classifieur multiclasse un-contre-tous qui utilise le classifieur binaire spécifié. (Hérité de MetaMulticlassTrainer<TTransformer,TModel>) |
Méthodes
| Nom | Description |
|---|---|
| Fit(IDataView) |
Effectue l’apprentissage d’un MulticlassPredictionTransformer<TModel> modèle. |
| GetOutputSchema(SchemaShape) |
Obtient les colonnes de sortie. (Hérité de MetaMulticlassTrainer<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é. |