Data Mining et Machine Learning

John Samuel
CPE Lyon

Year: 2023-2024
Email: john.samuel@cpe.fr

Creative Commons License

Data Mining

Objectifs

1.1. Cycle de vie des données

Cycle de vie des données

  1. Données : Collecte, stockage, et gestion initiale des données.
  2. Connaissances : Extraction de signification à partir des données, identification de modèles et de tendances.
  3. Perspectives : Interprétation des connaissances pour obtenir des insights exploitables.
  4. Actions : Prise de décisions et mise en œuvre de stratégies basées sur les perspectives obtenues.
Cycle de vie des données

1.1. Cycle de vie des données

1.1. Des données à la connaissance

Des données à la connaissance

1.1. Cycle de vie des données

1.1. Des données à la connaissance

  1. Acquisition de données
  2. Extraction de données
  3. Nettoyage de données
  4. Transformation de données
  5. Stockage de données
  6. Modélisation de l'analyse des données
  7. Analyses de données
  8. Visualisation de données

1.1. Cycle de vie des données

1.1.1.1. Acquisition de données

Collecte initiale de données provenant de diverses sources.

1.1. Cycle de vie des données

1.1.1.2. ETL (Extraction Transformation, Loading)

ETL (Extraction, Transformation and Loading)

1.1. Cycle de vie des données

1.1.1.2. ETL (Extraction Transformation, Loading)

  1. Extraction de données
  2. Nettoyage de données
  3. Transformation de données
  4. Chargement des données dans les entrepôts de données

1.1. Cycle de vie des données

1.1.1.3. Analyses de données

Exploration approfondie des données pour identifier des tendances significatives et des insights pertinents.

  • Utilisation de tableurs tels que Microsoft Excel ou Google Sheets.
  • Fonctionnalités clés : tri, filtrage, formules, graphiques, facilitant l'analyse approfondie.
  • 1.1.3. Analyses de données

    1.1. Cycle de vie des données

    1.1.1.3. Analyses de données (Tableur)

    1.1. Cycle de vie des données

    1.1.1.3. Analyses de données (Tableur: formules)

    1.1. Cycle de vie des données

    1.1.1.4. Visualisation de données

    Transformation des données en représentations graphiques claires et informatives. Par exemple, graphiques, tableaux de bord, cartes pour faciliter la compréhension visuelle.

    1.1. Cycle de vie des données

    1.1.1.4. Visualisation de données

    1.2. Acquisition et stockage des données

    L'acquisition de données [Lenzerini 2002][Dong 2013]

    1. Questionnaires: questionnaires face à face, questionnaires en ligne
    2. Capteurs1
      • Température, pression, humidité
      • Acoustique, navigation
      • Proximité, capteurs de présence
    3. Réseau sociaux
    4. Vidéo de surveillance
    5. Web
    6. Enregistrement
    1. https://en.wikipedia.org/wiki/List_of_sensors

    1.2. Acquisition et stockage des données

    1.2.1. Formats de stockage de données

    1.2. Acquisition et stockage des données

    1.2.1. Formats de stockage de données: JSON

    Format léger et lisible par l'homme pour représenter et échanger des données et une structure basée sur des paires clé-valeur, adaptée pour les objets complexes et les listes.

    [
      {
        "languageLabel": "ENIAC coding system",
        "year": "1943"
      },
      {
        "languageLabel": "ENIAC Short Code",
        "year": "1946"
      },
      {
        "languageLabel": "Von Neumann and Goldstine graphing system",
        "year": "1946"
      }
    ]			

    1.2. Acquisition et stockage des données

    1.2.1. Formats de stockage de données: XML

    Langage de balisage polyvalent pour représenter et structurer des données de manière lisible par l'homme et la machine. XML supporte la représentation de données complexes avec des schémas définissables.

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <element>
          <languageLabel>ENIAC coding system</languageLabel>
          <year>1943</year>
       </element>
       <element>
          <languageLabel>ENIAC Short Code</languageLabel>
          <year>1946</year>
       </element>
       <element>
          <languageLabel>Von Neumann and Goldstine graphing system</languageLabel>
          <year>1946</year>
       </element>
    </root>
    			

    1.2. Acquisition et stockage des données

    1.2.1. Formats de stockage de données: CSV

    Format de fichier texte utilisé pour représenter des données tabulaires sous forme de valeurs séparées par des virgules.Il est idéal pour stocker des données tabulaires comme les feuilles de calcul.

    languageLabel,year
    ENIAC coding system,1943
    ENIAC Short Code,1946
    Von Neumann and Goldstine graphing system,1946
    			

    1.2. Acquisition et stockage des données

    1.2.2 Types de stockage des données

    Unstructured vs. Structured vs. Semi-structured

    1.2. Acquisition et stockage des données

    1.2.2 Types de stockage des données

    1. Bases de données structurées
      • Bases de données relationnelles
      • Bases de données orientées objet
    2. Bases de données non-structurées
      • Systèmes de fichiers
      • Systèmes de gestion de contenu (CMS)
      • Collections de documents
    3. Bases de données semi-structurées
      • Systèmes de fichiers
      • Bases de données NoSQL

    1.2. Acquisition et stockage des données

    1.2.3.1. Propriétés ACID1

    1. https://fr.wikipedia.org/wiki/Propri%C3%A9t%C3%A9s_ACID

    1.2. Acquisition et stockage des données

    1.2.3.1. Propriétés ACID

    • Assurer la validité des bases de données
      • Les propriétés ACID (Atomicité, Cohérence, Isolation, Durabilité) sont spécialement conçues pour garantir la validité des bases de données même en cas d'erreurs ou de pannes de courant.
    • Importance dans le secteur bancaire: critique dans le secteur bancaire en raison de la nature sensible des opérations financières.
      • Atomicité assure que les transactions sont effectuées intégralement ou annulées en cas d'échec, évitant des situations financières indésirables.
      • La Cohérence garantit que la base de données reste dans un état valide après chaque transaction, assurant l'exactitude des informations financières.
      • L'Isolation prévient les conflits entre transactions concurrentes, préservant la confidentialité des données clients.
      • La Durabilité assure la persistance des données, même en cas de perturbations, assurant la traçabilité et l'historique des transactions bancaires.

    1.2. Acquisition et stockage des données

    1.2.3.2 Types de bases de données

    1.2. Acquisition et stockage des données

    1.2.3.3. NoSQL

    Théorème CAP1

    Il est impossible sur un système informatique de calcul distribué de garantir en même temps (c'est-à-dire de manière synchrone) les trois contraintes suivantes

    1.2. Acquisition et stockage des données

    1.2.3.3. NoSQL

    Compromis sur la cohérence

    • Les systèmes NoSQL peuvent faire des compromis sur la cohérence des données en faveur d'autres priorités.
    • La cohérence forte est souvent sacrifiée au profit d'une meilleure disponibilité et d'une réponse plus rapide.

    Priorité à la disponibilité et à la rapidité

    • NoSQL donne la priorité à la disponibilité des données et à la rapidité des opérations.
    • S'adapte particulièrement bien aux applications nécessitant une évolutivité horizontale et des performances élevées.

    1.2. Acquisition et stockage des données

    1.2.3.3. NoSQL : BASE

    Les bases de données NoSQL adoptent le modèle BASE en mettant l'accent sur la disponibilité immédiate des données et des opérations, même au détriment d'une cohérence instantanée.

    1.2. Acquisition et stockage des données

    1.2.3.3. Types de bases de données NoSQL

    1.2. Acquisition et stockage des données

    1.2.3.3. Types de bases de données NoSQL

    1.2. Acquisition et stockage des données

    1.2.3.3. Types de bases de données NoSQL

    1.2. Acquisition et stockage des données

    Base de données relationnelles

    Dans une base de données relationnelle, un tableau est une entité qui stocke des données organisées en lignes et colonnes. Les colonnes (Attributs) Représentent les différents types d'informations que la table stocke. Chaque colonne a un nom unique et un type de données spécifique (texte, nombre, date, etc.). Chaque ligne (tuple) représente un enregistrement individuel dans la table. Les lignes contiennent des données spécifiques, conformes à la structure définie par les colonnes. La clé primaire est une colonne spécifique ou une combinaison de colonnes utilisée pour identifier de manière unique chaque ligne dans la table.

    1.2. Acquisition et stockage des données

    Exemple: un tableau dans une base de données relationnelles

    num languageLabel year
    1 ENIAC coding system 1943
    2 ENIAC Short Code 1946
    3 Von Neumann and Goldstine graphing system 1946

    1.2. Acquisition et stockage des données

    NoSQL: base de données orientée colonnes

    Dans une base de données orientée colonnes, les données sont stockées de manière efficace en utilisant une structure orientée colonnes plutôt que des lignes. Les données sont organisées en familles de colonnes, chaque famille ayant plusieurs colonnes liées à un identifiant unique. Elle est idéale pour les situations où l'accès à un sous-ensemble spécifique de données est fréquent. Elle est performante pour les agrégations et les opérations analytiques.

    1.2. Acquisition et stockage des données

    Exemple: base de données orientée colonnes

    ENIAC coding system:1; ENIAC Short Code:2 Von Neumann and Goldstine graphing system:3
    
    1943:1; 1946:2; 1946:3
    			

    1.2. Acquisition et stockage des données

    NoSQL : base de données orientée documents

    Dans une base de données orientée documents, les données sont stockées sous forme de documents similaires à des objets JSON ou BSON. Les documents regroupent des données liées, souvent dans un format similaire à des paires clé-valeur ou des structures de données imbriquées. Elle permet une flexibilité de schéma, chaque document pouvant avoir des champs différents sans imposer une structure rigide. Elle est idéale pour les données semi-structurées ou changeantes fréquemment.

      {
        "languageLabel": "ENIAC coding system",
        "year": "1943"
      }
    			

    Exemples : MongoDB, CouchDB sont des exemples de bases de données NoSQL orientées documents.

    1.2. Acquisition et stockage des données

    Exemple: base de données orientée clé-valeur

    Dans une base de données orientée clé-valeur, les données sont stockées sous forme de paires clé-valeur. Chaque donnée est associée à une clé unique, et ces paires clé-valeur peuvent être simples ou complexes. Elle offre une flexibilité maximale en termes de structure de données. Elle donne une excellente performance pour les opérations de lecture et d'écriture simples. Elle est idéale pour les cas d'utilisation nécessitant une récupération rapide de données par clé. Elle est performante pour le stockage de données simples et non structurées.

    identifiant languageLabel,year
    p1 ENIAC coding system,1943
    p2 ENIAC Short Code,1946

    Exemples : Redis, Amazon DynamoDB sont des exemples de bases de données NoSQL orientées clé-valeur.

    1.2. Acquisition et stockage des données

    NoSQL: base de données orientée graphe

    Dans une base de données orientée graphe, les données sont représentées sous forme de nœuds, d'arêtes et de propriétés. Les nœuds représentent les entités, les arêtes décrivent les relations entre ces entités, et les propriétés fournissent des informations supplémentaires. Elle est excellente pour modéliser des relations complexes entre différents types d'entités. Elle favorise la découverte de motifs et l'analyse de réseaux. Elle est idéale pour les domaines où les relations entre les données sont cruciales, comme les réseaux sociaux et les recommandations. Elle facilite l'analyse de la connectivité et des structures complexes.

    1.2. Acquisition et stockage des données

    Exemple: base de données orientée graphe

    base de données orientée graphe

    1.3. Extraction et intégration des données

    1.3.1. Techniques d'extraction des données

    1.3. Extraction et intégration des données

    1.3.2. Interfaces d'interrogation

    1.3. Extraction et intégration des données

    1.3.3. Crawlers pour les pages web

    Les crawlers, également appelés robots d'indexation, sont des programmes qui parcourent et analysent automatiquement les pages web pour collecter des informations. Les crawlers naviguent de page en page en suivant les liens, extrayant des données pertinentes telles que le contenu, les liens hypertextes, les balises méta, etc.

    Web crawlers : naviguer dans l'ensemble en utilisant des hyperliens

    1.3. Extraction et intégration des données

    1.3.4. Interface de programmation d'applications (API)

    API (Interface de programmation)

    1.3. Extraction et intégration des données

    1.3.4. Interface de programmation d'applications (API)

    import requests
    url = "https://api.github.com/users/johnsamuelwrites"
    
    response = requests.get(url)
    print(response.json())
    

    1.4. Prétraitement des données

    1.4.1. Nettoyage de données

    Identifie et corrige les anomalies pour garantir la qualité des données

    1.4. Prétraitement des données

    1.4.1.1. Erreurs de syntaxe

    1.4. Prétraitement des données

    1.4.1.2. Erreurs sémantiques [Abedjan 2016]

    1.4. Prétraitement des données

    1.4.1.3. Erreurs de couverture

    Exemple: Pandas

    1.4. Prétraitement des données

    1.4.2.1. Traitement des erreurs syntaxiques

    1.4. Prétraitement des données

    1.4.2.1. Traitement des erreurs syntaxiques: XSD

    <xs:schema attributeFormDefault="unqualified"
          elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="root" type="rootType"/>
      <xs:complexType name="elementType">
        <xs:sequence>
          <xs:element type="xs:string" name="languageLabel"/>
          <xs:element type="xs:short" name="year"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="rootType">
        <xs:sequence>
          <xs:element type="elementType" name="element" maxOccurs="unbounded" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
    			

    1.4. Prétraitement des données

    1.4.2.2. Traitement des erreurs sémantiques

    L'élimination des doublons implique la suppression d'enregistrements redondants en utilisant des contraintes d'intégrité, comme les dépendances fonctionnelles.

    Exemple : Identifier les colonnes pertinentes qui définissent la duplication (par exemple, 'Colonne1', 'Colonne2'). Appliquer la suppression des doublons en conservant uniquement la première occurrence.

    1.4. Prétraitement des données

    1.4.2.2. Traitement des erreurs sémantiques

    num languageLabel year
    1 ENIAC coding system 1943

    \({num}\rightarrow{languageLabel}\)

    \({languageLabel}\rightarrow{year}\)

    \({num}\rightarrow{year}\)

    1.4. Prétraitement des données

    1.4.2.3. Traitement des erreurs de couverture

    1.4. Prétraitement des données

    1.4.2.4. Administrateurs et traitement des erreurs

    1.5. Transformation des données

    1.5.1 Langages de programmation

    1.6. ETL

    1.6.1. ETL (Extraction Transformation and Loading)

    1. Extraction des Données : Récupération de données depuis différentes sources, qu'elles soient internes ou externes à l'organisation.
    2. Nettoyage des Données : Identification et correction des erreurs, des incohérences et des duplications dans les données extraites.
    3. Transformation des Données : Modification des données extraites pour les rendre conformes aux besoins et aux standards de l'entrepôt de données.
    4. Chargement des Données dans les Entrepôts de Données : Intégration des données nettoyées et transformées dans l'entrepôt de données, prêtes pour l'analyse.

    1.6. ETL

    1.6.2. ETL: d'une base de données à l'autre

    Déplacer efficacement les données des sources, telles que bases de données internes/externes et services web, vers les destinations, incluant entrepôts de données d'entreprise et entrepôts web, pour faciliter l'analyse.

    1.6. ETL

    1.6.2.1. Analyse des données multidimensionnelles

    Exploration des données selon plusieurs dimensions pour une compréhension approfondie.

    Dimensions :Les aspects sous-jacents des données qui sont analysés.

    Faits : Les mesures quantitatives associées aux dimensions, fournissant les données à analyser.

    1.6. ETL

    1.6.2.1. Analyse des données multidimensionnelles

    Dimensions

    Faits

    1.6. ETL

    1.6.2.2. Modèle de données en étoile

    Le modèle de données en étoile est une architecture de base de données conçue spécifiquement pour faciliter l'analyse et le reporting dans les entrepôts de données.

    1.6. ETL

    1.6.2.2. Modèle de données en étoile

    1.6. ETL

    1.6.2.2. Modèle de données en étoile

    Modèle de données en étoile

    1.6. ETL

    1.6.2.3. Cubes ou hypercube de données

    Dans le modèle de données en étoile, les cubes de données, également appelés hypercubes, sont des structures multidimensionnelles qui permettent une analyse approfondie.

    1.6. ETL

    1.6.2.3. Cubes ou hypercube de données

    Avantages

    • Facilite une analyse multidimensionnelle approfondie.
    • Permet des requêtes ad hoc pour répondre à des questions spécifiques.
    Modèle de données en étoile

    1.6. ETL

    1.6.2.3. Cubes ou hypercube de données

    Opérations du Cube OLAP

    Cubes de Données pour le Traitement Analytique en Ligne (OLAP) : - Les cubes de données sont essentiels pour les systèmes OLAP, facilitant l'analyse multidimensionnelle.Les opérations OLAP permettent aux utilisateurs d'interagir avec les cubes pour obtenir des analyses spécifiques.

    1. Slice (Tranche) - Extraction d'une tranche d'informations le long d'une dimension spécifique.
    2. Dice (Bloc) - Extraction d'un bloc de données, une opération plus générale que le slicing, permettant de spécifier plusieurs dimensions.
    3. Roll-up (Relevé) - Le Roll-up est une opération essentielle dans le traitement analytique en ligne (OLAP) pour agréger les données vers des niveaux supérieurs d'une hiérarchie dimensionnelle.

    1.6. ETL

    1.6.2.3. Cubes ou hypercube de données

    1. Drill Up (Remonter) - Synthèse des informations en agrégeant vers des niveaux supérieurs d'une dimension.
    2. Drill Down (Descendre) - Opération inverse du drill-up, permettant d'explorer des niveaux inférieurs d'une dimension.
    3. Pivot (Pivoter) - Sélection du couple de dimensions qui formera le résultat de la requête, offrant une vue alternative.
    Modèle de données en étoile

    1.6. ETL

    1.6.2.4. Modèle de données en flocon

    Le modèle de données en flocon est une variante du modèle en étoile, conçu pour réduire la redondance en normalisant les dimensions.

    1.6. ETL

    1.6.2.4. Modèle de données en flocon

    Avantages

    Modèle de données en flocon

    1.7. Analyse des données

    Activités d'analyse des données

    1. Récupération des Valeurs : Extraire les données nécessaires à partir de sources diverses pour l'analyse.
    2. Filtrer : Sélectionner des données spécifiques en fonction de critères prédéfinis pour réduire le volume de données.
    3. Calculer les Valeurs Dérivées : Créer de nouvelles variables en effectuant des calculs basés sur les valeurs existantes.
    4. Trouver l'Extremum : Identifier les valeurs maximales et minimales dans un ensemble de données.
    5. Trier : Organiser les données dans un ordre spécifique, souvent croissant ou décroissant.
    6. Déterminer la Limite : Établir des seuils ou des limites pour définir des critères spécifiques.

    1.7. Analyse des données

    Activités d'analyse des données

    1. Caractériser la Distribution : Analyser la répartition des valeurs dans un ensemble de données à l'aide de mesures statistiques.
    2. Trouver des Anomalies : Identifier des valeurs aberrantes ou des schémas inhabituels dans les données.
    3. Cluster : Regrouper les données similaires pour découvrir des structures ou des tendances.
    4. Corréler : Examiner les relations entre différentes variables pour déterminer les liens.
    5. Contextualisation : Comprendre les données dans leur contexte global pour une interprétation plus approfondie.
    1. https://en.wikipedia.org/wiki/Data_analysis

    1.8. Visualisation des données

    1.8.1.Les variables visuelles [Jacques Bertin]

    Jacques Bertin identifie différentes variables visuelles cruciales pour la représentation graphique des données.

    1. Position : La position spatiale des éléments sur le graphique.
    2. Taille : La taille relative des éléments pour représenter une mesure.
    3. Forme : La forme distinctive des éléments pour catégoriser ou différencier.
    4. Valeur : La valeur numérique des éléments, souvent représentée par la longueur d'une barre ou le placement le long d'un axe.
    5. Couleur : L'utilisation de couleurs pour représenter des informations ou des catégories.
    6. Orientation : L'angle ou l'inclinaison des éléments pour indiquer une direction ou une tendance.
    7. Texture : La variation de surface ou de motif pour ajouter des informations tactiles à la visualisation.

    1.8. Visualisation des données

    1.8.2. Visualisation des données : Exemples

    1. Séries Temporelles : Représentation graphique de données en fonction du temps pour analyser les tendances et les fluctuations.
    2. Classement : Affichage ordonné des éléments en fonction d'une mesure spécifique pour identifier les leaders ou les suiveurs.
    3. Partie à l'Ensemble : Illustration de la contribution relative des parties à un ensemble total.
    4. Écart : Représentation graphique des différences entre des valeurs, souvent utilisée pour identifier des variations significatives.
    5. Triage : Organisation des données pour révéler des modèles ou des structures spécifiques.
    6. Distribution des Fréquences : Visualisation de la répartition des valeurs dans un ensemble de données, souvent à l'aide d'histogrammes.

    1.8. Visualisation des données

    1.8.2. Visualisation des données : Exemples

    1. Corrélation : Analyse visuelle des relations entre deux variables pour identifier des tendances ou des dépendances.
    2. Comparaison Nominale : Visualisation des différences entre catégories sans mesure quantitative.
    3. Géographique ou Géospatial : Utilisation de cartes pour représenter des données en fonction de leur emplacement géographique.

    Référence: https://en.wikipedia.org/wiki/Data_visualization

    1.8. Visualisation des données

    1.8.2. Visualisation des données: Exemples

    1. Diagramme en Bâtons (Comparaison Nominale) : Utilisé pour comparer des catégories sans mesure quantitative, représentant des données discrètes.
    2. Diagramme Circulaire (Partie à l'Ensemble) : Illustration de la contribution relative des parties à un ensemble total, utile pour représenter des pourcentages.
    3. Histogramme (Distribution des Fréquences) : Visualisation graphique de la répartition des valeurs dans un ensemble de données, utilisé pour comprendre la distribution.
    4. Nuage de Points (Corrélation) : Représentation de la corrélation entre deux variables, chaque point représentant une paire de valeurs.
    5. Réseaux : Illustration des relations complexes entre entités interconnectées.

    1.8. Visualisation des données

    1.8.2. Visualisation des données: Exemples

    1. Graphique Linéaire (Séries Temporelles) : Représentation des données en fonction du temps pour analyser les tendances et les variations.
    2. Arborescence : Visualisation hiérarchique des relations entre différentes catégories ou niveaux.
    3. Diagramme de Gantt : Utilisé pour planifier et suivre l'avancement des tâches sur une échelle de temps.
    4. Carte Thermique/Heatmap : Utilisation de couleurs pour représenter des données sur une matrice, mettant en évidence les zones de concentration.
    1. https://fr.wikipedia.org/wiki/Repr%C3%A9sentation_graphique_de_donn%C3%A9es

    1.8. Visualisation des données

    Diagramme circulaire

    1.8. Visualisation des données

    Les paradigmes du langage de programmation (diagramme à bulles)

    1.8. Visualisation des données

    Historique des langages de programmation (Histropedia)

    1.8. Visualisation des données

    Diagramme d'influence des langages de programmation

    1.8. Visualisation des données

    k couleurs prédominantes

    1.8. Visualisation des données

    Diagrammes de dispersion RGB (Comparaison)

    Références

    Articles de recherche

    Références

    Wikipedia

    Références

    Couleurs

    Images