Message d'erreur pour le réseau neuronal avec des lignes de validation manquantes - Suggérez une solution de contournement ?Bonjour la communauté,
Je teste plusieurs modèles dans le cadre d'une boucle JSL dans JMP 16, en utilisant différentes colonnes de validation pour déterminer l'évolution des valeurs R2 en fonction des données utilisées. Chaque colonne de validation contient un sous-ensemble de données, avec des données manquantes au début et/ou à la fin de la colonne.
D'autres modèles, tels que Bootstrap, fonctionnent bien en ignorant simplement les valeurs manquantes, mais le réseau neuronal continue de générer un message d'erreur (reproduit sur l'ensemble de données d'échantillon JMP, CrimeData).


Je peux contourner le problème en incluant une colonne de filtrage, en définissant toutes les valeurs manquantes à 0 et en ne les exécutant pas. Cependant, cela nécessitera une colonne de filtrage pour chaque colonne de validation (ou la création/suppression dynamique d'une colonne à chaque itération).

Neural(
Y( :Murder Rate ),
X(
:Robbery Rate, :"Agg-Aslt Rate"n, :Burglary Rate, :Larceny Rate,
:MVTheft Rate
),
Validation( :Validation ),
Informative Missing( 0 ),
Fit( NTanH( 3 ) ),
Where( :Filter == 1 )
)
Quelqu'un d'autre a-t-il rencontré ce problème et trouvé une solution ? Merci !
Fusion et nettoyage des donnéesModélisation prédictive et apprentissage automatiqueRe : Message d'erreur pour le réseau de neurones avec des lignes de validation manquantes - Suggestion de solution de contournement ?Salut @c_blanken ,
Il semblerait que votre colonne de validation ne remplisse pas toutes les lignes car vous stratifiez votre colonne de validation sur une ou plusieurs autres colonnes contenant des données manquantes. Je suppose que JMP ne sait pas comment traiter ces lignes dans la colonne de validation car il manque des données.
Prévoyez-vous de modéliser un résultat pour lequel vous avez des données manquantes ? Si ce n'est pas le cas, vous pouvez envisager d'exclure les lignes où vous avez des données manquantes - c'est essentiellement ce que vous faites avec la colonne de filtre, mais en excluant ces lignes, vous n'avez pas besoin d'une nouvelle colonne de filtre pour chaque colonne de validation que vous testez . Vous pouvez également définir facilement l'état de la ligne sur Exclure dans JSL afin qu'il soit automatisé et que vous n'ayez pas à le faire manuellement.
Si vous avez encore besoin de modéliser les données où vous avez des données manquantes, vous pouvez envisager de ne stratifier sur aucune colonne et de générer simplement des colonnes d'apprentissage/validation de manière aléatoire. JMP attribue chaque ligne au jeu de données approprié, même s'il manque des données.
J'espère que cela t'aides!,
DS
Re : Message d'erreur pour le réseau de neurones avec des lignes de validation manquantes - Suggestion de solution de contournement ?Salut @c_blanken ,
Juste pour ajouter quelques commentaires/remarques à la grande réponse de @SDF1 .
- Pourquoi certaines lignes ont-elles des valeurs manquantes concernant la colonne de validation ? Ont-ils été ajoutés après la création de la colonne ?
- Je ne suis pas surpris de voir que la plate-forme "Bootstrap Forest" est capable de traiter les valeurs manquantes dans la colonne de validation, car ce modèle utilise des échantillons bootstrap des données de formation pour s'adapter à de nombreux arbres de décision. Les réseaux de neurones et d'autres méthodes utilisent les données "telles quelles", et vous pouvez donc rencontrer le message d'avertissement que vous recevez.
Au lieu de créer plusieurs colonnes de validation pour évaluer l'influence de la variabilité de l'ensemble d'apprentissage sur les performances du modèle, il pourrait y avoir (au moins) 2 autres options intéressantes pour vous :
1. Créer une "formule" Colonne de validation (jmp.com) au lieu de la colonne de validation "fixe" :

Cette approche a deux avantages :
- Même dans le cas d'une validation stratifiée/regroupement, cela permettra d'ajouter automatiquement une étiquette de formation/validation ou de test dans la colonne de validation pour les nouvelles lignes ajoutées, en fonction de la méthode de stratification/regroupement et du rapport entre ces ensembles que vous avez utilisés.
- Dans la modélisation, vous pouvez également essayer plus facilement différents rééchantillonnages entre les ensembles d'entraînement et de validation, en faisant un clic droit sur les mesures de performance que vous souhaitez évaluer avec différents ensembles d'entraînement et de validation, cliquez sur "Simuler" et ici vous aurez l'option pour activer et désactiver votre colonne de validation :

En faisant cela, vous obtiendrez un tableau de données avec toutes les simulations effectuées sur divers ensembles d'entraînement et de validation, et vous pourrez tracer la variabilité des performances obtenue avec ces simulations (ici pour R² sur l'ensemble de données jouet "Boston Housing" avec Random Forest):

2. Utilisez le Plate-forme de sélection de modèles (jmp.com) plate-forme avec uniquement le modèle que vous souhaitez sélectionner et la méthode de validation que vous souhaitez (K-folds, Nested K-folds, avec possibilité de les répéter, ou colonne de validation), et lancez-la. Vous aurez accès au récapitulatif des résultats, mais aussi aux résultats des plis individuels :

Lors de la sélection par exemple d'un pli pour exécuter le modèle (ici j'ai essayé avec fold3), une nouvelle colonne apparaîtra également dans votre datatable, afin de savoir quelles lignes de ce pli ont été utilisées comme entraînement ou validation (0 : Formation, 1 : Validation) :

Je pense que ces méthodes peuvent vous être utiles, avec moins de travail manuel et une plus grande flexibilité.