Data Mining

John Samuel
CPE Lyon

Year: 2022-2023
Email: john(dot)samuel(at)cpe(dot)fr

Creative Commons License

Data Mining

Objectifs

1.1. Cycle de vie des données

Cycle de vie des données

  1. Données
  2. Connaissances
  3. Perspectives
  4. Actions
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

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

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

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

Formats de stockage de données

1.2. Acquisition et stockage des données

Formats de stockage de données: JSON

[
  {
    "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

Formats de stockage de données: XML

<?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

Formats de stockage de données: CSV

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

1.2. Acquisition et stockage des données

1.2.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

1.2. Acquisition et stockage des données

1.2.3.3. NoSQL

BASE

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

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

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

Exemple: base de données orientée documents

  {
    "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

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

identifiant languageLabel,year
p1 ENIAC coding system,1943
p2 ENIAC Short Code,1946
p3 Von Neumann and Goldstine graphing system,1946

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

3.3. Crawlers pour les pages web

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

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

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
  2. Nettoyage des données
  3. Transformation des données
  4. Chargement des données dans les entrepôts de données

1.6. ETL

1.6.2.1. Analyse des données multidimensionnelles

1.6. ETL

1.6.2.1. Analyse des données multidimensionnelles

1.6. ETL

1.6.2.3. 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

Modèle de données en étoile

1.6. ETL

1.6.2.3. Cubes ou hypercube de données

1.6. ETL

1.6.2.4. Modèle de données en flocon

1.6. ETL

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

1.7. Analyse des données

Activités d'analyse des données

  1. Récupération des valeurs
  2. Filtrer
  3. Calculer les valeurs dérivées
  4. Trouver l'extremum
  5. Trier
  6. Déterminer la limite
  7. Caractériser la distribution
  8. Trouver des anomalies
  9. Cluster
  10. Corréler
  11. Contextualisation
  1. https://en.wikipedia.org/wiki/Data_analysis

1.8. Visualisation des données

8.1.Les variables visuelles [Jacques Bertin]

  1. position
  2. taille
  3. forme
  4. valeur
  5. couleur
  6. orientation
  7. texture
  1. https://en.wikipedia.org/wiki/Visual_variable

1.8. Visualisation des données

8.1. Visualisation des données

  1. séries temporelles
  2. classement
  3. partie à l'ensemble
  4. écart
  5. triage
  6. distribution des fréquences
  7. corrélation
  8. comparaison nominale
  9. géographique ou géospatial
  1. 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)
  2. Diagramme circulaire (partie à l'ensemble)
  3. Histogramme (distribution des fréquences)
  4. Nuage de points (corrélation)
  5. Réseaux
  6. Graphique linéaire (séries temporelles)
  7. Arborescence
  8. Diagramme de Gantt
  9. Carte thermique/heatmap
  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