Existe-t-il un moyen d'effectuer une validation croisée k-fold avec la plate-forme d'arbre boostée ?
Bien que je comprenne que cela puisse être fait dans le cadre du criblage de modèles, je dois effectuer un hypertune avec le k-fold qui offre les performances maximales. Ainsi, au lieu d'utiliser le criblage de modèles, existe-t-il un moyen d'effectuer une validation croisée k-fold avec une modélisation prédictive à arbre boosté où je peux également hypertune d'autres paramètres ?
Merci d'avoir pris le temps de me répondre.
Nisha
J'essaierais d'utiliser l'application XGBoost si vous souhaitez utiliser K-fold et l'arbre boosté.
Module complémentaire XGBoost pour JMP Pro - Communauté d'utilisateurs JMP
Steve
Salut @NishaKumar2023 ,
Vous pouvez utiliser la validation croisée K-folds lors du réglage de vos hyperparamètres, mais cela ne fonctionne pas exactement comme vous le souhaiteriez. Voici la méthodologie :
- Créez une colonne de validation K-folds (fixe ou une formule en fonction de vos objectifs et de vos besoins de reproductibilité) : Lancez la plateforme Make Validation Column (jmp.com)
Assurez-vous que votre découpage de données en plis est représentatif et équilibré, en utilisant la stratification, ou que vous respectez la contrainte/duplication de vos données en utilisant le regroupement (même ID dans le même pli par exemple).
- Ouvrez ou créez une table de données de réglage pour l'arbre Boosted (ou toute autre plate-forme) que vous souhaitez lancer. J'ai ajouté en copie un exemple pour l'arbre Boosted, mais vous pouvez trouver d'autres tables de réglage fournies par @SDF1 dans cet article : Dysfonctionnement dans Bootstrap Forest avec Tuning Design Table ?
- Lors du lancement de Boosted Tree (ou de toute autre plateforme de modélisation, spécifiez vos entrées, la réponse au modèle et utilisez la colonne de validation K-folds dans le panneau de validation (ici sur le jeu de données Mushroom JMP) :

- Une nouvelle fenêtre s'ouvre, vous devez cocher "Utiliser la table de réglage" puis sélectionner votre table de réglage déjà ouverte :

- Vous aurez alors les résultats fournis par les modèles les mieux réglés :

Notez que cette méthode n'est pas adaptée à la validation croisée K-folds, car l'utilisation de tables de réglage implique une partition de vos données uniquement en 3 ensembles :
- Ensemble d'entraînement : utilisé pour l'entraînement réel du ou des modèles,
- Ensemble de validation : Utilisé pour l'optimisation du modèle (réglage fin des hyperparamètres, sélection de caractéristiques/seuils, ... par exemple) et la sélection du modèle,
- Ensemble de tests : utilisé pour la généralisation et l'évaluation des performances prédictives du modèle sélectionné sur des données nouvelles/inédites.
Ainsi, si vous spécifiez une validation croisée en 5 étapes à l'étape 1, seuls les 3 premiers plis seront utilisés comme ensembles d'entraînement, de validation et de test, et non pas vraiment comme une technique de validation croisée en 5 étapes. Pour effectuer une validation croisée comme vous avez l'intention de le faire, vous auriez besoin d'une validation croisée imbriquée : une validation croisée interne pour ajuster les hyperparamètres, et une validation croisée externe pour évaluer la robustesse des valeurs d'hyperparamètres trouvées, uniquement disponibles dans la plateforme de criblage de modèles et n'acceptant pas les tables de réglage pour le réglage des hyperparamètres (car le but de cette plateforme est de filtrer les algorithmes les plus prometteurs parmi une grande variété de types de modèles, et non de les affiner) :

Autant que je sache, ce n'est pas (directement) possible dans JMP.
Mais vous pouvez toujours utiliser la validation croisée K-folds sur Boosted Tree « par défaut », ou essayer d'utiliser d'autres techniques de validation, en suivant la méthode ci-dessus (mais en créant une colonne de validation de formule normale avec 3 ensembles) et en utilisant la simulation sur le modèle réglé pour évaluer sa robustesse et ses avantages par rapport à un modèle non réglé :

Vous pouvez voir que dans la plupart des cas, les valeurs par défaut des hyperparamètres fonctionnent plutôt bien, et le réglage des hyperparamètres aide plus sur la variabilité des performances (les valeurs de performances comme RASE, R-carré, ... ont des plages plus étroites sur l'algorithme réglé par rapport à celui "par défaut") que sur les performances maximales ou moyennes de l'algorithme.
Vous pouvez consulter un article et une solution similaires ici sur ce sujet pour examiner les techniques de validation et l'utilisation de la simulation : Résolu : Re : Boosted Tree - Tuning TABLE DESIGN - JMP User Community
La validation croisée imbriquée n'est généralement pas la première option que je recommanderais, car elle nécessite beaucoup de calculs, pour affiner l'algorithme indépendamment sur chacun des plis de la boucle interne, puis calculer les performances sur chaque pli de validation de la boucle externe.
La validation croisée K-folds est une technique utile en l'absence de grande quantité de données, mais la validation croisée imbriquée nécessite tout de même une quantité assez importante pour effectuer correctement le découpage des données : par exemple, si vous divisez la boucle interne en 4 folds et la boucle externe en 5 folds, cela nécessite de créer 20 folds/groupes dans votre jeu de données !
Enfin, la validation croisée est davantage une technique de réglage qu'une technique de validation pour évaluer la robustesse d'un modèle, comme le décrit brillamment Cassie Kozyrkov dans cette vidéo : https://youtu.be/zqD0lQy_w40?si=lja79_aik0KO-jbB
J'espère que cette réponse vous aidera,
@shampton82 Merci beaucoup, cela m'a permis de créer la colonne k fold (val) et d'exécuter l'arbre boosté !
Merci beaucoup @Victor_G ! J'ai trouvé votre explication très utile, en particulier pour l'étape suivante de l'hypertuning, j'ai pu créer la colonne k fold val via xgboost et exécuter l'arbre boosté, mais je vais vous donner des instructions et des ressources pour vous aider pour les prochaines étapes. Merci !