Sélectionner des algorithmes Azure Machine LearningHow to select algorithms for Azure Machine Learning

Vous êtes nombreux à vous poser la question suivante : « Quel algorithme d'apprentissage automatique dois-je utiliser ? ».A common question is “Which machine learning algorithm should I use?” Le choix de l'algorithme repose principalement sur deux aspects distincts de votre scénario de science des données :The algorithm you select depends primarily on two different aspects of your data science scenario:

  • Que voulez-vous faire avec vos données ?What you want to do with your data? Plus précisément, quelle est la question à laquelle vous souhaitez répondre à partir de vos données passées ?Specifically, what is the business question you want to answer by learning from your past data?

  • Quelles sont les exigences propres à votre scénario de science des données ?What are the requirements of your data science scenario? 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 ?Specifically, what is the accuracy, training time, linearity, number of parameters, and number of features your solution supports?

Considérations relatives au choix des algorithmes : Que voulez-vous savoir ?

Scénarios d'entreprise et Aide-mémoire sur les algorithmes Machine LearningBusiness scenarios and the Machine Learning Algorithm Cheat Sheet

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 ?  ?The Azure Machine Learning Algorithm Cheat Sheet helps you with the first consideration: What you want to do with your data? Utilisez l'Aide-mémoire sur les algorithmes Machine Learning pour rechercher la tâche que vous souhaitez effectuer, puis recherchez un concepteur Azure Machine Learning pour la solution d'analyse prédictive.On the Machine Learning Algorithm Cheat Sheet, look for task you want to do, and then find a Azure Machine Learning designer algorithm for the predictive analytics solution.

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.Machine Learning designer provides a comprehensive portfolio of algorithms, such as Multiclass Decision Forest, Recommendation systems, Neural Network Regression, Multiclass Neural Network, and K-Means Clustering. Chaque algorithme est conçu pour traiter un type particulier de problème d'apprentissage automatique.Each algorithm is designed to address a different type of machine learning problem. Consultez Informations de référence sur les algorithmes et les modules du concepteur Machine Learning. Vous y trouverez une liste complète ainsi que de la documentation sur le fonctionnement de chaque algorithme et sur les paramètres à configurer pour optimiser l'algorithme.See the Machine Learning designer algorithm and module reference for a complete list along with documentation about how each algorithm works and how to tune parameters to optimize the algorithm.

Notes

Pour télécharger l'aide-mémoire relatif aux algorithmes d'apprentissage automatique, accédez à Aide-mémoire sur les algorithmes Azure Machine Learning.To download the machine learning algorithm cheat sheet, go to Azure Machine learning algorithm cheat sheet.

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.Along with guidance in the Azure Machine Learning Algorithm Cheat Sheet, keep in mind other requirements when choosing a machine learning algorithm for your 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.Following are additional factors to consider, such as the accuracy, training time, linearity, number of parameters and number of features.

Comparaison des algorithmes d’apprentissage automatiqueComparison of machine learning algorithms

Certains algorithmes d'apprentissage effectuent des hypothèses particulières sur la structure des données ou les résultats souhaités.Some learning algorithms make particular assumptions about the structure of the data or the desired results. 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.If you can find one that fits your needs, it can give you more useful results, more accurate predictions, or faster training times.

Le tableau suivant résume certaines des caractéristiques les plus importantes des algorithmes des familles de classification, régression et clustering :The following table summarizes some of the most important characteristics of algorithms from the classification, regression, and clustering families:

AlgorithmeAlgorithm PrécisionAccuracy Durée d’apprentissageTraining time LinéaritéLinearity ParamètresParameters RemarquesNotes
Famille de classificationClassification family
Régression logistique à deux classesTwo-Class logistic regression BonneGood RapideFast OuiYes 44
Forêt d’arbres décisionnels à deux classesTwo-class decision forest ExcellentExcellent ModéréModerate NonNo 55 Affiche des temps de scoring plus lents.Shows slower scoring times. 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’arborescenceSuggest not working with One-vs-All Multiclass, because of slower scoring times caused by tread locking in accumulating tree predictions
Arbre de décision optimisé à deux classesTwo-class boosted decision tree ExcellentExcellent ModéréModerate NonNo 66 Encombrement de mémoire importantLarge memory footprint
Réseau neuronal à deux classesTwo-class neural network BonneGood ModéréModerate NonNo 88
Perceptron moyenné à deux classesTwo-class averaged perceptron BonneGood ModéréModerate OuiYes 44
Machine à vecteurs de support à deux classesTwo-class support vector machine BonneGood RapideFast OuiYes 55 Idéal pour les ensembles de fonctionnalités de grande tailleGood for large feature sets
Régression logistique multiclasseMulticlass logistic regression BonneGood RapideFast OuiYes 44
Forêt d’arbres de décision multiclasseMulticlass decision forest ExcellentExcellent ModéréModerate NonNo 55 Affiche des temps de scoring plus lents.Shows slower scoring times
Arbre de décision multiclasse optimiséMulticlass boosted decision tree ExcellentExcellent ModéréModerate NonNo 66 A tendance à améliorer la précision avec un léger risque de diminution de la couvertureTends to improve accuracy with some small risk of less coverage
Réseau neuronal multiclasseMulticlass neural network BonneGood ModéréModerate NonNo 88
One-vs-all multiclassOne-vs-all multiclass - - - - Consultez les propriétés de la méthode à deux classes sélectionnéeSee properties of the two-class method selected
Famille de régressionRegression family
Régression linéaireLinear regression BonneGood RapideFast OuiYes 44
Régression de forêt d’arbres de décisionDecision forest regression ExcellentExcellent ModéréModerate NonNo 55
Régression d’arbre de décision boostéBoosted decision tree regression ExcellentExcellent ModéréModerate NonNo 66 Encombrement de mémoire importantLarge memory footprint
Régression de réseau neuronalNeural network regression BonneGood ModéréModerate NonNo 88
Famille de clusteringClustering family
Clustering k-moyennesK-means clustering ExcellentExcellent ModéréModerate OuiYes 88 Un algorithme de clusteringA clustering algorithm

Exigences d’un scénario de science des donnéesRequirements for a data science scenario

Après avoir déterminé ce que vous voulez faire avec vos données, vous devez tenir compte d'autres exigences pour votre solution.Once you know what you want to do with your data, you need to determine additional requirements for your solution.

Faites des choix, voire des compromis, pour les exigences suivantes :Make choices and possibly trade-offs for the following requirements:

  • PrécisionAccuracy
  • Durée d’apprentissageTraining time
  • LinéaritéLinearity
  • Nombre de paramètresNumber of parameters
  • Nombre de fonctionnalitésNumber of features

PrécisionAccuracy

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.Accuracy in machine learning measures the effectiveness of a model as the proportion of true results to total cases. Dans le concepteur Machine Learning, le module Évaluer un modèle calcule un ensemble de mesures d'évaluation normalisées.In Machine Learning designer, the Evaluate Model module computes a set of industry-standard evaluation metrics. Vous pouvez utiliser ce module pour mesurer la précision d'un modèle formé.You can use this module to measure the accuracy of a trained model.

Il n'est pas toujours nécessaire d'obtenir la réponse la plus exacte possible.Getting the most accurate answer possible isn’t always necessary. Parfois, en fonction de votre utilisation, une approximation suffit.Sometimes an approximation is adequate, depending on what you want to use it for. Dans ce cas, vous réduirez probablement considérablement le temps de traitement en ayant recours à des méthodes plus approximatives.If that is the case, you may be able to cut your processing time dramatically by sticking with more approximate methods. Les méthodes approximatives tendent aussi naturellement à éviter le surajustement.Approximate methods also naturally tend to avoid overfitting.

Trois méthodes d'utilisation du module Évaluer un modèle sont disponibles :There are three ways to use the Evaluate Model module:

  • Générer des scores sur vos données d'apprentissage afin d'évaluer le modèleGenerate scores over your training data in order to evaluate the model
  • Générer des scores sur le modèle, mais comparer ces scores à ceux d’un jeu de tests réservéGenerate scores on the model, but compare those scores to scores on a reserved testing set
  • Comparer les scores de deux modèles différents mais liés, en utilisant le même jeu de donnéesCompare scores for two different but related models, using the same set of data

Pour obtenir la liste complète des mesures et approches disponibles afin d'évaluer la précision des modèles Machine Learning, consultez Module Évaluer un modèle.For a complete list of metrics and approaches you can use to evaluate the accuracy of machine learning models, see Evaluate Model module.

Durée d’apprentissageTraining time

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.In supervised learning, training means using historical data to build a machine learning model that minimizes errors. Le nombre de minutes ou d'heures nécessaires pour l'apprentissage d'un modèle varie beaucoup selon les algorithmes.The number of minutes or hours necessary to train a model varies a great deal between algorithms. La durée d'apprentissage est souvent étroitement liée à la précision : l'une accompagne généralement l'autre.Training time is often closely tied to accuracy; one typically accompanies the other.

En outre, certains algorithmes sont plus sensibles au nombre de points de données que d'autres.In addition, some algorithms are more sensitive to the number of data points than others. 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.You might choose a specific algorithm because you have a time limitation, especially when the data set is large.

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 :In Machine Learning designer, creating and using a machine learning model is typically a three-step process:

  1. Configurez un modèle en choisissant un type d'algorithme particulier et en définissant ses paramètres ou hyperparamètres.Configure a model, by choosing a particular type of algorithm, and then defining its parameters or hyperparameters.

  2. Fournissez un jeu de données doté d'une étiquette et dont les données sont compatibles avec l'algorithme.Provide a dataset that is labeled and has data compatible with the algorithm. Connectez les données et le modèle au module Former le modèle.Connect both the data and the model to Train Model module.

  3. Au terme de la formation, utilisez le modèle formé avec l'un des modules de scoring pour effectuer des prédictions sur de nouvelles données.After training is completed, use the trained model with one of the scoring modules to make predictions on new data.

LinéaritéLinearity

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.Linearity in statistics and machine learning means that there is a linear relationship between a variable and a constant in your dataset. 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).For example, linear classification algorithms assume that classes can be separated by a straight line (or its higher-dimensional analog).

Un grand nombre d'algorithmes d'apprentissage automatique utilisent la linéarité.Lots of machine learning algorithms make use of linearity. Dans le concepteur Azure Machine Learning, ces algorithmes sont les suivants :In Azure Machine Learning designer, they include:

Les algorithmes de régression linéaire supposent que les tendances des données suivent une ligne droite.Linear regression algorithms assume that data trends follow a straight line. Ce postulat convient à certains problèmes, mais pour d'autres, il réduit la précision.This assumption isn't bad for some problems, but for others it reduces accuracy. Malgré leurs inconvénients, les algorithmes linéaires constituent une première stratégie très prisée.Despite their drawbacks, linear algorithms are popular as a first strategy. Ils ont tendance à être des algorithmes simples et à apprentissage rapide.They tend to be algorithmically simple and fast to train.

Limite de classe non linéaire

Limite de classe non linéaire : l'utilisation d'un algorithme de classification linéaire nuirait à la précision.Nonlinear class boundary: Relying on a linear classification algorithm would result in low accuracy.

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 trop d'erreurs.Data with a nonlinear trend: Using a linear regression method would generate much larger errors than necessary.

Nombre de paramètresNumber of parameters

Les paramètres sont les boutons que les scientifiques des données règlent lorsqu’ils configurent un algorithme.Parameters are the knobs a data scientist gets to turn when setting up an algorithm. 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.They are numbers that affect the algorithm’s behavior, such as error tolerance or number of iterations, or options between variants of how the algorithm behaves. La durée d'apprentissage et la précision de l'algorithme peuvent parfois dépendre du choix des paramètres appropriés.The training time and accuracy of the algorithm can sometimes be sensitive to getting just the right settings. En règle générale, les algorithmes avec des paramètres à grands nombres nécessitent plus d’essais pour trouver la bonne combinaison.Typically, algorithms with large numbers of parameters require the most trial and error to find a good combination.

Le concepteur Machine Learning comprend également le module Optimiser les hyperparamètres : L'objectif de ce module est de déterminer les hyperparamètres optimaux pour un modèle Machine Learning.Alternatively, there is the Tune Model Hyperparameters module in Machine Learning designer: The goal of this module is to determine the optimum hyperparameters for a machine learning model. Le module génère et teste plusieurs modèles avec différentes combinaisons de paramètres.The module builds and tests multiple models by using different combinations of settings. Il compare les métriques à tous les modèles pour obtenir les combinaisons de paramètres.It compares metrics over all models to get the combinations of settings.

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.While this is a great way to make sure you’ve spanned the parameter space, the time required to train a model increases exponentially with the number of parameters. Avoir de nombreux paramètres indique généralement qu'un algorithme a une plus grande flexibilité.The upside is that having many parameters typically indicates that an algorithm has greater flexibility. Cette méthode donne souvent une excellente précision, une fois que vous avez trouvé la bonne combinaison de paramètres.It can often achieve very good accuracy, provided you can find the right combination of parameter settings.

Nombre de fonctionnalitésNumber of features

Dans le domaine de l'apprentissage automatique, une fonctionnalité est une variable quantifiable du phénomène que vous essayez d'analyser.In machine learning, a feature is a quantifiable variable of the phenomenon you are trying to analyze. 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.For certain types of data, the number of features can be very large compared to the number of data points. C'est souvent le cas avec les données génétiques ou textuelles.This is often the case with genetics or textual data.

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.A large number of features can bog down some learning algorithms, making training time unfeasibly long. Les machines à vecteurs de support sont particulièrement bien adaptées aux scénarios comportant un grand nombre de fonctionnalités.Support vector machines are particularly well suited to scenarios with a high number of features. 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.For this reason, they have been used in many applications from information retrieval to text and image classification. Les machines à vecteurs de support peuvent être utilisées pour les tâches de classification et de régression.Support vector machines can be used for both classification and regression tasks.

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.Feature selection refers to the process of applying statistical tests to inputs, given a specified output. L’objectif est de déterminer quelles colonnes prédisent le mieux la sortie.The goal is to determine which columns are more predictive of the output. Dans le concepteur Machine Learning, le module Sélection de fonctionnalités par filtrage permet de choisir parmi plusieurs algorithmes de sélection de fonctionnalités.The Filter Based Feature Selection module in Machine Learning designer provides multiple feature selection algorithms to choose from. Le module inclut des méthodes de corrélation telles que les valeurs de corrélation de Pearson et de test du khi-deux.The module includes correlation methods such as Pearson correlation and chi-squared values.

Vous pouvez également utiliser le module Importance de la fonctionnalité de permutation pour calculer un ensemble de scores d'importance des fonctionnalités pour votre jeu de données.You can also use the Permutation Feature Importance module to compute a set of feature importance scores for your dataset. Vous pouvez ensuite vous aider de ces scores pour déterminer les meilleures fonctionnalités à utiliser dans un modèle.You can then leverage these scores to help you determine the best features to use in a model.

Étapes suivantesNext steps