VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONLors de l'utilisation de la méthode de la colonne de validation pour la validation croisée, nous divisons l'ensemble de données en ensembles d'apprentissage, de validation et de test. Ce rapport de partage est spécifié par l'utilisateur. Existe-t-il une directive/référence pour décider du ratio de partage (par exemple 60:20:20 / 70:15:15 / 50:25:25 / 80 :10:10). Est-il choisi également en fonction du nombre total d'observations -N ?
Fusion et nettoyage des donnéesModélisation prédictive et apprentissage automatiqueRe : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONPour votre question initiale, non, il n'y a pas de règles spécifiques sur la quantité de données à omettre. Dans les cours d'analyse de JMP Education, nous vous conseillons de conserver autant de données que vous le souhaitez, avec au moins 20 % de retenues. Si vous pensez que l'ensemble d'apprentissage est trop petit pour contenir autant de lignes, envisagez la validation croisée k-fold. Combien de lignes êtes-vous prêt à sacrifier à la validation ? Utilisez k = n / autant de lignes. Si k < 5 en utilisant cette formule, envisagez une validation croisée sans un.
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONJe t'en prie @sreekumarp .
Si vous considérez une ou plusieurs de ces réponses comme solution(s), n'hésitez pas à les marquer comme solution(s), pour aider les visiteurs de la communauté JMP à trouver plus facilement les réponses qu'ils recherchent.
Si vous avez d'autres questions ou un cas concret sur lequel vous souhaiteriez des conseils, n'hésitez pas à répondre sur ce sujet ou à en créer un nouveau.
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONMerci pour votre contribution à la colonne de validation croisée.
Sreekumar Punnapilly
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONMerci d'avoir fourni une contribution détaillée sur le fractionnement des ensembles de données dans l'apprentissage automatique. Je suis sûr que cela m'aidera dans mes recherches.
Sreekumar Punnapilly
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONSalut @Victor_G ,
Oui, je pense qu'il pourrait y avoir une sorte de malentendu. Peut-être devrais-je dire qu'il existe un ensemble de données retenues plutôt qu'un ensemble de données de test. L'ensemble de données retenu est des données qui n'ont jamais été utilisées dans la formation, la validation ou la sélection d'un modèle à partir d'un algorithme donné (ensemble de test). J'utilise cet ensemble de retenue pour comparer les différents algorithmes les uns par rapport aux autres afin de voir quel algorithme fonctionne le mieux. La plate-forme de comparaison de modèles de JMP est très utile pour comparer les différents algorithmes les uns par rapport aux autres à l'aide d'un ensemble retenu. Cela permet une comparaison impartiale et sans fuite des différents algorithmes. Il devient donc une sorte d'ensemble de données "test" dans le sens où l'ensemble de données retenu est utilisé pour voir lequel des différents algorithmes fonctionne le mieux sur cet ensemble de données "pures".
C'est le seul moyen que je connaisse pour comparer différents algorithmes entre eux dans JMP. Ce que je veux dire, c'est que c'est la seule façon pour JMP de comparer un algorithme de réseau neuronal à un algorithme XGBoost, par exemple. Je n'utiliserais jamais, ni ne recommanderais, l'utilisation de l'ensemble de données retenues pour comparer différents modèles à partir d'une plate-forme. Je ne comparerais pas les 20 modèles différents réglés au sein de la plate-forme de forêt bootstrap les uns contre les autres en utilisant l'ensemble de retenue, ce serait le but de l'ensemble de données de test.
Donc, désolé s'il y a eu un malentendu / confusion. Je vais essayer de m'y référer comme l'ensemble de retenue à partir de maintenant pour éviter toute confusion avec l'ensemble de test.
Merci pour la discussion!,
DS
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONBon point sur l'échantillonnage stratifié @SDF1 !
Je suis désolé, nous n'utilisons pas le même nom ou il y a un malentendu.
Si vous apportez plusieurs modèles dans l'ensemble de test pour les comparer (et en sélectionner un), c'est un problème et non le but de cet ensemble, peu importe les plateformes ou les modèles utilisés. La comparaison des modèles doit être effectuée sur le jeu de validation (pour garder un jeu de test clair et "pur" sans aucune fuite d'informations ni biais), d'où ma réponse précédente avec quelques ressources sur ce sujet.
Voir l'aide de JMP en mettant également l'accent sur les différences entre les ensembles :"L'ensemble de test vérifie la capacité prédictive du modèle après un modèle a été choisi." : https://www.jmp.com/support/help/en/17.1/index.shtml#page/jmp/overview-of-the-make-validation-column-platform.shtml#ww269465
C'est aussi une raison de l'importance de bien définir les différents ensembles et soit de les fixer soit de la méthode, pour bien évaluer différents modèles sur le même ensemble de validation (ou la même méthode).
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONSalut @Victor_G ,
Désolé si ce n'était pas clair, mais nous parlons en fait de la même chose. Lorsque j'ai mentionné des modèles auparavant, je parle de la génération de modèles à l'aide de la même configuration de test/validation, mais également sur différentes plates-formes dans JMP. Je ne construis jamais de modèles avec une seule plate-forme à l'esprit, mais génère et ajuste des modèles en utilisant les différentes plates-formes (par exemple, NN, BT, Bootstrap Forest, SVM, KNN et XGBoost) et la validation croisée avec les ensembles de formation et de validation. Ensuite, après avoir généré les différents modèles, je compare leur capacité à prédire sur l'ensemble de données d'exclusion (test), un ensemble de données qu'aucun des modèles n'a vu au cours de leurs étapes de formation et de validation. Parfois, le NN fonctionne mieux, et parfois c'est XGBoost, ou une autre plate-forme.
Dernièrement @sreekumarp , une chose que j'ai oublié de mentionner dans mon post précédent, c'est que cela aide vraiment à stratifier votre colonne de validation croisée en utilisant votre colonne de sortie - la colonne que vous essayez de prédire. Cela permet de conserver une structure de distribution similaire pour vos ensembles de données de formation, de validation et de test. Parfois, cela ne peut pas être fait, en particulier avec des ensembles de données très déséquilibrés, mais si possible, je le recommande vivement. Sinon, les données sont placées de manière aléatoire dans chaque type d'ensemble de données, ce qui peut conduire à une colonne de validation mal divisée, ce qui peut souvent conduire à des modèles médiocres.
DS
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONSalut @SDF1 ,
Une correction mineure à l'excellent ajout que vous avez fourni : l'ensemble de validation est l'ensemble utilisé pour la comparaison et la sélection de modèles, pas l'ensemble de test (mais parfois les noms de test et de validation sont utilisés alternativement ou de manière confuse).
Ces deux ensembles ont des finalités très différentes :
- L'ensemble de test est la partie non utilisée des données, non utilisée avant avoir sélectionné un modèle, afin de fournir une estimation impartiale de la généralisation du modèle et des performances prédictives.
- L'ensemble de validation est une partie des données utilisées pour le réglage fin du modèle et la comparaison des modèles, afin de sélectionner le meilleur modèle candidat.
Une explication est donnée ici : machine learning - Puis-je utiliser l'ensemble de données de test pour sélectionner un modèle ? - Échange de pile de science des données
Deux explications à cette différence d'utilisation :
- Pratique : dans les compétitions de science des données, vous n'avez pas accès au jeu de données de test, donc pour créer et sélectionner l'algorithme le plus performant, vous devez diviser vos données en jeu d'entraînement et de validation, et "espérer" avoir de bonnes performances ( et généralisation) sur l'ensemble de test invisible.
- Théorique : si vous utilisez un jeu de test pour comparer des modèles, vous faites en fait une fuite de données/d'informations, car vous pouvez améliorer vos résultats sur le jeu de test au fil du temps en sélectionnant l'algorithme le plus performant sur le jeu de test (et ensuite, peut-être continuer à l'affiner en fonction des performances sur les données de test ou essayer d'autres modèles...). Ainsi, votre jeu de test n'est plus impartial, car le choix de l'algorithme (et peut-être d'autres actions effectuées après la sélection) sera fait sur celui-ci.
L'ensemble de test est souvent la dernière étape entre la création/le développement du modèle et son déploiement en production ou en publication, de sorte que l'évaluation finale doit être aussi juste et impartiale que possible.
Quelques ressources sur les plateaux : Ensembles d'entraînement, de test et de validation (mlu-explain.github.io)
MFML 071 - Quelle est la différence entre test et validation ? - Youtube
J'espère que cela pourra éviter toute confusion dans la dénomination et l'utilisation des ensembles,
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONSalut @sreekumarp ,
En plus de quoi @Victor_G a écrit, je vous recommande également fortement de séparer votre ensemble de données de test et de créer une nouvelle table de données avec. De cette façon, lorsque vous formez et validez vos modèles, vous pouvez les comparer sur la table de données d'exclusion de test pour voir quel modèle fonctionne le mieux. Cela réduit tout risque que l'ensemble de données de test puisse être utilisé accidentellement dans les ensembles d'apprentissage ou de validation.
Il existe également d'autres façons d'utiliser des données simulées pour former vos modèles, puis de tester les modèles sur les données réelles. J'utilise parfois cette approche lorsque l'ensemble de données d'origine est petit et que je dois conserver la structure de corrélation des entrées.
Bonne chance!,
DS
Re : VALIDATION CROISÉE - MÉTHODE DE LA COLONNE DE VALIDATIONSalut @sreekumarp ,
Question intéressante, et j'ai bien peur de ne pas avoir de réponse définitive à votre question, car cela dépend de l'ensemble de données, des types de modèles à considérer et des pratiques/habitudes de l'analyste (ou de la personne effectuant l'analyse).
Tout d'abord, il est important de savoir quels sont les usages et les besoins entre chaque sets :
- Ensemble 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 (ajustement fin des hyperparamètres, sélection des fonctionnalités/seuils, ... par exemple) et la sélection du modèle,
- Ensemble de test : utilisé pour la généralisation et l'évaluation des performances prédictives du modèle sélectionné sur des données nouvelles/invisibles.
Il existe plusieurs choix/méthodes pour découper vos données en fonction de vos objectifs et de la taille de votre jeu de données :
- Entraînement/validation/ensembles de test : Ensembles fixes pour entraîner, optimiser et évaluer les performances des modèles. Recommandé pour les grands ensembles de données.
- Validation croisée K-folds : Divisez le jeu de données en K plis. Le modèle est formé K fois, et chaque pli est utilisé K-1 fois pour la formation et 1 fois pour la validation. Il permet d'évaluer la robustesse du modèle, car les performances doivent être équivalentes dans tous les plis.
- Validation croisée Leave-One-Out : Cas extrême de la validation croisée K-fold, où K = N (nombre d'observations). Il est utilisé lorsque vous avez un petit ensemble de données et que vous souhaitez évaluer si votre modèle est robuste.
- Autovalidation/Self Validating Ensemble Model : Au lieu de séparer certaines observations dans différents ensembles, vous associez chaque observation à un poids pour l'apprentissage et la validation (un poids plus important dans l'apprentissage induit un poids inférieur dans la validation, ce qui signifie que cette observation sera principalement utilisée pour l'apprentissage et moins pour la validation), puis répétez cette procédure en faisant varier le poids. Il est utilisé pour les très petits ensembles de données et/ou les ensembles de données où vous ne pouvez pas séparer indépendamment certaines observations entre différents ensembles : par exemple dans Design of Experiments, l'ensemble d'expériences à faire peut être basé sur un modèle, et si c'est le cas, vous ne peut pas diviser indépendamment certaines exécutions entre la formation et la validation, car cela biaisera le modèle de manière négative ; les exécutions nécessaires pour estimer les paramètres ne seront pas disponibles, ce qui réduira considérablement les performances du modèle.
Toutes ces approches sont supportées par JMP : Lancer la plate-forme Make Validation Column (jmp.com)
En règle générale, un ratio 70/20/10 est souvent utilisé.Vous pouvez lire le journal " Rapport optimal pour le fractionnement des données " ici pour avoir plus de détails.En règle générale, plus le nombre de paramètres dans le modèle est élevé, plus votre ensemble de données d'entraînement sera volumineux, car vous aurez besoin de plus de données pour estimer précisément chacun des paramètres du modèle. La complexité/le type de modèle est donc également à prendre en compte. lors de la création d'ensembles de formation/validation/test.
Si vous avez un cas d'utilisation plus précis, cela pourrait peut-être être plus utile et moins général pour vous fournir des indications ?
Je vous recommande également vivement la playlist "Making Friends with Machine Learning" de Cassie Kozyrkov pour en savoir plus sur l'entraînement, la validation et le test des modèles : Se faire des amis grâce au machine learning – YouTube
En espérant que cette première réponse vous aidera,
Re : VALIDATION CROISÉE – MÉTHODE DE VALIDATION PAR COLONNESMerci.
Il y a en fait deux points à clarifier pour la validation croisée K-fold (CV) et la validation leave-one-out (LOO) utilisant la régression de routine dans JMP Pro.
Les deux méthodes sont directement disponibles dans la partie PLSR (régression par les moindres carrés partiels), mais il subsiste une certaine incertitude quant à leur application et à la visualisation des métriques lors de l'utilisation de la validation croisée (CV) et/ou de la validation croisée (LOO) pour une régression simple. Par exemple, j'analyse des spectres et la PCR et la PLSR sont couramment utilisées dans ce processus chimiométrique.

J'ai rencontré un problème un peu étrange. Après avoir créé une colonne de validation croisée à 4 plis (ci-dessus, 4 plis sur 72 observations) et exécuté une PCR (réponse numérique et composantes principales comme prédicteurs), j'obtiens le message d'erreur suivant :
Par conséquent, aucune véritable CV n'est effectuée, n'est-ce pas ?
Le deuxième point : comment construire une validation LOO (une colonne ?) pour la PCR ?
En résumé, pourriez-vous m'indiquer la marche à suivre pour réaliser correctement une validation croisée et une validation croisée leave-one-out pour une régression classique et obtenir des indicateurs d'ajustement pertinents ? C'est un point crucial qui reste encore flou pour moi.
Merci beaucoup, chers collègues !
Re : VALIDATION CROISÉE – MÉTHODE DE VALIDATION PAR COLONNESSalut @Nazarkovsky ,
Il aurait probablement été plus simple de créer une nouvelle discussion plutôt que de répondre à cette ancienne, car cela aurait offert une meilleure visibilité et aurait permis à d'autres utilisateurs de JMP de participer à la discussion concernant votre question.
Oui, il arrive que des erreurs se produisent avec les plateformes de modélisation JMP lors de l'utilisation d'une colonne de validation croisée K-Folds fixe, car JMP reconnaît généralement 2 niveaux (entraînement et validation ou test) ou 3 niveaux (entraînement, validation et test) à partir de la colonne de validation. Dans le message d'erreur que vous recevez, aucune validation croisée n'est effectuée ; un modèle linéaire est ajusté à l'ensemble de vos données.
Puisque vous utilisez un modèle linéaire très simple, vous pouvez essayer d'utiliser la plateforme Sélection de modèles (qui inclut également PLS si vous souhaitez comparer les résultats des différents modèles), en spécifiant vos X, votre réponse Y, votre colonne de validation croisée à 4 plis (ou en effectuant la validation croisée directement depuis la plateforme), et le type de modèle que vous souhaitez ajuster (options de modèles de régression linéaire + options de modélisation) :

Ou directement avec l'option de validation croisée K-folds de la plateforme, vous pouvez obtenir ces résultats :

Pour effectuer une validation croisée Leave-One-Out, spécifiez simplement K=n (n étant le nombre d'itérations dans votre tableau). Si vous souhaitez accéder aux résultats de chaque pli, vous pouvez adapter la solution proposée ici à votre plateforme de modélisation : Accès aux métriques hors pli pour la validation croisée K-Fold
Enfin, je constate au moins un problème majeur dans votre flux de travail de modélisation, susceptible d'entraîner une fuite de données : vous devez également appliquer la validation croisée ou votre stratégie de division/validation à votre analyse en composantes principales (ACP). Sans cela, l'ACP analysera l'ensemble des données et apprendra les corrélations entre les facteurs à partir de toutes les données. Le modèle linéaire que vous ajusterez ensuite (et évaluerez grâce à la validation croisée) bénéficiera alors de l'information complète du jeu de données, et non de celle de seulement 3 des 4 sous-ensembles. Étant donné que JMP n'a pas encore implémenté de rôle de validation pour l'ACP, j'ai ajouté cette suggestion à la liste de souhaits, afin de prévenir les fuites de données et les erreurs potentielles dans les flux de travail de modélisation comme le vôtre : Ajouter une option de rôle de validation à la plateforme d'analyse en composantes principales. En résumé, vous devriez :
- Définir et appliquer une stratégie de validation (CV, LOO ou division standard train/validation ou train/validation/test).
- Prétraiter les données uniquement sur l'ensemble d'entraînement (ou prétraiter les données plusieurs fois en fonction du nombre de plis utilisés).
- Ajustez un modèle en utilisant la même stratégie de validation avec les données prétraitées de l'ensemble d'entraînement (ou des plis d'entraînement correspondants).
J'espère que cette réponse vous aidera.
Re : VALIDATION CROISÉE – MÉTHODE DE VALIDATION PAR COLONNESQuoi qu'il en soit, la section consacrée à la validation croisée k-fold dans JMP reste insuffisante. Je m'étonne que cela ne préoccupe pas les développeurs, car cette méthode de validation est un outil essentiel pour l'évaluation préliminaire de tout modèle, notamment avec un faible nombre de données. De plus, même en configurant correctement la colonne de validation croisée k-fold, il est impossible de configurer une validation croisée à 3 plis ; la valeur minimale requise est de 4.
Je n'apprécie pas non plus le rapport de JMP sur les métriques pour la validation croisée, car il n'y a pas d'option/bouton final permettant de créer une colonne « Prédit » après toutes les exécutions, sous forme de résultat moyen, et de la comparer aux valeurs prédites fournies par la régression généralisée ou la PLSR.
Concernant la validation de l'ACP, cette option se trouve dans Unscrambler, un logiciel classique de chimiométrie (analyse multivariée de données chimiques, comme les spectres). La validation est effectuée en fonction du nombre prédéfini de composantes et de la variance expliquée. Pour ce test de fuite, j'utilise Unscrambler.
Il existe ici, dans la Communauté, une série de publications JMP consacrées à l'analyse des spectres, mais elles restent encore peu nombreuses en ce qui concerne la CV et la PCR.
Cependant, en chimiométrie, la SVR (régression à vecteurs de support), la PLSR et la PCR sont toujours appliquées et leurs métriques sont comparées.
Merci pour LOO, ça fonctionne vraiment très bien.
Re : VALIDATION CROISÉE – MÉTHODE DE VALIDATION PAR COLONNESQuoi qu'il en soit, la validation croisée k-fold dans JMP reste perfectible. Je m'étonne que cela ne préoccupe pas les développeurs, car cette méthode de validation est essentielle pour une évaluation préliminaire de tout modèle, surtout avec un faible nombre de données. De plus, même avec une configuration correcte pour la validation croisée k-fold, il est impossible de configurer une validation croisée à 3 plis ; la valeur minimale requise est de 4.
Je n'apprécie pas non plus le rapport de JMP sur les métriques pour la validation croisée, car il n'y a pas d'option/bouton final permettant de créer une colonne « Prédit » après toutes les exécutions, sous forme de résultat moyen, et de la comparer aux valeurs prédites fournies par la régression généralisée ou la PLSR.
Concernant la validation de l'ACP, cette option se trouve dans Unscrambler, un logiciel classique de chimiométrie (analyse multivariée de données chimiques, comme les spectres). La validation est effectuée en fonction du nombre de composantes et de la variance expliquée. Pour ce test de fuite, j'utilise Unscrambler.
Il existe ici, dans la Communauté, une série de publications JMP consacrées à l'analyse des spectres, mais elles restent encore peu nombreuses en ce qui concerne la CV et la PCR.
Cependant, en chimiométrie, la SVR (régression à vecteurs de support), la PLSR et la PCR sont toujours appliquées et leurs métriques sont comparées.
Merci pour LOO, ça fonctionne vraiment très bien.