Comment modifier les hyperparamètres dans la plateforme Model ScreeningBonjour les experts JMP,
Je trouve que la plateforme Model Screening est très utile. J'ai compris les hyperparamètres via la Tuning Design Table, je me demande donc s'il existe un moyen de modifier les hyperparamètres dans la plate-forme Model Screening, telle que JSL.
Si la plateforme ne peut pas modifier les hyperparamètres, puis-je utiliser les paramètres par défaut dans l'article.
Dans l'attente de votre réponse
Modélisation statistique avancéeRe : Comment modifier les hyperparamètres dans la plateforme Model ScreeningSalut @Wang123 ,
Bienvenue dans la Communauté !
Avez-vous lu la documentation sur Model Screening ? Pour répondre directement à votre question, voici la réponse dans l'aide JMP : " Les plates-formes de modélisation utilisent des options par défaut et des paramètres de réglage lors de l'ajustement du modèle. Vous pouvez essayer d'améliorer l'ajustement au-delà de ce que donne la valeur par défaut en appelant directement les plates-formes et en choisissant différentes options. "
Ainsi, par défaut, vous ne pouvez pas régler les hyperparamètres dans la plateforme Model Screening (peut-être par JSL), et ce n'est pas l'utilisation de cette plateforme. Model Screening est AutoML, dont l'objectif est d'adapter rapidement un grand nombre de types très différents de modèles d'apprentissage automatique, afin de mieux comprendre quel(s) type(s) de modèles semblent correspondre correctement aux données. Une fois cette phase d'exploration effectuée, vous pouvez utiliser les plateformes du modèle correspondant pour ajuster les hyperparamètres avec des tables de conception de réglage et éventuellement améliorer encore les performances de votre modèle.
Notez que les algorithmes de Machine Learning ont une sensibilité/robustesse variable concernant les configurations d'hyperparamètres : par exemple, Random Forests est l'un des algorithmes de ML les plus robustes, où les hyperparamètres ont peu d'influence sur ses performances. Voir [1802.09596] Tunabilité : importance des hyperparamètres des algorithmes d'apprentissage automatique (arxiv.org)
Techniquement, vous pourrez peut-être faire ce que vous comptez faire, mais plusieurs avertissements sont à prendre en compte :
- Vous devrez peut-être utiliser la validation croisée imbriquée (si vous utilisez déjà la validation croisée) ou la validation croisée sur votre ensemble d'entraînement (et utiliser l'ensemble de validation pour comparer les performances des modèles) si vous souhaitez ajuster plusieurs modèles et les ajuster. Le fractionnement des données ajouté est là pour garantir que vous ne surajustez pas l'optimisation des hyperparamètres et qu'une partie de vos données peut toujours être utilisée pour effectuer une comparaison et une sélection d'algorithmes de manière équitable et "aussi impartiale que possible".
- Un problème possible avec cette plateforme de Model Screening est que l’option de validation croisée est aléatoire par défaut. En fonction de votre ensemble de données et des distributions de vos caractéristiques/entrées, cela peut ne pas être un choix judicieux et ne fournirait pas une évaluation équitable ni la représentativité de votre ensemble de données. Une solution de contournement pourrait être de créer une colonne de validation de formule stratifiée (plis en K) et de l'utiliser dans le panneau de validation de la sélection du modèle : Lancez la plateforme Make Validation Column (jmp.com)
- Si vous voulez vraiment essayer de régler plusieurs modèles avec cette plate-forme ou n'importe quelle plate-forme AutoML, pensez au nombre de modèles qui doivent être ajustés ainsi qu'au temps et aux calculs nécessaires : vous devrez ajuster chaque type de modèle sélectionné fois KxK (validation croisée imbriquée avec K = nombre de plis externes pour la validation du modèle, K' = nombre de plis internes pour le réglage des hyperparamètres). En fonction de votre ensemble de données, de sa dimensionnalité et de sa complexité, cette approche « par force brute » peut ne pas être raisonnable et réalisable.

Plus de ressources sur la validation croisée imbriquée :
https://inria.github.io/scikit-learn-mooc/python_scripts/cross_validation_nested.html
https://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html
https://medium.com/@cd_24/a-guide-to-nested-cross-validation-with-code-step-by-step-6a8ad06d5af2#:~:text=Nested%20cross%2Dvalidation%20is%20a, inner%20loop%20for%20hyperparameter%20tuning.
Mon conseil serait de procéder de manière séquentielle et d’utiliser la plateforme pour ce qu’elle fait de mieux, en comparant des algorithmes très divers et en sélectionnant les plus prometteurs. Ensuite, vous pouvez optimiser les hyperparamètres sur les (quelques) modèles qui semblent les plus performants afin d'améliorer un peu les performances. Soyez prudent dans ce processus pour éviter les fuites de données, n'utilisez donc jamais votre ensemble de test jusqu'à ce qu'un modèle final soit choisi et optimisé par exemple (ou vous pouvez vous attendre à des résultats optimistes sur votre ensemble de test et à de mauvaises surprises lorsque l'algorithme sera utilisé sur de nouvelles données) .
Ce processus me semble plus logique que l'utilisation d'une approche par force brute, car l'optimisation des hyperparamètres ne fera pas « comme par magie » à un algorithme un apprentissage bien meilleur qu'un algorithme/une méthode plus appropriée.
J'espère que cette réponse (même si ce n'est pas directement ce à quoi vous vous attendez) vous aidera,
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningBonjour Victor_G,
Merci pour votre réponse qui m'inspire beaucoup. Je peux également essayer cette approche, d'abord avec la plateforme Model Screening puis l'algorithme approprié.
Afin d'éviter le surajustement, la validation croisée K-fold est un bon moyen pour les petites données.Cependant, certaines plates-formes d'algorithmes (pas Model Screening) ne prennent pas en charge la validation croisée K-fold, telles que Bootstrap Forest, Boosted Tree et Baive Bayes. Bien sûr,La colonne de validation de formule stratifiée (plis en K) ne rentre pas. Ainsi, uneAprès avoir sélectionné l'algorithme le plus prometteur dans la plate-forme de filtrage de modèles et l'optimisation des hyperparamètres, pouvez-vous partager votre expérience sur la façon de mieux entraîner un modèle lorsqu'il s'agit de petites données ?
Enfin, après avoir cliqué sur le bouton « Exécuter la sélection », j'ai découvert que chaque algorithme de la plate-forme Model Screening avec validation croisée K-fold peutgénérer automatiquement unPli de validation. Alors, puis-je utiliser ce Validation Fold dans le même algorithme avec le meilleur hyperparamètre pour éviter le surajustement ?
Hâte d'avoir de vos nouvelles.
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningSalut @Wang123 ,
Heureux d'apprendre que ma réponse a été utile.
Pour utiliser avec succès le Machine Learning, vous devez mettre en place une stratégie et un cadre pour votre projet de Machine Learning avant de commencer toute analyse. La plupart du temps, les projets de Machine Learning peuvent échouer parce que le point de départ (considérations sur la collecte de données) ou la phase finale (conditions de test et suivi) ne sont pas bien pris en compte et définis :
- Point de départ : Réfléchissez à la manière dont vous avez collecté vos données : Dans quelle mesure votre ensemble de données est-il représentatif de la tâche que vous souhaitez effectuer ? Dans quel contexte les données ont-elles été collectées : dans des études observationnelles ou dans des expérimentations contrôlées comme le DoE ? L'échantillonnage des données et les distributions des caractéristiques/variables sont-ils similaires à ce qui se produira dans l'environnement du modèle (par exemple plages/niveaux de variables, déséquilibre ou équilibre entre classes ou valeurs, distributions de réponses, performances similaires des équipements de mesure, incertitude dans les mesures, ...) ?
Ces questions ne sont que quelques exemples de ce que vous devez prendre en compte et définir lorsque vous utilisez des données pour le Machine Learning et peuvent vous aider à gérer vos attentes.
- Phase finale : Vous devez savoir comment vous allez tester votre modèle final. Pouvez-vous déjà diviser votre jeu de données et en conserver une petite partie à des fins de tests, ou envisagez-vous d'acquérir de nouvelles données pour tester et suivre les performances de votre modèle ?
Voici quelques autres recommandations et conseils liés à vos questions, ainsi que des commentaires supplémentaires :
- Pour éviter tout malentendu, il est important de savoir quelle est l'utilité et les besoins entre chaque set :
- Set d'entraînement : Utilisé pour l'entraînement proprement dit du ou des modèles,
- Ensemble de validation : Utilisé pour l'optimisation du modèle (réglage fin des hyperparamètres, sélection de fonctionnalités/seuil, ... par exemple) et la sélection du modèle,
- Ensemble de test : utilisé pour la généralisation et l'évaluation prédictive des performances du modèle sélectionné sur des données nouvelles/invisibles. A ce stade vous ne devriez pas avoir plusieurs modèles en compétition.
- Dans le cas d'un petit ensemble de données, il existe plusieurs options pour réaliser la validation des modèles (comparaison et sélection des modèles) :
- Si vous avez affaire à de petits ensembles de données, choisissez des algorithmes simples. Généralement, plus le nombre d'(hyper)paramètres dans le modèle est élevé, plus votre ensemble de données d'entraînement doit être volumineux, car vous aurez besoin de plus de données pour estimer précisément chacun des (hyper)paramètres du modèle. Je préfère choisir des algorithmes robustes lorsque je traite de petits ensembles de données, tels que les forêts aléatoires, les machines à vecteurs de support et la régression/classification généralisée.
Quelques articles LinkedIn que j'ai créés à ce sujet pour plus d'explications :- Forêts aléatoires
- SVM
Ces deux algorithmes ont soit peu d'hyperparamètres à régler, des performances robustes au réglage des hyperparamètres (voir : https://arxiv.org/abs/1802.09596 mentionné ci-dessus), soit ont des spécificités d'entraînement qui les aident à éviter le surajustement et à réduire la variance de prédiction (les échantillons bootstrap partie dans Random Forest par exemple).
Je n'utiliserais pas d'arbre boosté ou d'algorithmes boostés, car leur objectif est de réduire autant que possible les biais (erreur systématique) en corrigeant séquentiellement les erreurs précédentes. Cela en fait des algorithmes de prédiction très efficaces, mais ils sont très sensibles et influencés par l’ensemble d’apprentissage, avec de possibles performances de généralisation médiocres et une variance élevée.
Plus généralement, il existe deux manières de traiter les algorithmes ML :
- Soit la taille de votre ensemble de données, les contraintes et de nombreux autres critères de sélection réduisent le nombre de modèles et de possibilités, et vous essayez simplement quelques modèles pour sélectionner le plus prometteur. Voici un enregistrement d'une présentation que j'ai donnée cette année, avec un mélange Space-Filling DoE et l'utilisation du Machine Learning : Synergie entre la conception d'expériences et le Machine Learning pour un domaine E amélioré... - Communauté d'utilisateurs JMP Si vous regardez le modèle choix, vous avez peut-être quelques idées sur les critères de sélection de votre propre projet.
- Vous n'avez aucune idée du modèle qui pourrait être le plus performant et vous souhaiteriez faire un premier test de modélisation exploratoire/compétition entre algorithmes. Dans ce cas, vous pouvez essayer d'utiliser un sous-ensemble de vos données (60-80 %) pour entraîner les modèles et les comparer ou si votre ensemble de données est très petit, l'utiliser entièrement avec validation croisée pour faire cette première partie exploratoire. Une fois que vous avez identifié des algorithmes prometteurs, essayez d'utiliser des plates-formes de modèles individuels avec une stratégie de validation claire (validation croisée K-folds stratifiée avec graine fixe pour la reproductibilité par exemple).
En guise de dernière remarque sur la validation croisée et la manière dont les résultats sont affichés, il peut y avoir plusieurs avertissements :
- Les résultats seront affichés pour chaque pli. N'exécutez pas un modèle entraîné et validé sur un pli spécifique, cela serait considéré comme de la « triche », car vous sélectionnez le meilleur fractionnement des données pour améliorer les performances du modèle, ce qui biaise les performances globales que vous attendez d'avoir sur de nouvelles données/tests. ensemble.
- La validation croisée K-folds a un nom trompeur, car il ne s'agit pas à proprement parler d'une méthode de validation, mais plutôt d'un « test de robustesse » pour voir comment un modèle se comporte avec différents partitionnements de données. Voir : MFML 065 - Comprendre la validation croisée k-fold (youtube.com)
Ainsi, l'information importante dans cette étape n'est pas les performances individuelles du modèle sur chaque pli, mais la régularité et la similitude des performances (performance moyenne et écart type sur tous les plis). Si vous constatez un écart/une variance élevée dans le résultat, cela peut indiquer que le modèle n'est peut-être pas adapté à votre tâche et/ou que vos données comportent des points individuels singuliers (à vérifier), ce qui confond le modèle et l'empêche de généraliser/trouver des modèles.
- Enfin, une fois la validation croisée effectuée, il n’y a pas de consensus sur ce qu’il faut faire des résultats. Certains recyclent le modèle sélectionné sur l'ensemble des données, d'autres assemblent les modèles individuels entraînés sur chaque pli, ou empilent les prédictions... Voici un lien sur cette phase de déploiement Comment passer de l'évaluation au modèle final (substack.com)
Choisissez l'option qui vous convient le mieux.
Vous trouverez peut-être également des discussions et réponses complémentaires sur ce post : VALIDATION CROISÉE - METHODE COLONNE DE VALIDATION
Désolé pour la longueur, j'espère qu'il y aura quelque chose pour vous dans cette grande réponse !:)
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningBonjour Victor_G,
Merci pour votre aide. Soit la plate-forme Model Screening avec fonction de réglage des hyperparamètres, soit toutes les plates-formes de modèles individuelles avec fonction K-fold peuvent facilement résoudre mon problème. Dommage que les deux plateformes manquent de certaines fonctionnalités.
Après réflexion, j'aimerais également demander si les étapes suivantes sont appropriées :
(1) échantillonnage stratifié avec 80 % de formation et 20 % d'ensemble de tests.
(2) Dans l'ensemble de formation (80 %), j'ai formé plusieurs algorithmes d'apprentissage automatique avec une validation croisée K-folddans la plateforme de sélection de modèles. Bien entendu, cette étape utilise les hyperparamètres par défaut. Après comparaison, j'ai trouvé qu'une partie de l'algorithme était optimale, comme Bootstrap Forest.
(3) Ensuite, j'ai clarifié les hyperparamètres optimaux de Bootstrap Forest via la Tuning Design Table.
(4) Dans l'ensemble d'entraînement (80 %), j'ai réaménagé l'algorithme Bootstrap Forest avec des hyperparamètres optimaux. Bien sûr, je peux également adapter d’autres algorithmes.
(5) Dans l'ensemble de tests (20 %), j'ai en outre évalué les performances du modèle de Bootstrap Forest et d'autres algorithmes.
Les étapes ci-dessus sont-elles appropriées dans JMP?
À l'étape 2, puis-je simplement rapporter les résultats des comparaisons de modèles (résultats de la validation croisée K-fold) avec les hyperparamètres par défaut dans l'article ? Bien sûr, nous savons que de nombreux articles commencent par l’étape 3 puis par l’étape 2.rapporter les résultats des comparaisons de modèles avec des hyperparamètres optimaux.
À l'étape 4, je n'ai mis en place aucune méthode de validation croisée, est-ce correct ? Ou existe-t-il un autre moyen ?
Hâte d'avoir de vos nouvelles.
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningBonjour Victor_G,
Votre réponse est tellement significative. Je sais comment créer une colonne de validation K-Folds. Pour autant que je sache, certaines plates-formes d'algorithmes ne prennent pas en charge la validation croisée K-fold, telles que Bootstrap Forest, Boosted Tree et Baive Bayes. Ceci est disponible dans l'aide JMP à l'adresse https://www.jmp.com/support/help/en/18.0/index.shtml#page/jmp/kfold-and-holdback-validation.shtml . Dans ce cas, je dois diviser nos petites données en un ensemble de formation, de validation et de test. Existe-t-il un moyen d'utiliser la validation croisée K-folds dans ces plates-formes d'algorithmes (Bootstrap Forest, Boosted Tree et Baive Bayes) ?
Comme vous l'avez dit "Les résultats seront affichés pour chaque pli. N'exécutez pas un modèle formé et validé sur un pli spécifique, cela serait considéré comme de la triche...", et un autre a dit "Enfin, une fois la validation croisée effectuée, il y a "Il n'y a pas de consensus sur ce qu'il faut faire avec les résultats. Certains recyclent le modèle sélectionné sur l'ensemble des données, d'autres rassemblent les modèles individuels formés sur chaque pli". Je ne sais pas quelle méthode est la plus appropriée, une formation dans un domaine spécifique ou un ensemble de formation complet ?
Hâte d'avoir de vos nouvelles.
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningSalut @Wang123 ,
Désolé, vous avez raison à propos de l'utilisation restreinte de la colonne de validation croisée K-folds dans certaines plateformes de modélisation.
Une solution de contournement possible consiste à créer une formule de colonne de validation commune (échantillonnage stratifié avec 80 % de formation et 20 % de validation), à l'utiliser dans la plate-forme de modèle et à utiliser la fonction « Simuler » pour générer de nombreux échantillons et résultats de validation croisée afin d'évaluer la robustesse. J'ai décrit la méthodologie dans un autre article : Résolu : Re : Comment puis-je automatiser et résumer de nombreuses validations répétées dans un seul onglet de sortie... - Communauté d'utilisateurs JMP
Concernant votre deuxième question, mon opinion personnelle serait d'empiler les prédictions de modèles individuels, afin que chaque modèle individuel ait la même contribution à la prédiction finale. Cela semble être l'approche la plus neutre, et permettrait la réduction des biais et (principalement) de la variance (approche « sagesse de la foule »), ainsi que la prévention du surajustement. Cela pourrait également être une bonne opportunité d’estimer les intervalles de prévision de l’incertitude grâce aux contributions de modèles individuels.
L'assemblage serait trop complexe pour un petit ensemble de données, car la combinaison des modèles individuels nécessiterait une validation supplémentaire pour garantir que votre modèle d'ensemble final n'est pas surajusté et capable de se généraliser.
En fonction de votre connaissance approfondie des algorithmes de ML, l'option d'utiliser l'ensemble de données et d'entraîner le modèle final dessus pourrait également être utilisée, et de comparer les résultats du modèle à validation croisée avec le modèle « non validé » pour repérer tout signe. de surapprentissage.
Encore une fois, l'utilisation de modèles simples et de techniques de régularisation/restriction aident grandement à prévenir le surajustement.
J'espère que cette réponse vous aidera,
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningSalut @Wang123 ,
Je trouve les étapes 1) et 2) appropriées.
Les étapes 3) et 4) pourraient être combinées pour trouver les hyperparamètres optimaux de plusieurs modèles, les évaluer, les comparer et sélectionner un modèle final. Vous avez également besoin d'une stratégie de validation pour cette étape, car optimiser les hyperparamètres sans aucune validation conduirait à un surajustement. En fonction des résultats de cette optimisation d'hyperparamètres sur le(s) jeu(s) de validation (K-folds ?), vous sélectionnez un algorithme qui vous semble le plus approprié.
En fonction de votre stratégie de validation, soit vous conservez l'algorithme formé tel quel (si vous avez utilisé un ensemble de validation pour comparer et sélectionner un modèle), soit vous pouvez effectuer un empilage de modèles si vous avez utilisé la validation croisée K-folds (pour obtenir la moyenne). prédiction à partir des modèles individuels).
À l'étape 5, vous évaluez les performances de votre modèle final sur des données nouvelles et invisibles. Il ne devrait y avoir qu’un seul algorithme/modèle à ce stade. La validation sert à comparer et à sélectionner un modèle, pas la phase de test.
Concernant vos questions :
« À l'étape 2, puis-je simplement rapporter les résultats des comparaisons de modèles (résultats de la validation croisée K-fold) avec les hyperparamètres par défaut dans l'article ? : Cela dépend de ce que vous voulez montrer/démontrer. Si vous souhaitez expliquer pourquoi vous avez choisi certains modèles spécifiques, vous pouvez utiliser les résultats de l'étape 2. Il est plus logique de comparer les résultats des étapes 2 et 3 sur les algorithmes sélectionnés si vous souhaitez souligner l'importance et l'avantage du réglage des hyperparamètres. (ce qui n'est pas toujours important pour certains modèles robustes comme Random Forests).
« À l'étape 4, je n'ai mis en place aucune méthode de validation croisée, est-ce correct ? Ou existe-t-il un autre moyen ? Je ne recommanderais pas de réadapter l'ensemble de l'entraînement, à moins que vous n'utilisiez des algorithmes robustes et que vous disposiez de métriques pour garantir que vous ne faites pas de surajustement. Les forêts aléatoires sont généralement de bons exemples d'algorithmes robustes et disposent d'une validation interne (pour une réponse continue) via des échantillons Out-Of-Bag : https://www.jmp.com/support/help/en/17.2/#page/jmp/overview -de-la-plateforme-forestière-bootstrap.shtml#
La comparaison des métriques des échantillons In-Bag et Out-Of-Bag peut vous aider à évaluer si votre Random Forest peut présenter un surapprentissage.
Si vous utilisez un algorithme différent et/ou n'êtes pas sûr de sa robustesse, conservez simplement votre modèle optimisé (et validé !) de l'étape précédente (ou les modèles empilés si vous utilisiez la validation croisée K-folds).
J'espère que cette dernière réponse vous aidera,
PS : N'oubliez pas d'« Accepter comme solution » la ou les réponses si elles vous ont été utiles, c'est un bon moyen pour les autres utilisateurs JMP d'accéder rapidement à la solution sans tout lire.
Re : Comment modifier les hyperparamètres dans la plateforme Model ScreeningBonjour Victor_G,
Merci pour votre précieux point de vue! Ceux-ci me sont très utiles.