prétraitement des donnéesBonjour
Je souhaite appliquer des méthodes non paramétriques telles que l'arbre de décision, la forêt aléatoire, Naive Bayes, SVM, Neural Network et Boosted Tree sur mon ensemble de données. Quelles étapes de prétraitement dois-je effectuer avant d’appliquer ces modèles ?
Analyse et modélisation des données de baseModélisation prédictive et apprentissage automatiqueRe : prétraitement des donnéesBonjour @maryam_nourmand ,
Si vous parlez de l'utilisation de Make Validation Column avec les méthodes de validation croisée K-folds, vous pouvez utiliser tous vos prédicteurs (variables X) dans le panneau des colonnes de stratification (pour vous assurer que les plis seront homogènes concernant les distributions de X variables), et votre ou vos réponses dans le panneau Y : JMP ordonnera et répartira les lignes entre les plis en fonction des valeurs de réponse pour garantir que les plis sont homogènes en ce qui concerne la ou les réponses, évitant ainsi un apprentissage et une évaluation biaisés lors de la validation croisée. : Lancer la plateforme Make Validation Column (jmp.com)
Si vous avez plusieurs lignes correspondant au même ID/groupe, conservez cette structure de données en utilisant cette(ces) colonne(s) ID/groupe dans le panneau "Regroupement des colonnes".
J'espère que cela répondra à votre question,
Re : prétraitement des donnéesBonjour
Merci pour votre réponse
si je veux utiliser (validation croisée K-folds) et mon type de réponse est catégorique
lorsque je veux sélectionner la colonne sur y, je dois y mettre tous mes prédicteurs et ma variable de réponse ou simplement ma variable de réponse ?
Re : prétraitement des donnéesSalut @maryam_nourmand ,
Lorsqu'on parle de prétraitement, il y a généralement plusieurs étapes pour préparer les données à l'analyse :
0. Partitionner vos données : Divisez vos données en ensembles de formation, de validation et de test, ou planifiez votre validation (validation croisée K-folds, Leave-One-Out, ...) et votre stratégie de test. Cela doit être fait en premier pour garantir que toute transformation de données que vous pourriez effectuer par la suite n'entraînera pas de fuite de données, ce qui signifie qu'une partie des informations provenant des ensembles de validation et de test issus des étapes de prétraitement peuvent être trouvées lors de la formation du modèle (plages de données, distribution, techniques d'imputation, ...). Vous pouvez utiliser Make Validation Column (jmp.com) pour cette étape.
- Nettoyage des données : j'identifie et corrige les erreurs ou les incohérences dans l'ensemble de données pour garantir que les données sont de haute qualité et adaptées à l'analyse ou à la formation de modèles.
- Valeurs manquantes : possibilité d'exclure des lignes, de faire une imputation de données ou de ne rien faire. Prenez soin d'analyser vos valeurs manquantes avec la plateforme Explore Missing Values (jmp.com) pour vérifier si elles sont MAR (Missing At Random), MCAR (Missing Completely At Random) ou MNAR (Missing Not At Random). Selon le type de valeurs manquantes dont vous disposez/les modèles, certaines options peuvent être préférables à d'autres.
- Les modèles arborescents sont beaucoup plus flexibles face aux valeurs manquantes par rapport aux autres algorithmes que vous mentionnez et peuvent traiter les valeurs manquantes comme informatives : Informative Missing (jmp.com) .
- Pour la plateforme de réseaux de neurones, vous pouvez cocher l'option « Informative manquante » lors du lancement de la plateforme pour activer l'imputation et le codage des valeurs manquantes. Si vous ne cochez pas cette option, la ligne sera exclue de l'analyse.
- Naive Bayes n'a pas de problème avec les données manquantes lorsqu'il n'y a que quelques valeurs manquantes.
- SVM exclura par défaut les lignes où il y a au moins une valeur manquante.
- Outliers : possibilité de les exclure, de les équilibrer/peser (avec fréquence ou par transformations), ou de ne rien faire. Vous pouvez les détecter à l’aide d’une grande variété de méthodes grâce à la plateforme Explore Outliers (jmp.com) .
- Les modèles arborescents ne sont pas très sensibles aux valeurs aberrantes, car ils divisent les données en tranches/plages de données, de sorte qu'ils ne modifient pas le partitionnement effectué (il sera dans la plage/tranche la plus élevée ou la plus basse, mais ne changera pas). la valeur seuil) : https://datascience.stackexchange.com/questions/37394/are-decision-trees-robust-to-outliers
- Les réseaux de neurones sont sensibles aux valeurs aberrantes, vous devez donc les vérifier et les gérer.
- Naive Bayes et SVM peuvent être sensibles aux valeurs aberrantes.
- Doublons : possibilité de les exclure, de réduire leur fréquence, ou de ne rien faire. Vous pouvez les détecter (ainsi que d’autres modèles) à l’aide de la plateforme Explore Patterns (jmp.com) .
- Les doublons peuvent affecter tous les algorithmes, car ils influencent l’apprentissage effectué en favorisant ou en appliquant des modèles spécifiques trouvés dans les points en double par rapport à d’autres points. Cela peut également conduire à un surajustement et à une fausse évaluation des performances du modèle s'ils ne sont pas pris en compte lors de la répartition des données en ensembles de formation, de validation et de test. La méthodologie d'apprentissage automatique est très différente de la modélisation statistique, où des doublons sont utilisés pour évaluer la variance et l'incertitude.
- Mise à l'échelle/normalisation des variables : placez toutes les valeurs des caractéristiques/variables dans une plage similaire sans fausser les différences dans les plages de valeurs, pour éviter que les caractéristiques avec de grandes plages ne dominent celles avec des plages/variations plus petites.
Ceci est utile pour les algorithmes basés sur des distances ou des similitudes, comme SVM, KNN, réseaux de neurones, régression (linéaire et logistique), et déjà effectué par JMP par défaut (exemple avec KNN : https://community.jmp.com/t5/ Inde-JMP-Users-Group-Bibliothèque/Modélisation-prédictive-avec-apprentissage-machine-dans-JMP-K-Nearest/ta-p/720639 )
Les modèles arborescents et les algorithmes basés sur les probabilités comme Naive Bayes peuvent ne pas nécessiter de mise à l'échelle.
- Gestion des données catégorielles : Lors du codage, vous devez encoder les données catégorielles en utilisant l'encodage par étiquettes, l'encodage one-hot, l'encodage factice... Heureusement dans JMP, cela est déjà fait et préparé, pas besoin de le faire vous-même (exemple avec les modèles de régression ) :
Détails statistiques pour le codage des effets nominaux (jmp.com)
Facteurs ordinaux (jmp.com)
Questions et réponses similaires de Stackexchange :
machine learning - Quels algorithmes nécessitent une mise à l'échelle des fonctionnalités, en dehors de SVM ? - Validation croisée (stackexchange.com)
Quel est l’impact des valeurs aberrantes et manquantes sur ces classificateurs ? - Échange de pile de science des données
Alors comme je l'ai déjà écrit dans un autre sujet (et sur LinkedIn), si vous souhaitez faire un premier test rapide avec un algorithme de ML, essayez d'utiliser Random Forest :
- Robuste aux valeurs aberrantes
- Faible sensibilité au bruit (l'ensachage aide à réduire la variance)
- Moins sujet au surapprentissage, grâce au bootstrapping et à la validation des performances "Out-Of-Bag" (échantillons non utilisés dans chaque échantillon bootstrap)
- Bonnes performances de généralisation
- Gère facilement les situations non linéaires grâce à l'ensemble d'arbres de décision capables de gérer des limites non linéaires avec des règles "if-else"
- Contrôle la multicolinéarité entre les variables avec la sélection aléatoire de sous-ensembles de fonctionnalités à chaque nœud
- Faible accordabilité : les performances sont peu sensibles au réglage des hyperparamètres (voir mon dernier article sur le réglage des hyperparamètres Random Forest avec DoE)
- Capacité à gérer des données clairsemées
- Interprétabilité plus facile par rapport à d'autres algorithmes (avec l'utilisation de l'importance des fonctionnalités "intégrées")
- Calcul relativement rapide et efficace (en fonction du nombre d'arbres et de la profondeur utilisée) : étant donné que les arbres individuels sont indépendants les uns des autres, le processus de formation peut être parallélisé.
Donc, si vous recherchez un algorithme précis, robuste, polyvalent et évolutif avec une faible tendance au surajustement pour l'analyse de vos ensembles de données, Random Forest peut être un bon point de départ et une bonne référence. Commencez toujours par les algorithmes simples et une bonne stratégie de validation pour évaluer et comparer vos modèles, avant de passer à des algorithmes complexes comme les réseaux de neurones qui peuvent nécessiter plusieurs couches de validation (pour les construire et les affiner).
J'espère que cette longue réponse vous aidera,