Cours de Fouille de Données - IIT-Sfax (2024-2025) PDF
Document Details
Uploaded by NimbleUnakite
IIT Sfax
2024
Taoufik Ben Abdallah
Tags
Summary
Ce document est un fascicule de cours sur la fouille de données, destiné aux étudiants de deuxième année en Génie informatique. Il couvre les objectifs, l'organisation, le plan et les différentes tâches du cours, ainsi que les outils utilisés.
Full Transcript
FASCICULE DE COURS FOUILLE DE DONNÉES 2ème année Génie Informatique Semestre 1 DR. TAOUFIK BEN ABDALLAH MAÎTRE-ASSISTANT À LA FS-BIZERTE UNIVERSITÉ DE CARTHAGE taoufik....
FASCICULE DE COURS FOUILLE DE DONNÉES 2ème année Génie Informatique Semestre 1 DR. TAOUFIK BEN ABDALLAH MAÎTRE-ASSISTANT À LA FS-BIZERTE UNIVERSITÉ DE CARTHAGE [email protected] 2024-2025 ⚫ Objectifs du cours Sensibiliser les étudiants à l’importance du Data Mining en tant que nouvel domaine technologique Positionner le Data Mining dans le processus d’Extraction des Connaissances à partir des Données (ECD) Maîtriser les principes théoriques et pratiques de quelques techniques du Data Mining IIT-Sfax Taoufik Ben Abdallah 2 Organisation du cours RÉPARTITION APPROXIMATIVE DU CHARGE HORAIRE=42H COURS+TD TRAVAUX PRATIQUES 26H 16H EVALUATION 20% DS 25% Projet 55% Examen IIT-Sfax Taoufik Ben Abdallah 3 PLAN DU COURS Plan du cours 1 Aperçu général sur le processus ECD 2 EDA & Prétraitement de données 3 DM descriptif : Découverte des règles d’association 4 DM prédictif : Classification & Régression IIT-Sfax Taoufik Ben Abdallah 5 Plan du cours (4- Classification & Régression) A- Echantillonnage & Estimation des performances B- Arbres de décision C- Techniques ensemblistes D- Régression linéaire & logistique IIT-Sfax Taoufik Ben Abdallah 6 VOLET PRATIQUE Calcul Scientifique avec Exploration des données avec Visualisation graphique avec & Prétraitement de Données, Échantillonnage, Apprentissage Automatique et Évaluation des Performances avec IIT-Sfax Taoufik Ben Abdallah 7 INTRODUCTION GÉNÉRALE Génie Indus 3 8 L’ère des données! Masse de données souvent non-exploitée Beaucoup de données mais peu de connaissances Comment exploiter les données Solution: Extraction des Connaissances à partir des Données (ECD) IIT-Sfax Taoufik Ben Abdallah 9 Extraction des Connaissances à partir des Données Informations significatives Connaissances Data Mining Sens Produire des connaissances en faisant Informations Données parler les données ! extraites préparées Contexte Données IIT-Sfax Taoufik Ben Abdallah 10 Domaines d’application! Recommandation Industrie Agriculture Loisir Éducation Finance Santé Transport IIT-Sfax Taoufik Ben Abdallah 11 Quelques applications en DM Traitement du langage naturel (NLP) Vision par ordinateur Système de recommandations Détection des maladies Détection Fraude bancaires Analyse des avis des internautes Détection objets en mouvements IIT-Sfax Taoufik Ben Abdallah 12 Data Mining vs Machine Learning Data Mining= Découverte de Data Science connaissances à partir de données Statistics Machine Learning= La façon d’écrire des programmes qui peuvent apprendre Data Machine DL IA Mining Learning Data Mining implique ECD l’utilisation de ML IA : Intelligence Artificielle DL : Deep Learning IIT-Sfax Taoufik Ben Abdallah 13 Données! Données structurées Données semi-structurées Données non-structurées Données Tabulaire! Data Mining / Machine Learning IIT-Sfax Taoufik Ben Abdallah 14 CHAPITRE 1 APERÇU GÉNÉRAL SUR LE PROCESSUS ECD Génie Indus 3 15 Processus ECD Trois phases majeurs! Préparation des données Data Mining : étape centrale de l’ECD Interprétation & Validation des modèles IIT-Sfax Taoufik Ben Abdallah 16 Processus ECD Trois phases majeurs! Données Données I-Préparation des données Informations Espace de descripteurs II-Data Mining Connaissances Modèles III-Validation Modèle retenu IIT-Sfax Taoufik Ben Abdallah 17 PhaseI: Préparation des données 1. Détection des descripteurs ❑ Construction de l’espace des données qui va être exploré ❑ Espace des données= Jeu de donnée= Espace de descripteurs (Feature space) ❑ Collection d’observations ou objets + leurs attributs ❑ Une collection d’attributs décrivent un objet ❑ Un objet est également appelé échantillon=entité = instance Client Salaire S. Familiale Ville 1 Moyen Divorcé Tunis Descripteurs = Attributs = 2 Elevé Célibataire Tunis 3 variables =caractéristiques Faible Célibataire Sfax ⋮ ⋮ ⋮ ⋮ = Information Observations IIT-Sfax Taoufik Ben Abdallah 18 PhaseI: Préparation des données 1. Détection des descripteurs ⚫ Type de valeurs des descripteurs A. Discret : chaine de caractères (nominal & ordinal) Nominal ≠ Ordinal Aucune relation existe entre les valeurs Les valeurs ont un ordre significatif N’est pas possible de calculer des distances ex. Noir/ Rouge/ Blanc ex. Chaud>Moyen>Froid IIT-Sfax Taoufik Ben Abdallah 19 PhaseI: Préparation des données 1. Détection des descripteurs ⚫ Type de valeurs des descripteurs B. Binaire : Seulement deux valeurs (vrai, faux / 0,1) Symétrique ≠ Asymétrique Les deux résultats sont d’importance égale Les résultats n’ont pas la même importance ex. sexe H/F ex. Test médical P/N C. Continue : Nombres entier ou réels =valeurs quantitatifs IIT-Sfax Taoufik Ben Abdallah 20 PhaseI: Préparation des données 2. Prétraitement Data preprocessing Nettoyage de données Remplacer les valeurs manquantes Transformation des données Supprimer les valeurs aberrantes Normaliser les données Détecter les anomalies (outliers detection) Discrétisation des données Réduction des données Convertir les attributs continus en attributs discrets Réduire des données ou des descripteurs IIT-Sfax Taoufik Ben Abdallah 21 PhaseII : Data Mining Tâches Appliquer de méthodes intelligentes pour extraire des modèles de données ⧫ Data Mining descriptif Mettre en évidence des informations présentes mais cachées par le volume de données ⧫ Data Mining prédictif Extrapoler de nouvelles informations à partir des informations présentes IIT-Sfax Taoufik Ben Abdallah 22 PhaseII : Data Mining DM descriptif Statistique descriptive: Résumé des données qui soit le plus intelligible → Représentation graphique Découverte des règles d’association : Découvrir des relations entre des produits (secteur de Marketing) IIT-Sfax Taoufik Ben Abdallah 23 PhaseII : Data Mining DM descriptif Apprentissage non-supervisé Clustering → Organisation des données en groupes → Les données similaires soient dans le même groupe Client Salaire S. Familiale Ville Classe Pas de cible 1 Moyen Divorcé Tunis (pas de label) 2 Elevé Célibataire Tunis ? non 3 Faible Célibataire Sfax ? non ⋮ ⋮ ⋮ ⋮ ?⋮ IIT-Sfax Taoufik Ben Abdallah 24 PhaseII : Data Mining DM prédictif Apprentissage supervisé classification/ Régression → Extrapoler des nouvelles informations à partir de données existantes → Prédire la classe de nouvelles données observées) Rembourse Classe Client Salaire S. Familiale Ville son crédit 1 Moyen Divorcé Tunis ? oui Très 2 Elevé Célibataire Tunis ? non 3 Faible Célibataire Sfax ? non couteux ⋮ ⋮ ⋮ ⋮ ?⋮ à avoir !!! IIT-Sfax Taoufik Ben Abdallah 25 Apprentissage supervisé Classification : Prédire des valeurs discrets ⚫ Sera-t-il froid ou chaud demain? Froid (A)/ chaud (B) Régression : Prédire des valeurs continues ⚫ Quelle est la température demain? IIT-Sfax Taoufik Ben Abdallah 26 Apprentissage supervisé ⚫ Techniques souvent utilisées Arbres de décision ✓ Réseau de neurones ✓ Régression logistique/ linéaire ✓ Support Vector Machine (SVM) ✓ Gradient Boosting/ XGBoost/CatBoost ✓ Random Forest ✓ IIT-Sfax Taoufik Ben Abdallah 27 PhaseIII: Validation Les modèles extraits ne peuvent être utilisés directement en toute fiabilité! Validation= évaluer les performances d’un modèle DM descriptif= Visualisation + Interprétation DM prédictif= Échantillonnage+Calcul d’erreur IIT-Sfax Taoufik Ben Abdallah 28 Quelques outils de Data Mining Open Source Licensed IIT-Sfax Taoufik Ben Abdallah 29 Librairies & Framework IIT-Sfax Taoufik Ben Abdallah 30 Quiz 1. L’étape de préparation de données consiste principalement à (seule réponse) Donner un contexte aux données Donner un sens aux informations Évaluer et interpréter la fiabilité des données Répartir les données 2. L’espace de descripteurs est une représentation matricielle (plusieurs réponses) De connaissances D’informations Où les colonnes sont les descripteurs et les lignes sont les échantillons Où les colonnes sont les échantillons et les lignes sont les descripteurs 3. L’apprentissage supervisé (seule réponse) Est appliqué pour constituer des groupes d’objets homogènes et différenciés Consiste à utiliser des données pour dégager des informations Est appliqué principalement pour le regroupement Nécessite des échantillons étiquetés par un ou plusieurs classes IIT-Sfax Taoufik Ben Abdallah 31 CHAPITRE 2 EDA & PRÉTRAITEMENT DE DONNÉES Génie Indus 3 32 Exemple du dataset (avec anomalies!) Attribut date Outliers!! Attributs discrets # Id Nom Date. N Sexe A1 A2 A3 A4 1 111 John 31/12/1990 M 767 0 Ireland Dublin 2 222 Mery 15/10/1978 F 22 0.5 Iceland NAN 3 333 Alice 19/04/2000 F 60 300 Spain Madrid Lignes dupliquées 4 789 Alex 15/03/2000 A 35 23 Germany Berlin 5 789 Alex 15/03/2000 A 15 23 Germany Berlin 6 555 Peter 1983-12-01 M NAN 10 Italy Rome 7 777 Calvin 05/05/1995 M 32 0.13 Italy Rome 8 888 Roxane 03/08/1948 F 44 0.8 Portugal Lisbon 9 999 Anne 05/09/1992 F 986 5 Switzerland Geneva 10 101010 Paul 14/11/1992 M 24 26 Ytali Rome valeurs uniques Valeurs variées IIT-Sfax Taoufik Ben Abdallah 33 EDA & Prétraitement de données EXPLORATORY DATA ANALYSIS (EDA) DATA PREPROCESSING ANALYSE EXPLORATOIRE DES DONNÉES PRÉTRAITEMENT DES DONNÉES Analyse les données pour obtenir des Prépare et transforme les données afin informations initiales et comprendre qu’elles soient prêtes pour l’entraînement leurs caractéristiques des modèles EDA & Prétraitement de données sont complémentaires EDA permet de mieux comprendre les données, ce qui peut orienter les décisions à prendre lors du prétraitement des données IIT-Sfax Taoufik Ben Abdallah 34 EDA & Prétraitement de données (//) EXPLORATORY DATA ANALYSIS (EDA) DATA PREPROCESSING ANALYSE EXPLORATOIRE DES DONNÉES PRÉTRAITEMENT DES DONNÉES Exploration initiale : Identification des variables et les types de données ⚫ Nettoyage des données Statistique descriptives: Aperçu initial de la distribution de données ⚫ Transformation de données Identification des valeurs manquantes/ outliers et duplicata ⚫ Discrétisation des données Visualisation des distributions ⚫ Réduction des données Etude de relation entre les attributs : Analyse de corrélation IIT-Sfax Taoufik Ben Abdallah 35 Exploration initiale DataFrame df= Identification des types de colonnes df.info() Age, Height & Weight comportent des valeurs manquantes! 271116 rows × 7 columns IIT-Sfax Taoufik Ben Abdallah 36 Statistique descriptives df.describe(include="all") Discrets!! Plus fréquente Continus!! IIT-Sfax Taoufik Ben Abdallah 37 Identification des valeurs manquantes NaN Valeurs manquante df= df.isnull().sum() Équivalent à df.isna().sum() Nombre total de valeurs manquantes df.isnull().sum().sum() #9474+60171+62875=132520 IIT-Sfax Taoufik Ben Abdallah 38 Nettoyage des données : Traitement des NaN Suppression des instances/ colonnes Remplissage des valeurs ayant des valeurs manquantes manquantes dropna Par une valeur Par l’élément le plus fréquent/ fictive moyenne/médiane fillna SimpleImputer bfill ffill IIT-Sfax Taoufik Ben Abdallah 39 Traitement des NaN Suppression df.dropna(subset=["Height","Weight"], df= axis=0 , inplace=True, Valeur par défaut ignore_index=True) df.dropna(subset="Age",axis=1, inplace=True) Conserver uniquement les lignes/colonnes avec au moins 2 valeurs non manquantes! df.dropna(thresh=2, how="any", inplace=True) df.dropna(thresh=2, how="any", inplace=True) ▪ "any" : Supprimer la ligne ou la colonne si au moins une valeur est NaN ▪ "all" : Supprimer la ligne ou la colonne uniquement si toutes les valeurs sont NaN IIT-Sfax Taoufik Ben Abdallah 40 Traitement des NaN Remplissage (1/2) Par une valeur fictive df= Nombre de NAN total à remplir! df['Age'].fillna(0, inplace=True),limit=2) df['Age'].fillna(df[['Height', 'Weight']].apply( lambda x: 40 if (x >= 170 and x >= 80) else 25, axis=1), inplace=True) Remplissage ffill bfill df['Age'].ffill(inplace=True) vers l’avant df['Age'].fillna(method='ffill', inplace=True) Remplissage df['Age’].bfill(inplace=True) vers l’arrière df['Age'].fillna(method='bfill', inplace=True) Il est recommandé de trier les données! IIT-Sfax Taoufik Ben Abdallah 41 Traitement des NaN Remplissage (2/2) Par l’élément le plus fréquent/ moyenne/médiane from sklearn.impute import SimpleImputer mf_imputer = SimpleImputer(missing_values=np.nan, 24 24.0 strategy='most_frequent') 24 'most_ 24.0 frequent' arr=mf_imputer.fit_transform(df.loc[:,['Age']]) NaN 24.0 ndarray 25 25.0 Il faut avoir un DataFrame pd.DataFrame(arr,columns=['Age']) ou ndarry 2D! 30 30.0 strategy='mean' / strategy='median' Toutes les valeurs des attributs doivent être de type continue IIT-Sfax Taoufik Ben Abdallah 42 Identification des valeurs aberrantes Identifier les instances ayant un comportement non conforme Méthode des valeurs extrêmes (Extreme Value Analysis) Méthode de la règle des 𝐤-voisins les plus proches Boîtes à moustaches (Boxplot) Méthodes basées sur des seuils Méthode de la fréquence Isolation Forest IIT-Sfax Taoufik Ben Abdallah 43 Identification des valeurs aberrantes Boxplot Premier quartile Q1= 25e percentile= 25% des Outliers ⋮ upper limit données sont inférieures au valeur de Q1 Deuxième quartile Q3= 75e percentile= 75% des données sont inférieures au valeur de Q3 Quartile Q3 Médiane = Q2= 50e percentile IQR box médiane Q2 Interquartile range (IQR)=Q3-Q1 Quartile Q1 lower limit= max(min, Q1−1.5 × IQR) upper limit= min(max, Q3+1.5 × IQR) lower limit Outliers ⋮ IIT-Sfax Taoufik Ben Abdallah 44 Boxplot Q1, Q3 ? Soit la distribution de données T suivante : 𝐍=8 observations Valeur 10 15 20 25 30 35 40 45 Position 0 1 2 3 4 5 6 7 Q1, Q3= np.percentile(T, [25,75]) 𝟐𝟓 Index_Q1=( ) × (𝐍-1)=1.75 𝟏𝟎𝟎 𝟕𝟓 Index_Q3=( ) × (𝐍-1)=5.25 𝟏𝟎𝟎 Q1 =15+(20-15)× partie décimale(Index_Q1)= 15+(20-15)×0.75=18.75 Q3 =35+(40-35)× partie décimale(Index_Q3)= 35+(40-35)×0.25=36.25 IIT-Sfax Taoufik Ben Abdallah 45 Nettoyage des données : Traitement des outliers sns.boxplot(data=df,x="Height") Q1,Q3=np.percentile(df["Height"], [25,75]) IQR=Q3-Q1 upper_limit=Q3+1.5*IQR lower_limit=Q1-1.5*IQR outliers=df["Height"][(df["Height"]>upper_limit)| (df["Height"]=upper_limit, upper_limit, np.where(df['Height']