Analyse de données - Séminaire 4 - PDF

Summary

Ce document présente une méthodologie de recherche en analyse de données, couvrant des sujets comme la collecte de données, la préparation des données, l'exploration des données, la validation et l'évaluation du modèle. Le document est utile aux étudiants en recherche.

Full Transcript

Formation complémentaire: méthodologie de recherche Analyse de données Oumayma BANOUAR L2IS,FSTG,UCAM [email protected] L’apprentissage automatique et...

Formation complémentaire: méthodologie de recherche Analyse de données Oumayma BANOUAR L2IS,FSTG,UCAM [email protected] L’apprentissage automatique et les données ? Les algorithmes de l’apprentissage automatique sont basés sur des données. On parle aussi d’échantillons (samples), d’observations, ou d’exemples. Deux grandes familles de jeux de données peuvent être utilisées :  les données étiquetées : chaque observation xn est fournie avec une étiquette (label) yn ;  les données non-étiquetées : comme le nom l’indique, aucune étiquette n’est fournie. END-TO-END projects workflow 1.Collecte de Données : Acquisition de données pertinentes pour l'entraînement et l'évaluation du modèle. 2.Exploration et Prétraitement des Données : Analyse exploratoire des données pour comprendre leur structure et leur qualité, suivi du nettoyage, de la normalisation et de la transformation des données en un format approprié pour l'entraînement du modèle. 3.Choix du Modèle et Entraînement : Sélection d'un algorithme de machine learning approprié et entraînement du modèle sur les données d'entraînement. 4.Évaluation et Validation du Modèle : Évaluation de la performance du modèle sur des données de validation ou de test pour estimer sa précision et son efficacité. 5.Optimisation et Réglage du Modèle : Ajustement des hyperparamètres et des paramètres du modèle pour améliorer sa performance. 6.Déploiement et Maintenance du Modèle : Intégration du modèle dans un environnement de production pour effectuer des prédictions en temps réel, suivi de la maintenance continue pour assurer sa performance et son efficacité à long terme. Collecte et préparation des données Activités de nettoyage, de transformation, d’augmentation /réduction et d’échantillonnage des données. Identification des attributs des données les plus pertinents. Visualisation des données Tests et interprétation Collecte des données Le processus de collecte des données est une étape cruciale dans la réalisation de recherches ou d'analyses. Il consiste à rassembler des informations pertinentes et nécessaires pour répondre à des questions spécifiques ou pour atteindre des objectifs prédéfinis. Voici les principales étapes du processus de collecte des données : 1. Définition des Objectifs Avant de commencer la collecte de données, il est essentiel de définir clairement les objectifs de la recherche ou de l'analyse. Cela inclut la définition des questions de recherche, des hypothèses et des variables à étudier. Collecte des données 2. Sélection de la Méthode de Collecte Enquêtes et questionnaires : Utilisés pour recueillir des informations auprès d'un grand nombre de personnes. Entretiens : Permettent de collecter des données qualitatives détaillées à travers des interactions directes. Observations : Impliquent la collecte de données en observant les comportements ou les événements. Sources secondaires : Utilisation de données déjà existantes comme des rapports, des articles scientifiques, des bases de données, etc. Expériences : Impliquent la manipulation de variables pour observer les effets sur d'autres variables. Collecte des données 3. Conception des Instruments de Collecte Les instruments de collecte doivent être soigneusement conçus pour garantir la pertinence et la fiabilité des données. Par exemple : Questionnaires : Doivent comporter des questions claires et non biaisées. Guides d’entretien : Doivent inclure des questions ouvertes pour obtenir des réponses détaillées. Fiches d’observation : Doivent préciser ce qui doit être observé et comment enregistrer les observations. 4. Échantillonnage Il est souvent impossible de collecter des données auprès de l’ensemble de la population cible. Un échantillon représentatif doit donc être sélectionné. Les techniques d'échantillonnage peuvent être probabilistes (aléatoires) ou non probabilistes (de commodité, par quotas, etc.). 5. Collecte des Données C’est la phase où les données sont réellement recueillies à l’aide des instruments et méthodes choisis. Cette étape nécessite une organisation rigoureuse pour s'assurer que les données sont collectées de manière cohérente et précise. Préparation des données 1.Exploration des données : 1. Cette étape implique l'analyse initiale des données disponibles pour en comprendre la structure, les caractéristiques et les tendances. Cela peut inclure des statistiques descriptives telles que la moyenne, la médiane, l'écart-type, etc. 2. L'exploration des données peut également impliquer la visualisation des données à l'aide de graphiques, de diagrammes et de tableaux de bord interactifs pour identifier des schémas, des anomalies ou des relations entre les variables. 2.Nettoyage des données : 1. Le nettoyage des données consiste à identifier et à corriger les erreurs, les valeurs manquantes et les incohérences dans l'ensemble de données. Cela peut impliquer la suppression des valeurs aberrantes, l'imputation des valeurs manquantes, la normalisation des données, etc. 2. Les techniques de nettoyage des données peuvent varier en fonction du type de données et des problèmes spécifiques rencontrés dans l'ensemble de données. Préparation des données 3.Transformation des données : 1. La transformation des données implique souvent la conversion des données brutes en un format plus approprié pour l'entraînement des modèles. Cela peut inclure la conversion des données catégorielles en données numériques, l'encodage des variables catégorielles, la création de nouvelles caractéristiques à partir des caractéristiques existantes, etc. 2. Cette étape peut également impliquer la réduction de la dimensionnalité des données à l'aide de techniques telles que l'analyse en composantes principales (PCA) ou d'autres méthodes de sélection ou d'extraction de caractéristiques. 3. Cette étape peut également impliquer l’augmentation des données pour augmenter la taille et la diversité (équilibrage) de l'ensemble de données d'entraînement. 4.Préparation des données pour l'entraînement : les données sont préparées dans un format adapté à l'entraînement des modèles. Cela implique généralement de diviser l'ensemble de données en ensembles de données d'entraînement et de test, et éventuellement de normaliser ou de mettre à l'échelle les données en fonction des besoins spécifiques du modèle. Préparation des données Qu’est ce qu’une donnée manquante? Les algorithmes de Machine Learning prennent les données d’entrée (input Data) sous forme matricielle, chaque ligne est une observation, et chaque colonne représente une caractéristique (feature) de l’individu (son salaire, appartenance politique etc…). On dit qu’une observation (ligne de la matrice de données) comporte une donnée manquante s’il existe une feature pour laquelle sa valeur n’est pas renseignée. Evidemment, on peut avoir plusieurs données manquantes pour une même observation. Préparation des données Les différents patterns d’absence de données Les données manquantes sont un problème qui se manifeste non seulement en Data Science mais également en modélisation statistique. Toutefois, la préoccupation reste la même. A savoir, comment traiter ces données manquantes de façon à remplir les données non renseignées et ce, sans altérer significativement le jeu de données initial. La difficulté pour traiter les données manquantes réside dans les hypothèses que nous nous faisant à l’égard des patterns d’absence de données. ========== >Trois patterns de données manquantes Préparation des données Les différents patterns d’absence de données Les données Missing Completely At Random (MCAR) Quand la valeur d’une variable explicative (feature) X est manquante, on dit que cette feature est MCAR (Missing Completly At Random) si et seulement si la probabilité que la valeur soit manquante est indépendant des valeurs prises par les autres variables explicatives de l’observation, qu’elles soient manquantes ou non. Exemple: Prénom et Sexe vs Prénom et salaire Préparation des données Les différents patterns d’absence de données Missing At Random (MAR) On dit que les données manquantes d’une feature X sont Missing At Random (MAR) si et seulement si, la probabilité qu’une valeur X soit manquante est corrélée à l’existence de variables explicatives dont les valeurs sont renseignées. Par contre cette probabilité n’est pas corrélée à l’absence de valeurs de variables explicatives. Préparation des données Les différents patterns d’absence de données Not Missing At Random (NMAR) La probabilité qu’une valeur d’une variable explicative soit manquante ou pas, ne dépend que d’elle même et n’est corrélée avec aucune des valeurs des autres variables explicatives. En d’autre terme, il existe un pattern qui motive l’absence d’une valeur. A titre d’exemple, imaginons qu’on fait un sondage sur une population et qu’on demande leur salaire mensuelle. On pourra remarquer que plus le montant du salaire augmente, plus cette information est absente. On peut supposer que les gens les plus fortunés ne souhaitent pas divulguer le montant de leurs revenus. Les données NMAR sont les plus délicates à traiter car l’absence d’une donnée est motivée par une cause que nous avons interêt à comprendre pour mieux traiter ces données absentes. On dit qu’il s’agit d’un pattern d’absence de données non ignorable. Préparation des données Les différents patterns d’absence de données Quand une hypothèse MCAR ou MAR est remplie, on dit que le pattern d’absence de données est ignorable. En d’autre mots, il n’y a pas besoin de modéliser le comportement régissant l’absence de données pour une feature X car il est aléatoire. Par ailleurs, quand les données ne sont ni MCAR ni MAR on dit que le pattern d’absence de données n’est pas ignorable. Ainsi, il faut modéliser le comportement d’absence de données pour mieux traiter ces données manquantes. Par ailleurs, modéliser un comportement d’absence de données requiert une compréhension profonde du sens métier des données qu’on manipule. En réalité, savoir le pattern d’absence de données se fait avant tout par hypothèse. Il n’existe pas de règle universelle pour dire si une donnée manquante est une MCAR, MAR ou NMAR. Il est toujours important d’observer et comprendre le jeu de données pour décider quelle approche à utiliser pour traiter ces données manquantes. Préparation des données Méthodes pour traiter les données manquantes Traiter les données manquantes revient à “réparer” le jeu de données pour qu’il puisse être utilisable par les algorithmes de Machine Learning. La réparation d’un jeu de données peut prendre plusieurs formes : Comme supprimer les donner manquantes ou les remplacer par des valeurs artificielles (on parle d’imputation). Préparation des données Méthodes pour traiter les données manquantes Suppression des observations (Complete case Analysis) Il s’agit de la technique la plus simple et courante. Elle consiste à supprimer les observations (les lignes) qui contiennent au moins une feature manquante. C’est le comportement par défaut. Le problème de cette technique est qu’on peut être amené à supprimer un grand nombre d’observations. En effet, imaginons qu’on manipule un jeu de données de 1000 observations, et chaque observation est définie par 20 caractéristiques (features). Si chaque feature de notre jeu de données comporte 5% de valeurs manquantes, on devra supprimer 640 observations pour que notre jeu de données ne contiennent aucune valeur manquante. Ainsi notre jeu de données après traitement avec cette méthode ne comportera que 360 observations ! Préparation des données Méthodes pour traiter les données manquantes Imputation de données L’imputation de données manquante réfère au fait qu’on remplace les valeurs manquantes dans le jeu de données par des valeurs artificielles. Idéalement, ces remplacements ne doivent pas conduire à une altération sensible de la distribution et la composition du jeu de données. Imputation par règle Si on connait le sens métier de la donnée manquante et la règle métier la régissant, on peut faire une imputation par règle. Il s’agit tout simplement d’appliquer un algorithme définissant les règles métier pour mettre telle ou telle valeur en fonction des paramètres de l’algorithme. Par exemple, si on a une variable âge et une autre représentant le fait qu’un individu soit majeur ou non (valeur vrai ou faux), on peut appliquer un algorithme qui remplira la variable majeur par vrai ou faux en fonction de l’âge (si l’âge est plus grand que 18 alors il/elle est majeur(e) sinon on mets faux). Préparation des données Méthodes pour traiter les données manquantes Imputation par moyenne ou mode Une autre façon intuitive d’imputer les valeurs manquantes d’une feature numérique est d’utiliser par la moyenne des observations. Pour les données qualitatives, on peut remplacer les valeurs manquantes de chaque feature par le mode de cette variable explicative. Toutefois, l’imputation par moyenne est sujette à des limitations et il faut l’utiliser avec précaution. En effet, cette méthode peut sensiblement modifier le jeu de données. Ceci est principalement à cause de la moyenne qui est très sensible aux valeurs aberrantes. Imputation par régression Supposons qu’on estime un modèle de régression avec plusieurs variables explicatives. L’une d’entre elles, la variable X, comporte des valeurs manquantes. Dans ce cas on peut sélectionner les autres variables explicatives (autre que X) et calculer un modèle prédictif avec comme variable à prédire X. Ensuite on applique ce modèle pour estimer les différentes valeurs manquantes de X. Modèles machine learning non supervisé Clustering Kmeans K-Means est un algorithme de clustering largement utilisé en apprentissage automatique non supervisé. Son objectif est de regrouper un ensemble de données en un certain nombre de groupes (clusters) de sorte que les points au sein d'un même cluster soient similaires les uns aux autres, tandis que les points dans des clusters différents sont distincts Modèles machine learning non supervisé Clustering Kmeans Entrée: - Nombre de clusters k - Données d'entrée à clusteriser Étape 1: Initialisation des centroïdes Choisir aléatoirement k points comme centres de clusters initiaux Étape 2: Assignation des points aux clusters Tant que les critères d'arrêt ne sont pas satisfaits : Pour chaque point dans les données : Calculer la distance entre le point et chaque centroïde Assigner le point au cluster dont le centroïde est le plus proche Étape 3: Mise à jour des centroïdes Pour chaque cluster : Calculer le nouveau centroïde comme la moyenne des points attribués à ce cluster Modèles machine learning non supervisé Clustering Kmeans Étape 4: Répéter les étapes 2 et 3 jusqu'à convergence (aucun changement dans les affectations de cluster ou un nombre maximal d'itérations est atteint) Sortie: - Affectations de cluster pour chaque point - Centroïdes finaux pour chaque cluster Il existe plusieurs variantes de K-Means: K-Means++ pour une initialisation plus robuste des centroïdes, ce qui impacte la convergence de l’algorithme. Mini-Batch K-Means pour gérer des ensembles de données volumineux de manière plus efficace. Préparation des données Données non équilibrées Le déséquilibre de classes peut entraîner des modèles de classification biaisés qui prédisent généralement la classe majoritaire, ignorant ainsi la classe minoritaire. Préparation des données Oversampling Vs Undersampling L'oversampling est une technique de prétraitement des données utilisée en apprentissage automatique pour traiter les problèmes de déséquilibre de classes dans les ensembles de données. Cette technique est particulièrement utile dans les tâches de classification où une classe est sous-représentée par rapport aux autres classes. Réplication aléatoire (Random Oversampling) : Cette méthode consiste à répliquer aléatoirement des échantillons de la classe minoritaire jusqu'à ce que le nombre d'échantillons de cette classe atteigne un niveau souhaité. Cela peut conduire à un surapprentissage si la classe minoritaire est trop représentée. Synthèse de minorités (SMOTE - Synthetic Minority Over-sampling Technique) : Cette méthode consiste à générer de nouveaux échantillons synthétiques pour la classe minoritaire en interpolant linéairement les échantillons existants. SMOTE tente de créer des échantillons qui sont des combinaisons linéaires des échantillons minoritaires existants, ce qui peut aider à éviter le surapprentissage. Préparation des données Oversampling Vs Undersampling L'undersampling est une technique de prétraitement des données utilisée en apprentissage automatique pour traiter les problèmes de déséquilibre de classes dans les ensembles de données. Contrairement à l'oversampling qui augmente artificiellement le nombre d'échantillons de la classe minoritaire, l'undersampling consiste à réduire le nombre d'échantillons de la classe majoritaire afin d'équilibrer les classes. L'undersampling est souvent utilisé lorsque l'oversampling n'est pas réalisable en raison de contraintes de ressources. Sous-échantillonnage aléatoire (Random Undersampling) : Cette méthode consiste à supprimer aléatoirement des échantillons de la classe majoritaire jusqu'à ce que le nombre d'échantillons de cette classe atteigne un niveau souhaité. Cela peut conduire à une perte d'informations si des échantillons importants sont supprimés. Analyse des données Exploration des données et visualisation L’exploration des données univariée correspond à deux niveaux: 1. Les métriques statistiques et de qualité 2. La visualisation de la data 3. Détection des facteurs les plus contribuant dans la data. Mesures statistiques: moyenne, médiane et quantiles Mesures de qualité: variance, écart-type, écart interquartile Validation et évaluation du modèle Test fractionné: Dans un test fractionné, l'ensemble de données est divisé en deux parties, l'une est l' ensemble d'entraînement et l'autre est l'ensemble de données de test. Une fois les données divisées, l'algorithme utilisera l'ensemble d'entraînement et un modèle est créé. La précision d'un modèle est testée à l'aide de l'ensemble de données de test. Le rapport de division de l'ensemble de données en formation et en test peut être décidé en fonction de la taille de l'ensemble de données. C'est rapide et efficace lorsque l'ensemble de données est de grande taille ou que l'ensemble de données est cher. Cela peut produire des résultats différents sur la façon dont l'ensemble de données est divisé en ensemble de données de formation et de test. Si l'ensemble de données est divisé en 80 % comme ensemble d'entraînement et 20 % comme ensemble de tests, 60 % comme ensemble d'entraînement et 40 %, les deux généreront des résultats différents. Nous pouvons opter pour plusieurs tests fractionnés, où l'ensemble de données est divisé en différents ratios et le résultat est trouvé et comparé pour son exactitude. Validation et évaluation du modèle Validation croisée (K-fold validation) Division des données : Tout d'abord, les données sont divisées en k ensembles (ou plis) de taille égale (ou presque). Typiquement, k est choisi entre 5 et 10, mais cela peut varier en fonction de la taille du jeu de données. Boucle de validation : Ensuite, le modèle est entraîné k fois. À chaque itération, un pli est retenu comme ensemble de test et les k-1 plis restants sont utilisés comme ensemble d'apprentissage. Évaluation du modèle : Le modèle est entraîné sur l'ensemble d'apprentissage et évalué sur l'ensemble de test retenu. Les métriques d'évaluation, telles que l'exactitude, la précision, le rappel, le score F1, etc., sont calculées pour chaque itération. Moyenne des performances : Les performances du modèle sont moyennées sur les k itérations pour obtenir une estimation finale de ses performances. Cela permet d'obtenir une évaluation plus fiable du modèle, en tenant compte de la variabilité des données. -précision(ou valeur prédictive positive) est la proportion des items pertinents parmi l'ensemble des Validation et évaluation du modèle items proposés ; -rappel(ou sensibilité) est la proportion des items pertinents proposés parmi l'ensemble des items pertinents. La précision = mesure de l'exactitude ou de la qualité, Le rappel = une mesure de l'exhaustivité ou de la quantité. Validation et évaluation du modèle Cas d’une classification binaire La courbe ROC (Receiver Operating Characteristic) est une courbe graphique qui illustre la performance d'un modèle de classification binaire à différents seuils de classification. Elle est largement utilisée en apprentissage automatique pour évaluer la performance des modèles de classification et pour sélectionner le seuil optimal de classification. Courbe ROC : La courbe ROC est tracée en reliant les points (FPR, TPR) pour différents seuils de classification. Chaque point de la courbe ROC correspond à un seuil de classification spécifique. Plus la courbe ROC est proche du coin supérieur gauche (0,1) de l'axe, meilleure est la performance du modèle. Analyse des données Analyse par régression - Détecter la variable cible - Détecter les variables explicatives - Calculer la corrélation - Normaliser les données - Appliquer la régression (multiple/ logistique) - Sélectionner les variables les plus impactant en fonction des coefficients - Valider le modèle (mesures en fonction de la régression) https://github.com/epimed/eoc-ai-session-1/blob/main/notebook/exo_2_solution.ipynb https://www.kaggle.com/code/adityakapoor06/house-pricing-regression Modèles machine learning supervisé Régression logistique La régression logistique est une technique utilisée pour effectuer une classification binaire, c'est-à-dire pour prédire des variables de classe qui peuvent prendre deux valeurs distinctes, telles que "oui" ou "non", "vrai" ou "faux", "positif" ou "négatif". Bien que le mot "régression" soit utilisé, il est important de noter que la régression logistique est utilisée pour la classification, pas pour la régression. X représente la matrice des caractéristiques de l'ensemble d'entraînement (chaque ligne correspond à une observation, chaque colonne à une caractéristique). y représente le vecteur des étiquettes de classe correspondant à l'ensemble d'entraînement. β représente les coefficients du modèle (poids). taux_apprentissage est le taux d'apprentissage utilisé dans la mise à jour des coefficients β pendant la descente de gradient. nombre_iterations est le nombre d'itérations de la descente de gradient. Modèles machine learning supervisé Régression logistique sigmoid est une fonction d'activation qui transforme la sortie d'une combinaison linéaire des caractéristiques en une valeur Fonction sigmoid(z) entre 0 et 1, représentant une probabilité. retourner 1 / (1 + exp(-z)) Fonction entraîner_regression_logistique(X, y, taux_apprentissage, nombre_iterations) initialiser les coefficients β avec des valeurs aléatoires ou à zéro Pour chaque itération de 1 à nombre_iterations Pour chaque observation x_i, y_i dans l'ensemble d'entraînement (X, y) Calculer la prédiction y_pred = sigmoid(β * x_i) Calculer l'erreur entre la prédiction et la vérité terrain : erreur = y_pred - y_i Mettre à jour les coefficients β en utilisant la descente de gradient : Pour chaque coefficient j de β β_j = β_j - taux_apprentissage * erreur * x_i[j] Retourner les coefficients β appris Fonction prédire_regression_logistique(X, β) Pour chaque observation x_i dans l'ensemble de données X Calculer la prédiction y_pred = sigmoid(β * x_i) Classer l'observation selon la valeur de y_pred (par exemple, si y_pred > 0.5, prédire la classe 1, sinon prédire la classe 0) Retourner les prédictions Modèles machine learning supervisé Régression logistique entraîner_regression_logistique utilise la descente de gradient pour ajuster les coefficients β afin de minimiser l'erreur entre Fonction sigmoid(z) les prédictions du modèle et les étiquettes réelles. retourner 1 / (1 + exp(-z)) Fonction entraîner_regression_logistique(X, y, taux_apprentissage, nombre_iterations) initialiser les coefficients β avec des valeurs aléatoires ou à zéro Pour chaque itération de 1 à nombre_iterations Pour chaque observation x_i, y_i dans l'ensemble d'entraînement (X, y) Calculer la prédiction y_pred = sigmoid(β * x_i) Calculer l'erreur entre la prédiction et la vérité terrain : erreur = y_pred - y_i Mettre à jour les coefficients β en utilisant la descente de gradient : Pour chaque coefficient j de β β_j = β_j - taux_apprentissage * erreur * x_i[j] Retourner les coefficients β appris Fonction prédire_regression_logistique(X, β) Pour chaque observation x_i dans l'ensemble de données X Calculer la prédiction y_pred = sigmoid(β * x_i) Classer l'observation selon la valeur de y_pred (par exemple, si y_pred > 0.5, prédire la classe 1, sinon prédire la classe 0) Retourner les prédictions Modèles machine learning supervisé Régression logistique prédire_regression_logistiqueutilise les coefficients β appris Fonction sigmoid(z) pour prédire les classes des nouvelles observations à partir de retourner 1 / (1 + exp(-z)) leurs caractéristiques. Fonction entraîner_regression_logistique(X, y, taux_apprentissage, nombre_iterations) initialiser les coefficients β avec des valeurs aléatoires ou à zéro Pour chaque itération de 1 à nombre_iterations Pour chaque observation x_i, y_i dans l'ensemble d'entraînement (X, y) Calculer la prédiction y_pred = sigmoid(β * x_i) Calculer l'erreur entre la prédiction et la vérité terrain : erreur = y_pred - y_i Mettre à jour les coefficients β en utilisant la descente de gradient : Pour chaque coefficient j de β β_j = β_j - taux_apprentissage * erreur * x_i[j] Retourner les coefficients β appris Fonction prédire_regression_logistique(X, β) Pour chaque observation x_i dans l'ensemble de données X Calculer la prédiction y_pred = sigmoid(β * x_i) Classer l'observation selon la valeur de y_pred (par exemple, si y_pred > 0.5, prédire la classe 1, sinon prédire la classe 0) Retourner les prédictions Préparation des données Réduction de dimensionnalité en utilisant l’analyse fonctionnelle Préparation des données Réduction de dimensionnalité en utilisant l’analyse fonctionnelle: ACP Analyse en composantes principales Préparation des données Réduction de dimensionnalité en utilisant l’analyse fonctionnelle: ACP Analyse en composantes principales https://fermin.perso.math.cnrs.fr/Files/ACP-decatlon_new.html

Use Quizgecko on...
Browser
Browser