Data Science

John Samuel
CPE Lyon

Année: 2023-2024
Email: john.samuel@cpe.fr

Creative Commons License

Objectifs

Objectifs

  1. Panorama du numérique
  2. Usine 4.0
  3. Codage des données en chimie
  4. Acquisition et stockage de données

1. Panorama du Numérique

Cadran solaire

  • Mesure du temps : Utilisé pour indiquer l'heure en fonction de la position du soleil et suivre des changements saisonniers et des équinoxes.
  • Principe de base : Ombre projetée par un style sur une surface graduée.

Les cadrans solaires témoignent de l'ingéniosité scientifique de l'antiquité. Ils ont influencé le développement ultérieur des instruments astronomiques.

Ancien cadran solaire egyptien (1500 av. J.-C. )

1. Panorama du Numérique

Système de numération

1. Panorama du Numérique

Système de numération

Exemples de Systèmes Anciens

1. Panorama du Numérique

Système de numération

Applications

Transition vers les systèmes modernes

1. Panorama du Numérique

Machine à écrire
Machine à écrire électronique

1. Panorama du Numérique

Machine à Écrire

Machine à écrire électronique

Automatisation Partielle : Réduction des tâches manuelles dans la saisie de données.

1. Panorama du Numérique

Machine à calculer de Blaise Pascal à six chiffres
Machine à différences de Charles Babbage

1. Panorama du Numérique

Machine à calculer de Blaise Pascal

Machine à Différences de Charles Babbage

Automatisation des calculs : Réduction du temps nécessaire pour effectuer des calculs complexes.

Avancées scientifiques : Facilitation de la recherche scientifique grâce à des outils de calcul plus efficaces.

1. Panorama du Numérique

L'ENIAC (photo prise entre 1947 et 1955).
IBM PC 5150 en 1983

1. Panorama du Numérique

L'ENIAC (1947-1955)

IBM PC 5150 (1983) :

Démocratisation de l'informatique : Transition vers l'accessibilité et l'utilisation généralisée des ordinateurs.

Précurseurs des technologies actuelles : Fondement des systèmes informatiques modernes.

1. Panorama du Numérique

  • Développement : Introduction dans les années 1970.
  • Technologie d'Impact : Utilisation de têtes d'impression à impact pour former des caractères.
  • Polyvalence : Adaptée à l'impression de documents et de rapports.

Sortie de données : Facilitation de la visualisation des informations traitées.

Usage commercial : Adoption répandue dans les environnements professionnels.

Imprimante matricielle (Panasonic)

1. Panorama du Numérique

Disquettes 8 pouces, 5,25 pouces et 3,5 pouces
L’intérieur d’un disque dur

1. Panorama du Numérique

Disquettes (8 Pouces, 5,25 Pouces et 3,5 Pouces)

Disque Dur

Stockage portable et massif: Disquettes pour la portabilité des données et le stockage volumineux et permanent.

1. Panorama du Numérique

Serveurs : Impact sur les méthodes de stockage de données et contribution à la gestion centralisée des données.

  • Origines : Émergence des serveurs dans les débuts de l'informatique.
  • Centralisation des ressources : Utilisation des serveurs pour centraliser le stockage et la gestion des données.
  • Connectivité réseau : Intégration des serveurs dans des environnements réseau.
Stockage: Serveurs

1. Panorama du Numérique

Évolution des technologies serveur

  • Améliorations de la capacité : Augmentation de la capacité de stockage des serveurs au fil du temps.
  • Virtualisation : Introduction de technologies de virtualisation pour une utilisation plus efficace des ressources.
  • Stockage cloud : Transition vers des solutions de stockage basées sur le cloud.

Impact

  • Centralisation et partage : Facilitation de la centralisation et du partage des données.
  • Sécurité et redondance : Utilisation des serveurs pour assurer la sécurité et la redondance des données.
  • Précurseurs des infrastructures de données modernes : Fondement des systèmes de stockage actuels.

1. Panorama du Numérique

Croissance de la capacité mondiale de stockage de données et informations

1. Panorama du Numérique

Croissance des Capacités de Stockage

Technologies de Stockage Émergentes

1. Panorama du Numérique

Systèmes

Systèmes distribués (a,b)

  • Origines : Développement des concepts de systèmes distribués dans les années 1960.
  • Caractéristiques : Répartition des tâches sur des machines connectées en réseau.
  • Avancements Modernes : Utilisation dans les applications cloud et les réseaux distribués contemporains.
Calcul distribué
https://commons.wikimedia.org/wiki/File:Distributed-parallel.svg

1. Panorama du Numérique

Systèmes

Systèmes parallèles (c)

  • Développement : Émergence des systèmes parallèles pour exécuter des tâches simultanées.
  • Traitement Parallèle : Utilisation de multiples processeurs pour accélérer le traitement.
  • Applications Actuelles : Intégration dans les supercalculateurs et les environnements informatiques intensifs.
Calcul distribué
https://commons.wikimedia.org/wiki/File:Distributed-parallel.svg

1. Panorama du Numérique

Calcul distribué

Les projets suivants ont utilisé la puissance de traitement des ordinateurs personnels pour différents objectifs

1. Panorama du Numérique

Tendances de recherche Google (novembre 2020): Big Data

1. Panorama du Numérique

Tendances de recherche Google (novembre 2020): Big Data et Artificial Intelligence

1. Panorama du Numérique

Tendances de recherche Google (novembre 2020): Big Data, Artificial Intelligence et Blockchain

1.1 Architecture des ordinateurs: Réseau

Pair à pair(P2P)
Architecture client-serveur

2.1 Le codage des données en chimie

3. Usine 4.0

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

3. Usine 4.0

Industrie 4.0

3.1. Analyse et Visualisation des données

Analyse d'images en histologie
Oculométrie (Eye-tracking)
Enjeux du réchauffement climatique

3.1. Analyse des données en temps-réel

Détection d'objet
Un robot industriel Motoman SDA10
Voiture autonome

3.2. Usine 4.0: Capteurs

Capteur infrarouge
Capteur de lumière

3.3. Usine 4.0: Capteurs

Capteur de température

3.4. Usine 4.0: Supervision

Vidéo de surveillance
Detection des personnes

3.5. Usine 4.0: IoT

Internet des objets

3.6. Usine 4.0: Données

Données

3.5 Usine 4.0: Réalité augmentée

Place de la Bourse à Bordeaux vue par le dispositif Imayana
Jeu de vidéo

4. Les phases macroscopiques

  1. Acquisition
  2. Extraction
  3. Nettoyage
  4. Stockage
  5. Analyse
  6. Visualisation

4.1 L'acquisition de données

4.1 L'acquisition de données

Les super marchés et le shopping [Dennis 2001]

Caissier : Acteur principal dans l'acquisition de données au point de vente.

  • Enregistre les détails des transactions d'achats, y compris les articles, les quantités, et les prix.
  • Les données collectées sont cruciales pour l'analyse des comportements d'achat et la gestion des stocks.
  • Caissier (Achats)

    4.1 L'acquisition de données

    Les achats en ligne [Chen, Daqing 2012]

    Acquisition de données dans le domaine de l'e-commerce : Enregistrement des transactions, détails des produits, informations de paiement, et données sur les clients.

    Les achats en ligne

    4.1 L'acquisition de données

    Les transactions financières [Kovalerchuk 2005]

    Guichet Automatique Bancaire: point d'acquisition de données cruciales dans le secteur financier.

    Guichet Automatique Bancaire (Transactions financières)[Kovalerchuk 2005]

    4.1 L'acquisition de données

    Les capteurs [Shen Bin 2010]

    Méthode d'acquisition de données par l'utilisation de capteurs de température.

    Capteurs (température)

    4.1 L'acquisition de données

    Les vidéos [Brax 2008]

    Méthode d'acquisition de données à travers l'utilisation de caméras vidéo : enregistrement visuel continu de scènes spécifiques.

    Caméras de surveillance

    4.1 L'acquisition de données

    Les médias et réseaux sociaux [Aggarwal 2011]

    Acquisition de données à partir des médias et des plateformes de réseaux sociaux : collecte d'informations provenant de publications, commentaires, partages, et interactions en ligne.

    Réseautage social [Aggarwal 2011]

    4.1 L'acquisition de données

    Production participative [Gao 2011]

    Méthode d'acquisition de données impliquant la contribution du grand public : collecte de données provenant d'un grand nombre de participants en ligne. Les données incluent des idées, des avis, des contributions créatives, reflétant la diversité des participants.

    Production participative (Crowdsourcing)

    4.1 L'acquisition de données

    Production participative [Nakayama 2007]

    Exemple de production participative dans le domaine des données : contributions massives à des projets tels que Wikipédia, Wikibooks, et autres.

    Production collaborative [Nakayama 2007]

    4.1 L'acquisition de données

    Enregistrement de données [Alspaugh 2014]

    Utilisation de la commande tail pour extraire des informations du fichier d'accès Apache. Exemple de collecte de données en temps réel à partir des journaux d'accès. Les données enregistrées proviennent des requêtes HTTP au serveur Apache.

                         $ tail /var/log/apache2/access.log
    127.0.0.1 - - [14/Nov/2018:14:46:49 +0100] "GET / HTTP/1.1" 200 3477 "-"
             "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
    127.0.0.1 - - [14/Nov/2018:14:46:49 +0100] "GET /icons/ubuntu-logo.png HTTP/1.1" 304 180 "http://localhost/"
             "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
    127.0.0.1 - - [14/Nov/2018:14:46:49 +0100] "GET /favicon.ico HTTP/1.1" 404 294 "-"
             "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"
                       

    4.1 L'acquisition de données

    Enregistrement de données [Alspaugh 2014]

    Exemple de collecte de données en temps réel à partir des journaux d'accès. Les données enregistrées proviennent des erreurs et des anomalies détectées par le serveur Apache.

                         $ tail /var/log/apache2/error.log
    
    [Wed Nov 14 09:53:39.563044 2018] [mpm_prefork:notice] [pid 849]
             AH00163: Apache/2.4.29 (Ubuntu) configured -- resuming normal operations
    [Wed Nov 14 09:53:39.563066 2018] [core:notice] [pid 849]
             AH00094: Command line: '/usr/sbin/apache2'
    [Wed Nov 14 11:35:35.060638 2018] [mpm_prefork:notice] [pid 849]
             AH00169: caught SIGTERM, shutting down
                       

    4.1 L'acquisition de données

    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
    Different types of data acquistion techniques
    1. https://en.wikipedia.org/wiki/List_of_sensors

    4.2 L'integration et l'extraction de données

    Robot d'indexation
    from urllib import request
    
    response = request.urlopen("https://en.wikipedia.org/wiki/Main_Page")
    html = response.read()
    

    4.2 L'integration et l'extraction de données

    Robot d'indexation
    from urllib import request
    from lxml import html
    
    document = html.parse(request.urlopen("https://en.wikipedia.org/wiki/Main_Page"))
    for link in document.iter("a"):
        if(link.get("href") is not None):
            print(link.base_url+link.get("href"))
    

    4.2 L'integration et l'extraction de données

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

    4.2 L'integration et l'extraction de données

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

    4.2 L'integration et l'extraction de données

    Données structurées
    from SPARQLWrapper import SPARQLWrapper, JSON
    
    sparql = SPARQLWrapper("http://query.wikidata.org/sparql")
    sparql.setQuery("""
    SELECT ?item WHERE {
      ?item wdt:P31 wd:Q9143;
    }
    LIMIT 10
    """)
    sparql.setReturnFormat(JSON)
    results = sparql.query().convert()
    
    for result in results["results"]["bindings"]:
        print(result)
    

    4.2 L'integration et l'extraction de données

    Web des données

    4.2 L'integration et l'extraction de données

    Données archivées et historiques

    4.3 Nettoyage de données

    Nettoyage de données

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

    4.3 Nettoyage de données

    4.3 Nettoyage de données

    Erreurs de syntaxe

    4.3 Nettoyage de données

    Erreurs sémantiques [Abedjan 2016]

    4.3 Nettoyage de données

    Erreurs de couverture

    Exemple: Pandas

    4.3 Nettoyage de données

    Traitement des erreurs syntaxiques

    4.3 Nettoyage de données

    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>
    			

    4.3 Nettoyage de données

    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.

    num languageLabel year
    1 ENIAC coding system 1943

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

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

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

    4.3 Nettoyage de données

    Traitement des erreurs de couverture

    4.3 Nettoyage de données

    Administrateurs et traitement des erreurs

    4.4. Stockage de données

    1. Fichiers
    2. Blockchain
    3. Base de données (Rélationnels et NoSQL)

    4.4. Stockage de données

    Formats de stockage de données

    4.4. Stockage de données

    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"
      }
    ]			

    4.4. Stockage de données

    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>
    			

    4.4. Stockage de données

    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
    			

    4.4. Stockage de données

    Types de stockage des données

    Unstructured vs. Structured vs. Semi-structured

    4.4. Stockage de données

    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

    4.4 Stockage de données

    Blockchain (Metadonnées)

    4.4 Stockage de données

    Blockchain (Blocs de Bitcoin)

    4.4 Stockage de données

    4.5 Analyse des données

    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

    4.5 Analyse des données

    Analyses de données (Tableur)

    4.5 Analyse des données: images

    Analyse d'images en histologie

    4.5 Analyse des données: Robotique industrielle

    Un robot industriel Motoman SDA10, robot d'assemblage

    4.5 Analyse des données: Véhicule autonome

    Voiture autonome dont on distingue certains capteurs sur le toit.

    4.5 Analyse des données: Détection d'objet

    Détection d'objet
    Detection des personnes

    4.6. Visualisation des données

    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.

    4.6. Visualisation des données

    Visualisation des données

    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.

    4.6. Visualisation des données

    Visualisation des données

    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

    4.6. Visualisation des données

    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.

    4.6. Visualisation des données

    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

    4.6. Visualisation des données

    Diagramme circulaire

    4.6. Visualisation des données

    Les paradigmes du langage de programmation (diagramme à bulles)

    4.6. Visualisation des données

    Historique des langages de programmation (Histropedia)

    4.6. Visualisation des données

    Diagramme d'influence des langages de programmation

    4.6. Visualisation des données

    k couleurs prédominantes

    4.6. Visualisation des données

    Diagrammes de dispersion RGB (Comparaison)

    Références

    Articles de recherche

    Références

    Articles de recherche

    Références

    Articles de recherche

    Références

    Articles de recherche

    Références

    Articles de recherche

    Références

    Articles de recherche

    Références

    Articles de recherche

    References

    References

    Colors

    Images