Tâches Machine Learning dans ML.NET
Une tâche de machine learning est le type de prédiction ou d’inférence qui est effectué, en fonction du problème ou de la question demandée, et des données disponibles. Par exemple, la tâche de classification affecte des données à des catégories et la tâche de clustering regroupes des données en fonction de leur similarité.
Les tâches de machine learning s’appuient sur des modèles dans les données au lieu d’être explicitement programmées.
Cet article décrit les différentes tâches de machine learning disponibles que vous pouvez choisir dans ML.NET et quelques cas d’usage courants.
Une fois que vous avez décidé de tâche qui fonctionne pour votre scénario, vous devez choisir le meilleur algorithme pour entraîner le modèle. Les algorithmes disponibles sont listés dans la section pour chaque tâche.
Classification binaire
Une tâche Apprentissage automatique supervisé utilisée pour prédire à laquelle des deux classes (catégories) appartient une instance de données. L’entrée d’un algorithme de classification est un ensemble d’exemples étiquetés, où chaque étiquette est un entier ayant pour valeur 0 ou 1. La sortie d’un algorithme de classification binaire est un classifieur, que vous pouvez utiliser pour prédire la classe de nouvelles instances sans étiquette. Voici quelques exemples de scénarios de classification binaire :
- Déterminer si des commentaires Twitter sont « positifs » ou « négatifs ».
- Diagnostiquer si un patient est atteint ou non d’une certaine maladie.
- Décider si un e-mail doit être considéré comme « spam » ou non.
- Déterminer si une photo contient ou non un élément particulier, comme un chien ou un fruit.
Pour plus d’informations, consultez l’article Wikipédia Classification binaire.
Entraîneurs de classification binaire
Vous pouvez entraîner un modèle de classification binaire en utilisant les algorithmes suivants :
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
Entrées et sorties de classification binaire
Pour tirer le meilleur parti de la classification binaire, vous devez équilibrer les données d’entraînement (autrement dit, avoir le même nombre de données d’entraînement positives que négatives). Les valeurs manquantes doivent être traitées avant l’entraînement.
Les données de la colonne d’étiquettes d’entrée doivent être Boolean. Les données de la colonne des caractéristiques d’entrée doivent être un vecteur de taille fixe de Single.
Ces entraîneurs génèrent les colonnes suivantes :
Nom de colonne de sortie | Type de colonne | Description |
---|---|---|
Score |
Single | Score brut 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 . |
Classification multiclasse
Une tâche Apprentissage automatique supervisé utilisée pour prédire la classe (catégorie) d’une instance de données. L’entrée d’un algorithme de classification est un ensemble d’exemples étiquetés. Chaque étiquette démarre normalement en tant que texte. Elle est ensuite exécutée via TermTransform, qui la convertit en un type de clé (numérique). La sortie d’un algorithme de classification est un classifieur, que vous pouvez utiliser pour prédire la classe de nouvelles instances sans étiquette. Voici quelques exemples de scénarios de classification multiclasse :
- Catégorisation des vols comme « en avance », « à l’heure » ou « en retard ».
- Déterminer si des critiques d’un film sont « positives », « neutres » ou « négatives ».
- Classer les évaluations d’un hôtel par « situation géographique », « prix », « propreté », etc.
Pour plus d’informations, consultez l’article Wikipédia Classification multiclasse.
Notes
OvA (One vs all, Un comparé à tous) met à niveau les learners de classification binaire pour agir sur les jeux de données multiclasses. Pour plus d’informations, consultez Wikipédia.
Entraîneurs de classification multiclasse
Vous pouvez entraîner un modèle de classification multiclasse en utilisant les algorithmes suivants :
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Entrées et sorties de classification multiclasse
Les données de la colonne d’étiquettes d’entrée doivent être de type clé. La colonne des caractéristiques doit être un vecteur de taille fixe de Single.
Cet entraîneur génère la sortie suivante :
Nom de sortie | Type | Description |
---|---|---|
Score |
Vecteur de Single | Les scores de toutes les classes. Une valeur supérieure signifie une plus forte probabilité d’appartenir à la classe associée. Si l’i-ème élément a la plus grande valeur, l’index de l’étiquette prédite est i. Notez que i est l’index de base zéro. |
PredictedLabel |
Type clé | Index de l’étiquette prédite. Si sa valeur est i, l’étiquette réelle est la i-ème catégorie dans le type d’étiquette d’entrée avec une valeur de clé. |
régression ;
Une tâche Apprentissage automatique supervisée utilisée pour prédire la valeur de l’étiquette d’un ensemble de fonctionnalités connexes. L’étiquette peut avoir n’importe quelle valeur réelle et ne provient pas d’un ensemble fini de valeurs comme dans les tâches de classification. Les algorithmes de régression modèlent la dépendance de l’étiquette sur ses fonctionnalités connexes pour déterminer la façon dont l’étiquette change avec des valeurs de fonctionnalités différentes. L’entrée d’un algorithme de régression est un ensemble d’exemples avec des étiquettes de valeurs connues. La sortie d’un algorithme de régression est une fonction, que vous pouvez utiliser pour prédire la valeur de l’étiquette pour tout nouvel ensemble de fonctionnalités d’entrée. Voici quelques exemples de scénarios de régression :
- Prédire le prix d’une maison selon ses attributs, par exemple le nombre de chambres, l’emplacement ou la taille.
- Prédire le cours d’actions en fonction de données historiques et des tendances du marché actuel.
- Prédire les ventes d’un produit en fonction d’un budget publicitaire.
Entraîneurs de régression
Vous pouvez entraîner un modèle de régression en utilisant les algorithmes suivants :
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Entrées et sorties de régression
Les données de la colonne d’étiquettes d’entrée doivent être Single.
Les entraîneurs pour cette tâche génèrent le résultat suivant :
Nom de sortie | Type | Description |
---|---|---|
Score |
Single | Score brut prédit par le modèle |
Clustering
Une tâche Apprentissage automatique non supervisé utilisée pour regrouper des instances de données dans des clusters contenant des caractéristiques similaires. Le clustering permet également d’identifier, dans un jeu de données, les relations qui peuvent ne pas être logiquement dérivées par navigation ou simple observation. Les entrées et sorties d’un algorithme de clustering dépendent de la méthode choisie. Vous pouvez adopter une approche de type distribution, centroïde, connectivité ou basée sur la densité. ML.NET prend actuellement en charge une approche de type centroïde à l’aide du clustering K-Means. Voici quelques exemples de scénarios de clustering :
- Évaluer les segments d’une clientèle d’hôtel en fonction de leurs habitudes et des caractéristiques de l’hôtel.
- Identifier les segments d’une clientèle et les données démographiques pour faciliter la mise en œuvre de campagnes publicitaires ciblées.
- Classer un inventaire en fonction de métriques de fabrication.
Entraîneur de clustering
Vous pouvez entraîner un modèle de clustering en utilisant les algorithmes suivants :
Entrées et sorties de clustering
Les données de caractéristiques d’entrée doivent être Single. Aucune étiquette n’est nécessaire.
Cet entraîneur génère la sortie suivante :
Nom de sortie | Type | Description |
---|---|---|
Score |
Vecteur de Single | Les distances entre le point de données spécifique et les centroïdes de tous les clusters |
PredictedLabel |
Type clé | Index du cluster le plus proche prédit par le modèle. |
Détection des anomalies
Cette tâche crée un modèle de détection d’anomalie à l’aide de la méthode Principal Component Analysis (PCA). La détection d’anomalie PCA vous permet de créer un modèle dans des scénarios où il est facile d’obtenir des données d’apprentissage à partir d’une classe, notamment des transactions valides, mais où il est difficile d’obtenir suffisamment d’échantillons d’anomalies ciblées.
Technique éprouvée dans l’apprentissage automatique (Machine Learning), la méthode PCA est fréquemment utilisée dans l’analyse exploratoire des données car elle révèle la structure interne des données et explique la variance dans les données. L’ACP fonctionne en analysant les données qui contiennent plusieurs variables. Elle recherche les corrélations entre les variables et détermine la combinaison des valeurs qui capturent le mieux les différences dans les résultats. Ces valeurs de fonctionnalité combinées sont utilisées pour créer un espace de fonctionnalités plus compact, appelé principaux composants.
La détection d’anomalie englobe de nombreuses tâches importantes pour l’apprentissage automatique :
- Identification des transactions potentiellement frauduleuses.
- Modèles d’apprentissage signalant une intrusion sur le réseau.
- Recherche de clusters anormaux de patients.
- Vérification des valeurs entrées dans un système.
Les anomalies constituant, par définition, des événements rares, il peut être difficile de recueillir un échantillon représentatif des données à utiliser pour la modélisation. Les algorithmes inclus dans cette catégorie ont été spécialement conçus pour relever les défis de base qu’impliquent la création et l’apprentissage des modèles à l’aide de jeux de données déséquilibrés.
Entraîneur de détection d’anomalie
Vous pouvez entraîner un modèle de détection d’anomalie en utilisant les algorithmes suivants :
Sorties et entrées de la détection d’anomalie
Les caractéristiques d’entrée doivent être un vecteur de taille fixe de Single.
Cet entraîneur génère la sortie suivante :
Nom de sortie | Type | Description |
---|---|---|
Score |
Single | Score non négatif sans borne calculé par le modèle de détection d’anomalie |
PredictedLabel |
Boolean | Une valeur true/false indiquant si l’entrée est une anomalie (PredictedLabel=true) ou non (PredictedLabel=false) |
Classement
Une tâche de classement établit un classement à partir d’un ensemble d’exemples étiquetés. Cet exemple d’ensemble se compose de groupes d’instances qui peuvent être évalués selon un critère donné. Les étiquettes de classement sont {0, 1, 2, 3, 4} pour chaque instance. Le classement est formé pour trier les nouveaux groupes d’instance en attribuant un score inconnu à chaque instance. Les apprenants de classement ML.NET utilisent un classement basé sur l’apprentissage automatique.
Algorithmes d’entraînement de classement
Vous pouvez entraîner un modèle de classement en utilisant les algorithmes suivants :
Entrées et sorties de classement
Le type de données des étiquettes d’entrée doit être de type clé ou Single. La valeur de l’étiquette détermine la pertinence, une valeur supérieure indiquant une pertinence plus élevée. Si l’étiquette est un type clé, l’index de clé est la valeur de la pertinence, le plus petit index étant le moins pertinent. Si l’étiquette est un Single, une valeur plus grande indique une pertinence plus élevée.
Les données de caractéristique doivent être un vecteur de taille fixe de Single et la colonne du groupe de lignes d’entrée doit être de type clé.
Cet entraîneur génère la sortie suivante :
Nom de sortie | Type | Description |
---|---|---|
Score |
Single | Score sans borne calculé par le modèle pour déterminer la prédiction |
Recommandation
Une tâche de recommandation permet de dresser la liste des produits ou services recommandés. ML.NET utilise la méthode Factorisation de matrice (MF), un algorithme de filtrage collaboratif pour obtenir des recommandations lorsque votre catalogue contient des données d’évaluation de produit historiques. Par exemple, vous avez des données d’évaluation de films historiques pour vos utilisateurs et vous voulez leur recommander d’autres films qu’ils sont susceptibles de regarder ensuite.
Algorithmes d’entraînement de recommandation
Vous pouvez entraîner un modèle de recommandation en utilisant les algorithmes suivants :
Prévisions
La tâche de prévision utilise les données d’une série chronologique passée pour faire des prédictions sur le comportement futur. Les scénarios applicables aux prévisions incluent les prévisions météorologiques, les prévisions de ventes saisonnières et la maintenance prédictive.
Entraîneurs de prévision
Vous pouvez entraîner un modèle de prévision avec les algorithmes suivants :
Classification d’image
Une tâche de machine learning supervisé qui est utilisée pour prédire la classe (catégorie) d’une image. L’entrée est un ensemble d’exemples étiquetés. Chaque étiquette démarre normalement en tant que texte. Elle est ensuite exécutée via TermTransform, qui la convertit en un type de clé (numérique). La sortie d’un algorithme de classification est un classifieur, que vous pouvez utiliser pour prédire la classe de nouvelles images. La tâche de classification d’images est un type de classification multiclasse. Voici des exemples de scénarios de classification d’images :
- Déterminer la race d’un chien, par exemple « Husky de Sibérie », « Golden Retriever », « Caniche », etc.
- Déterminer si un produit de fabrication est défectueux ou non.
- Déterminer les types de fleurs, comme « Rose », « Tournesol », etc.
Entraîneurs de classification d’images
Vous pouvez entraîner un modèle de classification d’images en utilisant les algorithmes d’entraînement suivants :
Entrées et sorties de la classification d’images
Les données de la colonne d’étiquettes d’entrée doivent être de type clé. La colonne des caractéristiques doit être un vecteur de taille variable de Byte.
Cet entraîneur génère les colonnes suivantes :
Nom de sortie | Type | Description |
---|---|---|
Score |
Single | Les scores de toutes les classes. Une valeur plus élevée signifie une plus forte probabilité d’appartenir à la classe associée. Si l’i-ème élément a la plus grande valeur, l’index de l’étiquette prédite est i. Notez que i est un index commençant à zéro. |
PredictedLabel |
Type de clé | Index de l’étiquette prédite. Si sa valeur est i, l’étiquette réelle est la i-ème catégorie dans le type d’étiquette d’entrée avec une valeur de clé. |
Détection d’objets
Une tâche de machine learning supervisé qui est utilisée pour prédire la classe (catégorie) d’une image, mais qui insère également un cadre englobant à l’emplacement où cette catégorie se trouve dans l’image. Au lieu de classifier un seul objet dans une image, la détection d’objets peut détecter plusieurs objets dans une image. Voici des exemples de détection d’objets :
- Détection de voitures, de panneaux ou de personnes sur les images d’une route.
- Détection de défauts sur des images de produits.
- Détection des zones préoccupantes sur les images de rayons X.
L’entraînement du modèle de détection d’objets est actuellement disponible seulement dans Model Builder en utilisant Azure Machine Learning.