Entraîner et évaluer des modèles dans Model Builder

Effectué

Dans cette unité, vous allez apprendre à entraîner et à évaluer des modèles Machine Learning dans Model Builder.

Pendant l’entraînement, Model Builder applique des algorithmes à vos données. En utilisant des métriques d’évaluation pour le scénario spécifique, vous mesurez le comportement de votre modèle.

Entraînement dans Model Builder

Maintenant que vous avez sélectionné votre scénario et votre environnement d’entraînement, et chargé vos données, il est temps de commencer à entraîner votre modèle. L’entraînement consiste à appliquer à votre jeu de données des algorithmes pour le scénario choisi afin de trouver le meilleur modèle. Nous verrons ce que signifie « meilleur » lors de l’étape d’évaluation.

Dans la plupart des cas, pour entraîner des modèles Machine Learning dans Model Builder, vous devez uniquement indiquer le temps que vous souhaitez consacrer à l’entraînement.

Combien de temps doit durer l’entraînement ?

Des périodes d’entraînement plus longues permettent à Model Builder d’explorer davantage de modèles avec une plus large gamme de paramètres.

Le tableau suivant résume la durée moyenne nécessaire pour obtenir de bonnes performances pour une suite d’exemples de jeux de données, sur un ordinateur local avec un processeur :

Taille du jeu de données Durée moyenne d’entraînement
0 Mo à 10 Mo 10 secondes
10 Mo à 100 Mo 10 minutes
100 Mo à 500 Mo 30 minutes
500 Mo à 1 Go 60 minutes
+ de 1 Go + de 3 heures

Ces chiffres sont uniquement à titre indicatif. La durée exacte de l’entraînement dépend des éléments suivants :

  • Nombre de caractéristiques (colonnes) utilisées comme entrée pour le modèle.
  • Type des colonnes.
  • Tâche de Machine Learning.
  • Performances du processeur, du GPU, du disque et de la mémoire de l’ordinateur utilisé pour l’entraînement.

Conseil

Utilisez plus de 100 lignes comme jeux de données. Une quantité inférieure risque de ne pas générer de résultats.

Comment Model Builder trouve-t-il le meilleur modèle ?

Vous avez probablement entendu dire que le Machine Learning implique des mathématiques complexes. Alors comment Model Builder peut-il entraîner un modèle Machine Learning si vous n’avez fourni qu’un scénario, un jeu de données et la durée pendant laquelle vous souhaitez que Model Builder effectue l’entraînement ?

Model Builder utilise le Machine Learning automatisé (AutoML) pour identifier l’ensemble des transformations afin de préparer vos données pour l’entraînement, sélectionner un algorithme et régler les paramètres (également appelés hyperparamètres) de l’algorithme. En utilisant des métriques d’évaluation propres à la tâche de Machine Learning sélectionnée, Model Builder peut déterminer quel modèle offre les meilleures performances pour vos données.

Code d’entraînement et de consommation

Une fois l’entraînement de votre modèle terminé, Model Builder génère les fichiers suivants puis les ajoute à votre projet. Ces fichiers sont imbriqués sous votre fichier .mbconfig.

  • <MODEL-NAME>.zip : l’artefact du modèle Machine Learning. Ce fichier contient une version sérialisée de votre modèle
  • <MODEL-NAME>.training.zip : ce fichier contient le pipeline d’entraînement du modèle. Votre pipeline d’entraînement de modèle est constitué des transformations de données et de l’algorithme utilisés pour entraîner votre modèle Machine Learning. Pour plus d’informations, consultez Transformations de données et Guide pratique pour choisir un algorithme ML.NET.
  • <MODEL-NAME>.consumption.cs : ce fichier contient les classes qui définissent le schéma de l’entrée et de la sortie du modèle. Il contient également la méthode Predict, qui utilise votre modèle pour créer une API PredictionEngine et faire des prédictions. PredictionEngine est une API pratique qui vous permet d’effectuer une prédiction sur une instance de données unique.

Évaluer votre modèle

Maintenant que vous avez trouvé le meilleur modèle pour vos données, il est temps de tester la justesse des prédictions. L’une des façons d’évaluer l’efficacité de votre modèle est d’utiliser des métriques.

Les métriques d’évaluation sont propres au type de tâche de machine learning effectuée par un modèle. Pour chaque tâche, vous pouvez consulter différentes métriques pour déterminer les performances de votre modèle.

Ce tableau montre les métriques d’évaluation utilisées par Model Builder pour choisir le meilleur modèle, en fonction du scénario :

Scénario Mesures d’évaluation Recherche
Classification des données Binaire (justesse)/multiclasse (microjustesse) Plus la valeur est proche de 1,00, meilleures sont les performances
Prédiction de valeur R carré Plus la valeur est proche de 1,00, meilleures sont les performances
Classification d’images Précision Plus la valeur est proche de 1,00, meilleures sont les performances
Recommandation R carré Plus la valeur est proche de 1,00, meilleures sont les performances
Détection d’objets Précision Plus la valeur est proche de 1,00, meilleures sont les performances

Pour plus d’informations sur les métriques d’évaluation de ML.NET, consultez Métriques d’évaluation de modèle.

Choix du modèle avec les métriques les plus élevées

Votre modèle a obtenu des métriques d’évaluation parfaites. Cela signifie-t-il que vous avez le modèle parfait ? Pas forcément. En fait, si vous vous retrouvez avec un modèle « parfait » tel que spécifié par vos métriques d’évaluation, il convient de faire preuve de scepticisme.

En Machine Learning, il existe un concept appelé surajustement, et vous devez y faire attention. Le surajustement se produit lorsque votre modèle apprend trop bien les patterns dans votre jeu de données d’entraînement. Lorsque vous essayez d’utiliser le modèle avec de nouvelles données, il ne fournit pas de résultats précis.

Voici un scénario qui aide à illustrer le surajustement. Imaginez que vous étudiez pour un examen. Vous connaissez déjà les questions de l’examen et vous avez les réponses à l’avance. Lors de vos révisions en vue de cet examen, vous vous concentrez sur la mémorisation des réponses aux questions. Vous passez ensuite l’examen et recevez les résultats : vous obtenez une note élevée. Une note élevée peut indiquer que vous maîtrisez bien le sujet. Toutefois, si quelqu’un devait vous poser une question sur l’un des sujets qui n’était pas directement dans l’examen, il se peut que vous vous trompiez, car vous n’avez pas appris le sujet, mais simplement mémorisé les réponses. Le surajustement fonctionne de la même façon.

Amélioration de votre modèle

Si vous n’êtes pas satisfait des métriques d’évaluation de votre modèle, vous pouvez essayer de l’améliorer de plusieurs manières :

  • Fournissez des observations de données plus représentatives : l’expérience est le meilleur enseignant. Le concept s’applique également au Machine Learning. Plus vous pouvez fournir de données, plus le jeu de modèles que votre modèle peut reconnaître est large.
  • Fournissez davantage de contexte : l’ajout de colonnes qui ajoutent du contexte à vos données aide votre modèle à identifier des patterns. Par exemple, imaginez que vous essayez de prédire le prix d’un logement, et que le seul point de données dont vous disposez est le nombre de pièces. En soi, cette information n’est peut-être pas très utile. Toutefois, que se passe-t-il si vous savez également que la maison se trouve dans une banlieue juste en dehors d’une grande ville, que le revenu moyen des ménages est de 80 000 euros, et que les écoles figurent dans le vingtième centile supérieur ? Vous disposez maintenant d’informations supplémentaires qui peuvent aider à informer la décision relative au modèle.
  • Utilisez des données et des caractéristiques significatives : bien qu’un plus grand nombre d’exemples de données et de caractéristiques puissent aider à améliorer la justesse du modèle, ils peuvent également introduire du bruit car toutes les données et caractéristiques ne sont pas significatives. Il est important de comprendre quelles fonctionnalités ont le plus d’incidence sur les décisions de l’algorithme.
  • Explorez plus d’algorithmes : fournir à Model Builder davantage de temps pour lui permettre d’explorer davantage d’algorithmes et d’hyperparamètres peut aider à améliorer votre modèle.

Dans l’unité suivante, vous allez utiliser Model Builder pour entraîner un modèle Machine Learning.