Sélectionner des algorithmes Azure Machine Learning

Si vous vous demandez quel algorithme de Machine Learning utiliser, la réponse dépend principalement de deux aspects 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 ? Quelles sont les fonctionnalités, la justesse, la durée d’entraînement, la linéarité et les paramètres pris en charge par votre solution ?

Diagramme montrant les considérations relatives au choix des algorithmes de Machine Learning.

Remarque

Le concepteur Azure Machine Learning 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 concernent principalement 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 prennent en charge le partage des composants dans des espaces de travail et la création en toute transparence dans les interfaces Studio, CLI v2 et du Kit de développement logiciel (SDK) v2.

Pour les nouveaux projets, nous vous conseillons vivement d’utiliser des composants personnalisés, qui sont compatibles avec AzureML V2 et continueront à recevoir de nouvelles mises à jour.

Cet article s’applique aux composants classiques et prédéfinis ; il ne concerne pas l’interface CLI v2 et le kit SDK v2.

Aide-mémoire d’algorithme Azure 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 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.

Remarque

Vous pouvez télécharger l’aide-mémoire de l’algorithme de Machine Learning.

Le concepteur 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 les informations de référence sur les algorithmes et composants 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.

En plus de ces conseils, gardez à l’esprit d’autres exigences lors du choix d’un algorithme de Machine Learning. 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 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. Nous vous suggérons de ne pas travailler avec One-vs-All Multiclass, en raison des temps de scoring plus lents dus au 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 scénario de science des données.

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, 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. Si tel est le cas, vous pourrez peut-être réduire considérablement le temps de traitement en utilisant 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’entraînement 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, 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 Entraîner le 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 du Machine Learning, le terme « linéarité » signifie qu’il existe une relation linéaire entre une variable et une constante dans 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.

Graphique montrant une limite de classe non linéaire.

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

Graphique montrant des données avec une tendance non linéaire.

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 qu’un scientifique des données règle lorsqu’il configure 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.

Il existe également le composant Optimiser les hyperparamètres du modèle dans le concepteur. 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 entraîner 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 du Machine Learning, une caractéristique 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 conviennent bien aux scénarios comportant un grand nombre de caractéristiques. 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 caractéristiques par filtrage permet de choisir parmi plusieurs algorithmes de sélection de caractéristiques. 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 utiliser ces scores pour déterminer les meilleures caractéristiques à utiliser dans un modèle.