Sélectionner des algorithmes Azure Machine Learning

Vous êtes nombreux à vous poser la question suivante : « Quel algorithme d'apprentissage automatique dois-je utiliser ? ». Le choix de l'algorithme repose principalement sur deux aspects distincts de votre scénario de science des données :

  • Que voulez-vous faire avec vos données ? Plus précisément, quelle est la question à laquelle vous souhaitez répondre à partir de vos données passées ?

  • Quelles sont les exigences propres à votre scénario de science des données ? Plus précisément, quels sont la précision, la durée d'apprentissage, la linéarité, le nombre de paramètres et le nombre de fonctionnalités pris en charge par votre solution ?

Considerations for choosing algorithms: What do you want to know? What are the scenario requirements?

Remarque

Le concepteur prend en charge deux types de composants, les composants prédéfinis classiques (v1) et les composants personnalisés (v2). Ces deux types de composants ne sont PAS compatibles.

Les composants prédéfinis classiques fournissent principalement des composants prédéfinis utilisés pour le traitement des données et les tâches de Machine Learning traditionnelles telles que la régression et la classification. Ce type de composant continue d’être pris en charge, mais aucun nouveau composant n’est ajouté.

Les composants personnalisés vous permettent d’encapsuler votre propre code en tant que composant. Ils vous permettent de partager des composants dans des espaces de travail et de créer en toute transparence dans des interfaces Studio, CLI v2 et le Kit de développement logiciel (SDK) v2.

Pour les nouveaux projets, nous vous suggérons vivement d’utiliser un composant personnalisé et compatible avec AzureML V2 qui va continuer à recevoir de nouvelles mises à jour.

Cet article s’applique aux composants classiques, prédéfinis et non compatibles avec l’interface CLI v2 et le kit de développement logiciel (SDK) v2.

Scénarios d'entreprise et Aide-mémoire sur les algorithmes Machine Learning

L'Aide-mémoire sur les algorithmes Azure Machine Learning vous permet de répondre à la première question : Que voulez-vous faire avec vos données ? ? Utilisez l’Aide-mémoire sur les algorithmes Machine Learning pour rechercher la tâche que vous souhaitez effectuer, puis recherchez un algorithme de concepteur Azure Machine Learning pour la solution d’analyse prédictive.

Le concepteur Machine Learning fournit une gamme complète d'algorithmes, tels que Forêt d'arbres de décision multiclasse, Systèmes de recommandation, Régression de réseau neuronal, Réseau neuronal multiclasse et Clustering k-moyennes. Chaque algorithme est conçu pour traiter un type particulier de problème d'apprentissage automatique. Consultez Référence sur les algorithmes et composants du concepteur Machine Learning pour obtenir une liste complète ainsi que de la documentation sur le fonctionnement de chaque algorithme et le réglage des paramètres pour l’optimiser.

Notes

Téléchargez l’aide-mémoire ici : Aide-mémoire d’algorithme Machine Learning (11x17 pouces)

Outre les conseils fournis par l'Aide-mémoire sur les algorithmes Azure Machine Learning, vous devez tenir compte d'autres exigences lors du choix d'un algorithme d'apprentissage automatique pour votre solution. Vous trouverez ci-dessous d'autres facteurs à prendre en compte, comme la précision, la durée d'apprentissage, la linéarité, le nombre de paramètres et le nombre de fonctionnalités.

Comparaison des algorithmes d’apprentissage automatique

Certains algorithmes d'apprentissage effectuent des hypothèses particulières sur la structure des données ou les résultats souhaités. Si vous pouvez en trouver un qui répond à vos besoins, il peut vous donner des résultats plus pertinents, des prévisions plus précises ou des durées d'apprentissage plus courtes.

Le tableau suivant résume certaines des caractéristiques les plus importantes des algorithmes des familles de classification, régression et clustering :

Algorithme Précision Durée d’apprentissage Linéarité Paramètres Remarques
Famille de classification
Régression logistique à deux classes Bonne Rapide Oui 4
Forêt d’arbres décisionnels à deux classes Excellent Modéré Non 5 Affiche des temps de scoring plus lents. Suggestion de ne pas travailler avec One-vs-All Multiclass, en raison des temps de scoring plus lents causé par le verrouillage des threads lors de l’accumulation des prédictions d’arborescence
Arbre de décision optimisé à deux classes Excellent Modéré Non 6 Encombrement de mémoire important
Réseau neuronal à deux classes Bonne Modéré Non 8
Perceptron moyenné à deux classes Bonne Modéré Oui 4
Machine à vecteurs de support à deux classes Bonne Rapide Oui 5 Idéal pour les ensembles de fonctionnalités de grande taille
Régression logistique multiclasse Bonne Rapide Oui 4
Forêt d’arbres de décision multiclasse Excellent Modéré Non 5 Affiche des temps de scoring plus lents.
Arbre de décision multiclasse optimisé Excellent Modéré Non 6 A tendance à améliorer la précision avec un léger risque de diminution de la couverture
Réseau neuronal multiclasse Bonne Modéré Non 8
One-vs-all multiclass - - - - Consultez les propriétés de la méthode à deux classes sélectionnée
Famille de régression
Régression linéaire Bonne Rapide Oui 4
Régression de forêt d’arbres de décision Excellent Modéré Non 5
Régression d’arbre de décision boosté Excellent Modéré Non 6 Encombrement de mémoire important
Régression de réseau neuronal Bonne Modéré Non 8
Famille de clustering
Clustering k-moyennes Excellent Modéré Oui 8 Un algorithme de clustering

Exigences d’un scénario de science des données

Après avoir déterminé ce que vous voulez faire avec vos données, vous devez tenir compte d'autres exigences pour votre solution.

Faites des choix, voire des compromis, pour les exigences suivantes :

  • Précision
  • Durée d’apprentissage
  • Linéarité
  • Nombre de paramètres
  • Nombre de fonctionnalités

Précision

Dans le domaine de l'apprentissage automatique, la précision mesure l'efficacité d'un modèle sous forme de proportion de résultats réels sur le nombre total de cas. Dans le concepteur Machine Learning, le composant Évaluer le modèle calcule un ensemble de métriques d’évaluation standard. Vous pouvez utiliser ce composant pour mesurer la précision d’un modèle formé.

Il n'est pas toujours nécessaire d'obtenir la réponse la plus exacte possible. Parfois, en fonction de votre utilisation, une approximation suffit. Dans ce cas, vous réduirez probablement considérablement le temps de traitement en ayant recours à des méthodes plus approximatives. Les méthodes approximatives tendent aussi naturellement à éviter le surajustement.

Il existe trois façons d’utiliser le composant Évaluer le modèle :

  • Générer des scores sur vos données d'apprentissage afin d'évaluer le modèle
  • Générer des scores sur le modèle, mais comparer ces scores à ceux d’un jeu de tests réservé
  • Comparer les scores de deux modèles différents mais liés, en utilisant le même jeu de données

Pour obtenir la liste complète des métriques et approches disponibles afin d’évaluer la précision des modèles Machine Learning, consultez Composant Évaluer le modèle.

Durée d’apprentissage

Dans le cadre d'un apprentissage supervisé, la formation consiste à utiliser des données historiques pour créer un modèle Machine Learning qui réduit les risques d'erreurs. Le nombre de minutes ou d'heures nécessaires pour l'apprentissage d'un modèle varie beaucoup selon les algorithmes. La durée d'apprentissage est souvent étroitement liée à la précision : l'une accompagne généralement l'autre.

En outre, certains algorithmes sont plus sensibles au nombre de points de données que d'autres. Vous pouvez être amené à choisir un algorithme spécifique parce que le temps dont vous disposez est limité, en particulier lorsque le jeu de données est volumineux.

Dans le concepteur Machine Learning, la création et l'utilisation d'un modèle Machine Learning s'effectuent généralement en trois étapes :

  1. Configurez un modèle en choisissant un type d'algorithme particulier et en définissant ses paramètres ou hyperparamètres.

  2. Fournissez un jeu de données doté d'une étiquette et dont les données sont compatibles avec l'algorithme. Connectez les données et le modèle au composant Effectuer l’apprentissage du modèle.

  3. Au terme de l’apprentissage, utilisez le modèle formé avec l’un des composants de scoring pour effectuer des prédictions sur de nouvelles données.

Linéarité

Dans les domaines des statistiques et de l'apprentissage automatique, le terme « linéarité » signifie qu'il existe une relation linéaire entre une variable et une constante de votre jeu de données. Par exemple, les algorithmes de classification linéaires supposent que les classes peuvent être séparées par une ligne droite (ou son analogue de dimension supérieure).

Un grand nombre d'algorithmes d'apprentissage automatique utilisent la linéarité. Dans le concepteur Azure Machine Learning, ces algorithmes sont les suivants :

Les algorithmes de régression linéaire supposent que les tendances des données suivent une ligne droite. Ce postulat convient à certains problèmes, mais pour d'autres, il réduit la précision. Malgré leurs inconvénients, les algorithmes linéaires constituent une première stratégie très prisée. Ils ont tendance à être des algorithmes simples et à apprentissage rapide.

Nonlinear class boundary

Limite de classe non linéaire : l’utilisation d’un algorithme de classification linéaire entraînerait une justesse faible.

Data with a nonlinear trend

Données avec une tendance non linéaire : l’utilisation d’une méthode de régression linéaire entraînerait plus d’erreurs.

Nombre de paramètres

Les paramètres sont les boutons que les scientifiques des données règlent lorsqu’ils configurent un algorithme. Ce sont des nombres qui affectent le comportement de l'algorithme, comme la tolérance aux erreurs ou le nombre d'itérations, ou les variantes du comportement de l'algorithme. La durée d'apprentissage et la précision de l'algorithme peuvent parfois dépendre du choix des paramètres appropriés. En règle générale, les algorithmes avec des paramètres à grands nombres nécessitent plus d’essais pour trouver la bonne combinaison.

Vous pouvez également utiliser le composant Optimiser les hyperparamètres du modèle dans le concepteur Machine Learning : l’objectif de ce composant est de déterminer les hyperparamètres optimaux pour un modèle Machine Learning. Le composant génère et teste plusieurs modèles avec différentes combinaisons de paramètres. Il compare les métriques à tous les modèles pour obtenir les combinaisons de paramètres.

Même si c'est un excellent moyen de vous assurer que vous avez examiné l'espace de paramétrage, le temps nécessaire pour former un modèle augmente de façon exponentielle avec le nombre de paramètres. Avoir de nombreux paramètres indique généralement qu'un algorithme a une plus grande flexibilité. Cette méthode donne souvent une excellente précision, une fois que vous avez trouvé la bonne combinaison de paramètres.

Nombre de fonctionnalités

Dans le domaine de l'apprentissage automatique, une fonctionnalité est une variable quantifiable du phénomène que vous essayez d'analyser. Pour certains types de données, le nombre de fonctionnalités peut être très important par rapport au nombre de points de données. C'est souvent le cas avec les données génétiques ou textuelles.

La présence d'un grand nombre de fonctionnalités peut ralentir certains algorithmes d'apprentissage et se traduire par une durée d'apprentissage ingérable. Les machines à vecteurs de support sont particulièrement bien adaptées aux scénarios comportant un grand nombre de fonctionnalités. C'est la raison pour laquelle elles sont utilisées dans de nombreuses applications, de la récupération d'informations à la classification de textes et d'images. Les machines à vecteurs de support peuvent être utilisées pour les tâches de classification et de régression.

Le terme « sélection de fonctionnalités » fait référence au processus d'application de tests statistiques à des entrées, en fonction d'une sortie donnée. L’objectif est de déterminer quelles colonnes prédisent le mieux la sortie. Le composant Sélection de fonctionnalités basée sur les filtres dans le concepteur Machine Learning permet de choisir parmi plusieurs algorithmes de sélection de fonctionnalités. Le composant inclut des méthodes de corrélation telles que les valeurs de corrélation de Pearson et de test du khi-deux.

Vous pouvez également utiliser le composant Importance de la fonctionnalité de permutation pour calculer un ensemble de scores d’importance de fonctionnalité pour votre jeu de données. Vous pouvez ensuite vous aider de ces scores pour déterminer les meilleures fonctionnalités à utiliser dans un modèle.

Étapes suivantes