Partager via


Optimiser les hyperparamètres du modèle

Important

Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.

La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.

Effectue un balayage de paramètres sur le modèle pour déterminer les paramètres optimaux

catégorie : Machine Learning/Train

Notes

s’applique à: Machine Learning Studio (classic) uniquement

Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.

Vue d’ensemble du module

cet article explique comment utiliser le module réglage des hyperparamètres de modèle dans Machine Learning Studio (classic) pour déterminer les hyperparamètres optimaux pour un modèle de Machine Learning donné. Le module génère et teste plusieurs modèles, à l’aide de différentes combinaisons de paramètres, et compare les métriques à tous les modèles pour obtenir la combinaison de paramètres.

Les termes paramètre et hyperparamètre peuvent prêter à confusion. Les paramètres du modèle sont ce que vous définissez dans le volet des propriétés. Ce module effectue essentiellement un balayage de paramètres sur les réglages de paramètres spécifiés et apprend un ensemble optimal d’hyperparamètres, qui peut être différent pour chaque arbre de décision, jeu de données ou méthode de régression. Le processus de recherche de la configuration optimale est parfois appelé optimisation.

Le module prend en charge deux méthodes pour trouver les paramètres optimaux d’un modèle :

  • Apprentissage et réglage intégrés: vous configurez un ensemble de paramètres à utiliser, puis laissez le module effectuer une itération sur plusieurs combinaisons, en mesurant la précision jusqu’à ce qu’il trouve un modèle « optimal ». Avec la plupart des modules d’apprentissage, vous pouvez choisir les paramètres à changer au cours du processus d’entraînement et ceux qui doivent rester tels quels.

    Selon la durée d’exécution du processus de paramétrage, vous pouvez décider de tester de façon exhaustive toutes les combinaisons, ou vous pouvez raccourcir le processus en établissant une grille de combinaisons de paramètres et en testant un sous-ensemble aléatoire de la grille de paramètres.

  • Validation croisée avec réglage: avec cette option, vous divisez vos données en un certain nombre de replis, puis vous générez et testez des modèles sur chaque pli. Cette méthode fournit la meilleure précision et peut aider à identifier les problèmes liés au jeu de données. Toutefois, l’apprentissage est plus long.

Les deux méthodes génèrent un modèle formé que vous pouvez enregistrer pour une réutilisation.

  • Si vous générez un modèle de clustering, utilisez le clustering de balayage pour déterminer automatiquement le nombre optimal de clusters et d’autres paramètres.

  • Avant l’optimisation, appliquez la sélection des caractéristiques pour déterminer les colonnes ou les variables qui ont la valeur d’information la plus élevée. Pour plus d'informations, consultez Feature Selection.

Comment configurer le module Optimiser les hyperparamètres du modèle

En général, l’apprentissage des hyperparamètres optimaux pour un modèle de Machine Learning donné requiert une expérimentation considérable. Ce module prend en charge le processus de paramétrage initial et la validation croisée pour tester la précision du modèle :

Entraîner un modèle à l’aide d’un balayage de paramètres

Cette section décrit comment effectuer un balayage de paramètre de base, qui forme un modèle à l’aide du module paramétrer les hyperparamètres de modèle .

  1. Ajoutez le module régler le modèle hyperparamètres à votre expérience dans Studio (Classic).

  2. Connecter un modèle non formé (modèle au format iLearner ) à l’entrée la plus à gauche.

  3. Définissez l’option Mode de création du dispositif d’entraînement sur Plage de paramètres et utilisez le générateur de plages pour spécifier une plage de valeurs à utiliser dans le balayage de paramètres.

    Presque tous les modules de classification et de régression prennent en charge un balayage de paramètre intégré. Pour les apprenants qui ne prennent pas en charge la configuration d’une plage de paramètres, seules les valeurs de paramètres disponibles peuvent être testées.

    Vous pouvez définir manuellement la valeur d’un ou plusieurs paramètres, puis balayer les paramètres restants. Cela peut vous faire gagner du temps.

  4. Ajoutez le jeu de données que vous souhaitez utiliser pour l’entraînement et connectez-le à l’entrée du milieu du module Optimiser les hyperparamètres du modèle.

    Éventuellement, si vous avez un jeu de données étiqueté, vous pouvez le connecter au port d’entrée le plus à droite (Jeu de données de validation facultatif). Cela vous permet de mesurer la justesse pendant l’entraînement et l’optimisation.

  5. Dans le volet Propriétés de régler les hyperparamètres du modèle, choisissez une valeur pour le mode de balayage des paramètres. Cette option contrôle la manière dont les paramètres sont sélectionnés.

    • Grille entière : Quand vous sélectionnez cette option, le module effectue une boucle sur une grille prédéfinie par le système, pour essayer différentes combinaisons et identifier le meilleur apprenant. Cette option est utile dans les cas où vous ne savez pas quels sont les meilleurs réglages de paramètres et que vous souhaitez essayer toutes les combinaisons de valeurs possibles.

    Vous pouvez également réduire la taille de la grille et exécuter un balayage de grille aléatoire . La recherche a montré que cette méthode produit les mêmes résultats, mais est plus efficace en termes de calcul.

    • Balayage aléatoire : Quand vous sélectionnez cette option, le module sélectionne aléatoirement des valeurs de paramètre sur une plage définie par le système. Vous devez spécifier le nombre maximal d’exécutions que le module doit exécuter. Cette option est utile dans les cas où vous souhaitez augmenter les performances du modèle à l’aide des métriques de votre choix, tout en économisant les ressources de calcul.
  6. Pour Colonne d’étiquette, lancez le sélecteur de colonne pour choisir une colonne à étiquette unique.

  7. Choisissez une métrique unique à utiliser lors du classement par ordre de priorité des modèles.

    Quand vous exécutez un balayage de paramètres, toutes les métriques applicables pour le type de modèle sont calculées et sont retournées dans le rapport des Résultats de balayage. Des métriques distinctes sont utilisées pour les modèles de régression et de classification.

    Toutefois, la métrique que vous choisissez détermine la façon dont les modèles sont classés par ordre de priorité. Seul le premier modèle, tel que classé par la métrique choisie, est généré en tant que modèle entraîné à utiliser pour le scoring.

  8. Pour Valeur de départ aléatoire, tapez un nombre à utiliser lors de l’initialisation du balayage de paramètres.

    Si vous effectuez l’apprentissage d’un modèle qui prend en charge un balayage de paramètre intégré, vous pouvez également définir une plage de valeurs de départ à utiliser et itérer également sur les graines aléatoires. Cela peut être utile pour éviter le décalage introduit par la sélection de la valeur initiale.

  9. Exécutez l’expérience.

Résultats de l’optimisation des hyperparamètres

Quand l’entraînement est terminé :

  • Pour voir un ensemble de métriques de justesse pour le meilleur modèle, cliquez avec le bouton droit sur le module, sélectionnez Résultats du balayage, puis sélectionnez visualiser.

    Toutes les métriques de justesse applicables au type de modèle sont générées, mais la métrique que vous avez sélectionnée pour le classement détermine le modèle considéré comme le « meilleur ». Les métriques sont générées uniquement pour le modèle de priorité supérieure.

  • Pour afficher les paramètres dérivés du modèle « Best », cliquez avec le bouton droit sur le module, sélectionnez le meilleur modèle formé, puis cliquez sur visualiser. Le rapport comprend des paramètres et des pondérations de caractéristiques pour les colonnes d’entrée.

  • Pour utiliser le modèle pour la notation dans d’autres expériences, sans avoir à répéter le processus de paramétrage, cliquez avec le bouton droit sur la sortie du modèle et sélectionnez enregistrer en tant que modèle formé.

Effectuer une validation croisée avec un balayage de paramètre

Cette section décrit comment combiner un balayage de paramètre avec la validation croisée. Ce processus prend plus de temps, mais vous pouvez spécifier le nombre de replis et obtenir la quantité maximale d’informations sur votre jeu de données et les modèles possibles.

  1. Ajoutez la partition et l’exemple de module à votre expérience et connectez les données d’apprentissage.

  2. Choisissez l’option assigner aux plist et spécifiez un nombre de replis pour diviser les données. Si vous ne spécifiez pas de nombre, 10 plis par défaut sont utilisés. Les lignes sont réparties de manière aléatoire dans ces plis, sans remplacement.

  3. Pour équilibrer l’échantillonnage sur une colonne, affectez la valeur trueau fractionnement stratifié , puis sélectionnez la colonne strates. Par exemple, si vous avez un jeu de données non équilibré, vous pouvez diviser le jeu de données de telle sorte que chaque pli récupère le même nombre de cas minoritaires.

  4. Ajoutez le module régler le modèle hyperparamètres à votre expérience.

  5. Connecter l’un des modules Machine Learning de cette catégorie à l’entrée de gauche des hyperparamètres du modèle d’optimisation.

  6. Dans le volet Propriétés de l’Assistant, définissez l’option créer un mode de l’instructeur sur la plage de paramètres et utilisez le générateur de plage pour spécifier une plage de valeurs à utiliser dans le balayage de paramètre.

    Vous n’avez pas besoin de spécifier une plage pour toutes les valeurs. Vous pouvez définir manuellement la valeur de certains paramètres, puis balayer les paramètres restants. Cela peut vous faire gagner du temps.

    Pour obtenir la liste des apprenants qui ne prennent pas en charge cette option, consultez la section Notes techniques .

  7. Connecter la sortie de la Partition et de l’exemple à l’entrée jeu de données d’apprentissage étiquetée paramètres du modèle d' optimisation.

  8. Si vous le souhaitez, vous pouvez connecter un jeu de données de validation à l’entrée la plus à droite des hyperparamètres de modèle d’optimisation. Pour la validation croisée, vous n’avez besoin que d’un jeu de données d’apprentissage.

  9. Dans le volet Propriétés de régler les hyperparamètres de modèle, indiquez si vous souhaitez effectuer un balayage aléatoire ou un balayage de grille. Un balayage de la grille est exhaustif, mais plus long. Une recherche de paramètres aléatoires peut obtenir de bons résultats sans nécessiter beaucoup de temps.

    Nombre maximal d’exécutions sur le balayage aléatoire: Si vous choisissez un balayage aléatoire, vous pouvez spécifier le nombre de fois que le modèle doit être formé, à l’aide d’une combinaison aléatoire de valeurs de paramètre.

    Nombre maximal d’exécutions sur une grille aléatoire: cette option contrôle également le nombre d’itérations sur un échantillonnage aléatoire des valeurs de paramètre, mais les valeurs ne sont pas générées de façon aléatoire à partir de la plage spécifiée ; au lieu de cela, une matrice est créée de toutes les combinaisons possibles de valeurs de paramètre et un échantillonnage aléatoire est pris sur la matrice. Cette méthode est plus efficace et moins sujette aux suréchantillonnages ou sous-échantillonnages régionaux.

    Conseil

    Pour plus d’informations sur ces options, consultez la section Notes techniques .

  10. Choisissez une colonne à étiquette unique.

  11. Choisissez une mesure unique à utiliser pour classer le modèle. De nombreuses mesures sont calculées. par conséquent, sélectionnez celle qui est la plus importante à utiliser pour classer les résultats.

  12. Pour Valeur de départ aléatoire, tapez un nombre à utiliser lors de l’initialisation du balayage de paramètres.

    Si vous effectuez l’apprentissage d’un modèle qui prend en charge un balayage de paramètre intégré, vous pouvez également définir une plage de valeurs de départ à utiliser et itérer également sur les graines aléatoires. Cette option est facultative, mais elle peut être utile pour éviter le décalage introduit par la sélection de valeur initiale.

  13. Ajoutez le module Cross-Validate Model . Connecter la sortie de la Partition et de l’exemple à l’entrée du jeu de données , et connectez la sortie des hyperparamètres du modèle d’optimisation à l’entrée de modèle non formé .

  14. Exécutez l’expérience.

Résultats de la validation croisée

Lorsque la validation croisée est terminée :

  • Pour afficher les résultats de l’évaluation, cliquez avec le bouton droit sur le module, sélectionnez résultats de l’évaluation par pliure, puis sélectionnez visualiser.

    Les mesures de précision sont calculées à partir de la validation croisée et peuvent varier légèrement selon le nombre de pliures que vous avez sélectionnées.

  • Pour voir comment le jeu de données a été divisé et comment le modèle « optimal » correspondrait à chaque ligne du jeu de données, cliquez avec le bouton droit sur le module, sélectionnez résultats notés, puis sélectionnez visualiser.

  • Si vous enregistrez ce jeu de données pour une réutilisation ultérieure, les affectations de pliure sont conservées. Par exemple, le datsaet enregistré peut se présenter comme suit :

    Affectations de plis Classe Age (1ère colonne de fonctionnalité)
    2 0 35
    1 1 17
    3 0 62
  • Pour obtenir les paramètres du modèle « Best », cliquez avec le bouton droit sur l' hyperparamètres du modèle d’optimisation .

Exemples

Pour obtenir des exemples d’utilisation de ce module, consultez la Azure ai Gallery:

Notes techniques

Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.

Fonctionnement du balayage de paramètres

Cette section décrit le fonctionnement général du balayage des paramètres, ainsi que la façon dont les options de ce module interagissent.

Quand vous configurez un balayage de paramètres, vous définissez l’étendue de votre recherche, pour utiliser un nombre fini de paramètres sélectionnés de façon aléatoire, ou une recherche exhaustive sur un espace de paramètres défini par vos soins.

  • Balayage aléatoire: cette option forme un modèle à l’aide d’un nombre défini d’itérations.

    Vous spécifiez une plage de valeurs à itérer, puis le module utilise un sous-ensemble de ces valeurs choisi de façon aléatoire. Les valeurs sont choisies avec remplacement ; les nombres précédemment choisis au hasard ne sont pas supprimés du pool de nombres disponibles. Ainsi, la possibilité qu’une valeur soit sélectionnée est la même pour toutes les passes.

  • Balayagede la grille : cette option permet de créer une matrice, ou grille, qui comprend toutes les combinaisons de paramètres dans la plage de valeurs que vous spécifiez. Lorsque vous commencez le paramétrage à l’aide de ce module, plusieurs modèles sont formés à l’aide de combinaisons de ces paramètres.

  • Grille entière: l’option permettant d’utiliser la totalité de la grille signifie simplement : chaque combinaison est testée. Cette option peut être considérée comme la plus complète, mais elle nécessite le plus de temps.

  • Grille aléatoire: Si vous sélectionnez cette option, la matrice de toutes les combinaisons est calculée et les valeurs sont échantillonnées à partir de la matrice, sur le nombre d’itérations que vous avez spécifié.

    Les recherches récentes ont montré que les balayages aléatoires peuvent être plus performants que les balayages de grille.

Contrôle de la longueur et de la complexité de l’entraînement

L’itération sur plusieurs combinaisons de paramètres pouvant prendre du temps, le module fournit plusieurs façons de limiter le processus :

  • Limiter le nombre d’itérations utilisées pour tester un modèle
  • Limiter l’espace de paramètres
  • Limiter le nombre d’itérations et l’espace de paramètre

Nous vous recommandons d’expérimenter les paramètres pour déterminer la méthode d’apprentissage la plus efficace sur un jeu de données et un modèle particuliers.

Choix d’une métrique d’évaluation

Un rapport contenant la justesse de chaque modèle est présenté à la fin afin que vous puissiez passer en revue les résultats des métriques. Un ensemble uniforme de métriques est utilisé pour tous les modèles de classification, et un ensemble différent de métriques est utilisé pour les modèles de régression. Toutefois, pendant l’entraînement, vous devez choisir une seule métrique à utiliser pour classer par ordre de priorité les modèles qui sont générés pendant le processus d’optimisation. Vous constaterez peut-être que la meilleure métrique varie en fonction du problème métier et du coût des faux positifs et des faux négatifs.

Pour plus d’informations, consultez Comment évaluer les performances d’un modèle dans machine learning

Métriques utilisées pour la classification

  • Justesse Proportion de résultats réels parmi tous les cas.

  • Précision Proportion de résultats réels parmi les résultats positifs.

  • Rappel Fraction de tous les résultats corrects par rapport à tous les résultats.

  • F-score Mesure qui équilibre la précision et le rappel.

  • AUC Valeur qui représente la zone sous la courbe quand les faux positifs sont tracés sur l’axe X et que les vrais positifs sont tracés sur l’axe Y.

  • Perte logarithmique moyenne Différence entre deux distributions de probabilité : la réelle et celle du modèle.

  • Entraîner la perte des journaux Amélioration fournie par le modèle sur une prédiction aléatoire.

Métriques utilisées pour la régression

  • Erreur d’absolue moyenne Calcule la moyenne de toutes les erreurs dans le modèle, où erreur correspond à la distance de la valeur prédite par rapport à la valeur true. Souvent abrégée en MAE.

  • Racine de l’erreur quadratique moyenne Mesure la moyenne des carrés des erreurs, puis prend la racine de cette valeur. Souvent abrégée en RMSE.

  • Erreur absolue relative Représente l’erreur sous la forme d’un pourcentage de la valeur true.

  • Erreur quadratique relative Normalise l’erreur au carré total en divisant par l’erreur quadratique totale des valeurs prédites.

  • Coefficient de détermination Nombre unique qui indique la façon dont les données sont adaptées à un modèle. La valeur 1 signifie que le modèle correspond exactement aux données ; la valeur 0 signifie que les données sont aléatoires ou ne peuvent pas être contenues dans le modèle. Souvent appelé r2, R2, or R carré.

Modules qui ne prennent pas en charge un balayage de paramètres

presque tous les apprenants dans Machine Learning prennent en charge la validation croisée avec un balayage de paramètre intégré, qui vous permet de choisir les paramètres à tester. Si l’apprenant ne prend pas en charge la définition d’une plage de valeurs, vous pouvez toujours l’utiliser dans la validation croisée. Dans ce cas, une plage de valeurs autorisées est sélectionnée pour le balayage.

Les apprenants suivants ne prennent pas en charge la définition d’une plage de valeurs à utiliser dans un balayage de paramètre :

Entrées attendues

Nom Type Description
Untrained model (Modèle non entraîné) Interface ILearner Modèle non entraîné pour le balayage de paramètres
Jeu de données d’entraînement Table de données Jeu de données d'entrée pour l'apprentissage
Jeu de données de validation Table de données Jeu de données d'entrée pour la validation (pour le mode de validation d'apprentissage/de test). Cette entrée est facultative.

Paramètres du module

Nom Plage Type Default Description
Spécifier le mode de balayage des paramètres Liste Méthodes de balayage Balayage aléatoire Balaye l'intégralité de la grille sur l'espace des paramètres ou balaye sur un nombre limité d'exemples de cycles
Nombre maximal de cycles de balayage aléatoire [1 ; 10000] Integer 5 Exécuter le nombre maximal de cycles à l'aide du balayage aléatoire
Valeur initiale aléatoire n'importe laquelle Integer 0 Fournir une valeur pour amorcer le générateur de nombres aléatoires
Colonne d'étiquette n'importe laquelle ColumnSelection Colonne d'étiquette
Mesures des performances pour la classification Liste Type de mesure de classification binaire Précision Sélectionner la mesure utilisée pour évaluer les modèles de classification
Mesures des performances pour la régression Liste Type RegressionMetric Erreur d'absolue moyenne Sélectionner la mesure utilisée pour évaluer les modèles de régression

Sorties

Nom Type Description
Résultats du balayage Table de données Mesures des résultats des cycles de balayage des paramètres
Modèle le mieux entraîné Interface ILearner Modèle avec les performances optimales sur le jeu de données d'apprentissage

Voir aussi

Liste alphabétique des modules
Entraîner
Modèle de validation croisée