Vous êtes sur la page 1sur 88

Informatique et gestion des données

Dr. Komi NAGBE

1
Université de Lomé, Boulevard Gnassingbé Eyadema 01 BP 1515 Lomé -TOGO
2
École Polytechnique de Lomé

Spécialité de la formation : Master Informatique option Intelligence Artificielle et Big Data

Semestre : Mousson 2023

26 juin 2023
Les objectifs du cours
Introduction générale des données et du Big Data
Collecte, transformation et normalisation des données
Introduction à l’analyse de données

Introduction I
L’invention de l’informatique et de l’internet ont permis aux humains de collecter et
d’entreposer des données dans divers domaines afin de les exploiter pour répondre aux objectifs
économiques, sociaux, environnementaux etc...
La collection des données est un processus de réunification des informations homogènes ou non
dans un domaine afin d’extraire des connaissances de ces informations et résoudre un problème
précis posé.

Collecte de données Google


En 2009 par exemple, à la suite de l’apparition du virus H1N1, des millions d’américains ont
tapé des mots clés dans le moteur de recherche de Google pour y trouver des informations sur
ce virus. Grâce à ces recherches, Google a pu collecter des informations qui ont pu aider le CDC
(Center for Deseases Control and prevention) à connaître les zones précises où le virus sévissait.
Dans ce cas précis de collecte de données, la connaissance extraite ici c’est l’identification des
zones où le virus sévit. Sans collecte de données, cette information est difficile à connaître.

Dans le cas précis de google, après la collecte des données, il y a l’étape du triage ou encore du
nettoyage des données consistant à ne tenir compte que des informations utiles au problème
posé et rejeter les informations inutiles.

Après le triage des données, il y a l’étape du traitement ou modélisation des données consistant
à identifier un modèle mathématique qui permet de confirmer qu’une zone des États-Unis est
atteinte par cette maladie. Il est important de trouver un modèle mathématique pour cette

2 / 92
Les objectifs du cours
Introduction générale des données et du Big Data
Collecte, transformation et normalisation des données
Introduction à l’analyse de données

Introduction II

tâche parce que les recherches peuvent venir de toutes les zones sans que ces zones soient
réellement atteintes par ce virus. C’est l’étape de la modélisation.

Après la collecte des données, suivie du nettoyage et de la modélisation, il reste une dernière
étape qui est la communication des résultats exploitables par les décideurs (les agents de santé,
les politiques etc..). La communication des données est une étape très importante dans le cycle
de vie d’un projet en big data ou en data science. Cette étape consiste à présenter des tableaux
ou figures destinés aux décideurs pour leurs compréhensions du phénomène étudié.

Collecte de données chez un supermarché


L’activité principale d’un supermarché consiste à s’approvisionner et à revendre à ses clients les
produits dont les clients ont besoin. Pour assurer la bonne comptabilité pour cette activité, les
sociétés de grandes distributions organisent et mettent en place des systèmes de collecte de
données sur tous les aspects de leurs activités. Le système de collecte de données dans ce cas
suit un processus prédéfini mettant en œuvre les techniques avancées de collecte manuelles ou
automatiques de ces données. Le volume de données gérées par ses sociétés est tellement
volumineuses ( de l’ordre de terabyte) que parfois ses sociétés font appel à des sociétés
spécialisés dans le traitement des données pour les aider à mieux comprendre et anticiper leurs
activités à travers des modèles de machine learning ou de visualisation de données.

3 / 92
Les objectifs du cours
Introduction générale des données et du Big Data
Collecte, transformation et normalisation des données
Introduction à l’analyse de données

Plan de la présentation

1 Les objectifs du cours

2 Introduction générale des données et du Big Data


C’est quoi une donnée ?
Les différents types de données
Caractériser une donnée
Définition de big data

3 Collecte, transformation et normalisation des données


Bases de données relationnelles
Collecter les données à travers internet
Extraction, transformation et stockage de données

4 Introduction à l’analyse de données


Introduction
Rappels des outils mathématiques
Algèbre linéaire et bilinéaire
Outils de probabilité
Analyse descriptive des données
Introduction au machine learning
Problématique de prévision : la régression linéaire
Modèle linéaire gaussien
Alerting

4 / 92
Les objectifs du cours
Introduction générale des données et du Big Data
Collecte, transformation et normalisation des données
Introduction à l’analyse de données

Les objectifs du cours Informatique et Gestion des données

5 / 92
Les objectifs du cours
Introduction générale des données et du Big Data
Collecte, transformation et normalisation des données
Introduction à l’analyse de données

Maîtriser la gouvernance des données dans une entreprise

DATA COLLECTION
•Data architecture
•Data Basis
•API
•Server
•Data security

DATA
COMMUNICATION DATA CLEANING
•KPI
•ETL
•Decisions
•Spark
•Results sharings
•Report

DATA
DATA VISUALIZATION
•Tableau DATA STORAGE
•PowerBI •Mysql
•Excel •PostgreSQL
•Dashbord •Hadoop
•NoSQL
•Files

DATA MODELLING
•AI
•Predictive analytics
•Time series forecasting
•Multivariate analysis
•Text mining
•Large Language modelling

6 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Introduction générale des données et du Big Data

7 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

C’est quoi une donnée ?

Définition générale d’une donnée


Dans un contexte général, une donnée est une information collectée sous forme numérique, de
texte, d’image ou du son sur un objet, un individu ou sur un domaine d’intérêt pour une société
ou une organisation.

Définition d’une donnée dans un cadre de Système de Gestion de Bases de Données (SGBD)
Dans le cadre de SGBD , une donnée est une information inscrite dans une base de données en
vue de son exploitation ultérieure. Dans ce contexte, les données sont organisées par colonnes
dans les tables de données, elles mêmes stockées dans une base de données.

Définition d’une donnée dans un cadre mathématique


Dans le domaine de la science de données, une donnée est en général représentée par ce que
l’on désigne par variable ou attribut.
Soit X une variable aléatoire définie sur un espace X .
En mathématique, une donnée est une réalisation xi de la variable X avec i ∈ N. i désigne le
nombre d’individus ou d’objets sur lesquels la donnée a été collectée. Les modèles de machine
learning manipulent les objets xi pour estimer leur fonction de coût (on reviendra là-dessus).

8 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Exemples de données
1- Un ingénieur

ID Nom Prénom Age Diplôme Salaire Moyenne Bac Moyenne BEPC .....

2- Gestion d'un supermarché

Client Adresse Date d'achat Article Prix Quantité Remise (%) .....
ID (FCFA)

9 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Exemples de données

3- Gestion d'une bibliothèque

ID de Formation Niveau Titre du livre Date d'emprunt Date retour .....


l'étudiant

4- Traitement de texte: définition de data science

Wikipedia: <<Data science is an interdisciplinary academic field that uses statistics,


scientific computing, scientific methods, processes, algorithms and systems to extract or
extrapolate knowledge and insights from noisy, structured, and unstructured data.>>

Amazone: <<Data science is the study of data to extract meaningful insights for business.
It is a multidisciplinary approach that combines principles and practices.>>
10 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Les différents types de données I

Le domaine de la science des données a été confronté aux techniques à utiliser pour traiter
certaines informations collectées sur différents secteurs d’activités. Pour harmoniser ces
techniques selon les informations collectées, il a été défini les types de données. Grâce à cette
définition, on distingue ces types de données :

Les données quantitatives


Les données quantitatives sont des informations mesurables ou comptables que l’on peut
collecter sur un object, un être vivant, un processus ou tout autre domaine d’intérêt.

Comme exemple de donnée quantitative, on peut citer l’âge d’une personne qui se compte à
travers le nombre d’années. La taille d’une personne est une donnée quantitative qui se mesure
par le mètre.
Pour reconnaître une donnée quantitative, il faut se demander si cette donnée peut être calculée
à travers les fonctions mathématiques classiques comme la moyenne, l’addition et la
soustraction. Si ces calculs basiques ne sont pas applicables sur cette donnée, il faut l’exclure
dans la classe des données quantitatives.
Les données quantitatives peuvent être issues des observations, peuvent être générées par des
simulations mathématiques et peuvent être également crées.
Pour construire des modèles mathématiques sur les données quantitatives, il faut utilise les
méthodes quantitatives qui se résument généralement par l’estimation d’une fonction
mathématique.

11 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Les différents types de données II

Les données qualitatives


Une donnée qualitative est une donnée non mesurable qui ne peut être représentée que sous
forme verbale ou narrative et dont les valeurs ou modalités sont finies sur le domaine de l’étude.

Soit Y une variable aléatoire qualitative décrivant une population. Le domaine Dom(Y ) est
défini par K modalités ak avec k = 1 : K où K ∈ N. On note dans ce cas
Dom(Y ) = {ak ; k = 1 : K , K ∈ N}.
Une donnée qualitative est un texte ou mot qualifiant quelque chose. Il est impossible
d’appliquer à cette donnée une fonction mathématique numérique sauf dans un cadre de
récodage de cette donnée.
Comme exemple de donnée qualitative, nous pouvons citer les sept (7) jours de la semaine, les
12 mois de l’année, le sexe d’un individu, la couleur d’un object, etc...
On a deux catégories de données qualitatives : les données binomiale appelées encore processus
de Bernoulli et les données multinomiales. Les données binomiales ont deux modalités et les
données multinomiales ont plusieurs modalités. Dans le domaine de la science de données, les
méthodes de traitement des données binomiales sont généralisées pour s’appliquer aux données
multinomiales.
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Les différents types de données III

Les données texte


Comme le nom l’indique, ces données sont des textes longs ne pouvant pas être classés dans la
famille des données qualitatives. Ces données ne disposent pas de modalités clairement identifiés
et comptables. Pour traiter ces données, on utilise les techniques avancées comme le text
mining et le LLM (Large Language Model) qui est la base des dernières avancées d’intelligence
artificielle comme ChatGPT.
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Caractéristiques d’une donnée


Carte d’identification d’une donnée

Table 1 – Identification d’une donnée

Caractéristiques Description
de la donnée
Nom Une donnée doit avoir un nom qui permet de la distinguer des autres données dans une table ou
dans un base de données.
Type Il faut clairement définir le type de donnée que l’on cherche à traiter. Est-ce une donnée numérique
(mesurable), une donnée de comptage, une donnée catégorielle (donnée qualitative) ou une donnée
texte ? Les systèmes de gestion de bases de données sont conçus de telle façon qu’il est obligatoire
de préciser les types de données avant de pouvoir stocker ces données. De même, en machine
learning, il faut toujours préciser les types de données que l’on cherche à modéliser.
Domaine des Il faut toujours identifier le domaine dans lequel se situent les valeurs de la donnée que l’on traite.
valeurs Pour une donnée quantitative par exemple, le domaine peut être un intervalle ou tout l’ensemble
R ou N. Une personne en théorie ne peut pas vivre au delà de 150 ans : ceci signifie que pour la
donnée âge le domaine des valeurs peut être l’intervalle [0; 150].
L’espace disque Quand on parle de l’espace disque c’est le nombre de bit ou d’octet sur lequel la donnée va
être stocké. Puisque il est difficile de déterminer cela au préalable, on utilise la méthode de la
longueur de la donnée. L’âge par exemple est un entier qui ne peut être représenté qu’avec au
plus 3 chiffres. Pour cela dans une table de données on définira l’âge comme INT(3) ce qui signifie
interger(3). On reviendra sur cela dans la suite de ce cours.
Calculs Il est toujours nécessaire d’identifier les types de calculs possibles à appliquer sur cette donnée.

14 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Qu’est-ce un big data ? I

Définition du concept de big data


Dans le domaine du système de gestion des données, le big data est un concept définissant un
ensemble de données volumineuses (de l’ordre de terabyte) constituées de plusieurs millions de
lignes et plusieurs centaines de colonnes nécessitant des technologies avancées pour leur
exploitation.
Il y a quelques années, les données générées par les entreprises et les organisations sont de
l’ordre de quelque milliers de lignes et quelques dizaines de colonnes. Avec l’utilisation de plus
en plus croissante de l’internet et l’archivage systématique des données dans les entreprises, le
volume de données stockées dans les bases de données a augmenté de manière exponentielle.
Dans ce contexte, les bases de données traditionnelles telles les bases de données relationnelles,
les entrepôts de données et la limite de mémoire RAM des ordinateurs ne suffisent plus pour
gérer ces données. C’est ainsi que le concept de big data naquit. De nouveaux outils et de
nouvelles méthodes ont été donc créés pour la circonstance pour gérer et exploiter le potentiel
du big data.

Un big data est défini parfois en 5V :


Vitesse : : parfois un big data n’est pas une donnée statique. C’est une donnée mise à jour
avec une fréquence de l’ordre de seconde et qui a besoin d’un traitement à temps réel. On
parle souvent de data streaming. Dans ce cas, on a besoin d’une bonne connections
internet pour assurer la disponibilité de la data.

15 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Qu’est-ce un big data ? II

Volume : le volume est la caractéristique principale de big data. Le nombre de ligne et de


colonnes sont si nombreuses qu’il est difficile d’utiliser les ordinateurs ordinaires pour les
traiter.
Variété : en général, un big data vient de plusieurs sources ( bases client, internet,
capteurs, domotique etc...). En plus de cela un big data est un mélange de données
numériques, textes etc... C’est un ensemble de données structurées et non structurées.
Veracité : le big data parle mieux que le small data. Avec le big data, on peut avoir
plusieurs cas qui peuvent mieux expliquer le phénomène que l’on étudier. On parle de
facilité de généralisation.
Valeur : l’objectif de collecter, entreposer et analyser les données c’est de produire de la
valeur. Ainsi, plus la donnée est grande, plus on trouve des informations utiles qui peuvent
aider à comprendre mieux les clients par exemple, à dénicher de nouvelles opportunités de
marché et surtout à faire de l’innovation.
Les outils de traitement de big data :
Hadoop
Spark
Databricks, Cloudera, ...

16 / 92
Les objectifs du cours
C’est quoi une donnée ?
Introduction générale des données et du Big Data
Les différents types de données
Collecte, transformation et normalisation des données
Caractériser une donnée
Introduction à l’analyse de données

Qu’est-ce un big data ? III

Cas d'usage de big data par les entreprises


Transport des personnes 1%
Transport des marchandises 1%
Consultation SI 3%
Energie 3%
Services de données 3%
Jeu 6%
Publicité 6%
Santé 7%
Gouvernement 7%
Commerce & supermarché 9%
Télécommunication 14%
Technologie 16%
Service financier 22%

0% 5% 10% 15% 20% 25%

17 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Collecte, transformation et normalisation des


données

18 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Introduction
Depuis 1990 les bases de données relationnelles ont été introduites de manière massive dans les
entreprises. Les bases de données sont implémentées et gérées par les systèmes de gestion de
bases de données. On compte aujourd’hui plusieurs systèmes de gestion des bases de données
comme : Oracle, MySQL, PostegreSQL, MongoDDB, etc...
Dans ce cours, nous donnerons quelques concepts de modélisation, d’implémentation des bases
de données dans un système de gestion de base de donnée. Particulièrement, nous allons nous
concentrer sur la conception et l’implémentation d’une base de donnée sous PostegreSQL. Il
faut préciser que le nombre d’heures accordées à ce cours ne nous permettra pas de voir des
concepts avancés sur les bases de données.
le système
d'information de
l'entreprise

BD1
BD2
BD3

19 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Définitions
Définition d’une base de données
Une base de données est un ensemble structuré d’informations mis à la disposition d’un
ensemble d’utilisateurs.
Le principal rôle d’une base de données c’est d’assurer le stockage et l’exploitation des données
générées dans une organisation. Pour assurer ce rôle, une base de données doit permettre :
la centralisation de l’information
l’indépendance des données et des traitements
le partage des données :
• confidentialité : le système de la base de données doit pouvoir reconnaître celui qui s’est connecté
sur le système et aussi être capable de vérifier les autorisations accordées à celui-ci sur le système
• accès concurrents : plusieurs personnes doivent avoir la possible d’accéder, de modifier ou d’y
insérer une information au même moment. Dans ce cas on parle d’accès concurrent des
transactions. Cet accès concurrent doit vérifier la propriété ACID :
* Atomicité : instructions de même types considérées comme une seule.
* Cohérence : passage d’un état cohérent à un autre état cohérent
* Isolation : assurer l’isolation des instructions entre elles
* Durabilité : une instruction de mise à jour perdure en cas de panne après la fin de la transaction.
Intégrité des données : contrainte d’intégrité
Cohérence des données : une transaction doit être soit complète ou soit incomplète. Dans
le premier cas la transaction est validée (modification de la base) et on parle de Commit.
Dans le deuxième cas la transaction est annulée et on parle de Rollback.
Sécurité des données : la sécurité des données est si importante que les bases de données
des organisations doivent être conçues de telle sorte que ce principe ne soit jamais violé.
Utilisation par les nom informaticiens : une base de donnée doit faciliter l’accès aux
données à tous acteurs dans une entreprise
20 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Architecture d’un système de bases de données relationnelles


SGBD BD

CONTRÔLE
Interface
Gestion de vues
DICTIONNAIRE
Intégrité
Autorisation d'accès

RESULTATS STATISTIQUES

TRAITEMENT DES
REQUÊTES
Optimisation DONNEES
Plan d'exécution
Contrôle d'exécution
Exécution opérateurs

INDEX

GESTION DES ACCES


PHYSIQUES
Buffers
Mécanisme d'accès
JOURNAL

SECURITE
Accès concurrents
Journalisation

ARCHITECTURE FONCTIONNELLE D'UN SGBD RELATIONNEL

21 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Schéma conceptuel d’une base de données


NIVEAUX D'ABSTRACTION DES DONNEES: Processus de conception d'une BD

SCHEMA SCHEMA SCHEMA Vues des utilisateurs:


EXTERNE 1 EXTERNE 2 EXTERNE 3  définition du besoin ou de la
problématique
 Rédaction du cahier de charge

Analyse Analyse Analyse

REEL
SCHEMA Représentation du monde réel
CONCEPTUEL  Non redondant
 Validé par des traitements

I  Contraintes du SGBD utilisé


N SCHEMA  Chemin d'accès
LOGIQUE  Performances des traitements
T  Redondances autorisées

E
R Répartition physique des données
SCHEMA  choix des unités physiques de
N PHYSIQUE stockage, taille des blocs et des fichiers
 choix des paramètres physiques de
E
stockage

22 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Modèle conceptuel entité-association d’une base de données I

Dans un SGBD quand on prend une BD, il comprend un ensemble de tables qui traduisent le
schéma conceptuel qui a été au préalable pensé. Ces tables sont des représentations physiques
des entités qui sont impliquées dans la problématique initiale exprimée par les utilisateurs des
données contenues dans la BD. Il existe un lien d’association entre ces tables.
Le modèle conceptuel des données est une description du réel au niveau conceptuel sans tenir
compte des contraintes du SGBD. Dans ce cas, le réel est décrit comme un ensemble d’entités
et d’associations entre entités. Une entité est identifiée à travers ses caractéristiques que l’on
appelle encore attributs.
En exemple, un ETUDIANT est une entité ayant comme attributs le N° d’étudiant (N°E), le
Nom, le Prénom et la date de naissance (DateNaiss).

Définition d’entité
Une entité est un élément abstrait ou concret du monde réel pourvu d’une existence propre et
représentant de l’intérêt pour le système étudié.
ETUDIANT
N°E
Une entité ETUDIANT a une représentation graphique définie par : Nom
Prénom
DateNaiss

23 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Modèle conceptuel entité-association d’une base de données II


Associations
Une association est une liaison entre une ou plusieurs entités.
En exemple, pour une entité ETUDIANT et une autre entité EPREUVE, on peut bien construire
une association PASSER entre les deux entités :

EPREUVE
ETUDIANT
CodeEpreuve
N°E 1,n 1,n
PASSER NomEpreuve
Nom CreditEpreuve
Prenom R
NbreHeureEpreuve
DateNaiss
1,1

PROPOSER

ENSEIGNANT
N°Mat 1 1,n
NomEns
PrenomEns
DateNaissEns
GradeEns

DIAGRAMME D'ENTITE ET ASSOCIATION

24 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Schéma logique d’une base de données


Une fois que l’on est arrivé à définir le schéma conceptuel d’une base de donnée, pour aller à
l’étape d’implémentation de cette base de donnée dans un SBGDR, il faut créer le schéma
logique. Le schéma logique concerne l’étape où on définit comment la base de donnée sera
implémentée dans le SGBDR. Dans cette étape on pense par exemple à comment une entité et
ses associations vont être implémentées sous forme de table dans la BD. Une table peut être
définie comme un fichier où l’on enregistre les données collectées sur une entité. Pour décrire le
schéma logique d’une BD, on utilise le le modèle relationnel de données

Modèle relationnel de données


Le modèle relationnel d’une base de donnée transforme les entités en relations.
En mathématique une relation R est un ensemble d’attributs {A1 , A2 , A3 , ·, An }.
En général, on note une relation par R (A1 , A2 , A3 , ·, An ).
la relation R représente l’entité
les attributs Ai , i = 1 : n représente les attributs des entités
chaque attribut Ai prend ses valeurs dans un domaine Dom(Ai ).
L’entité ETUDIANT peut être traduite en relation par ETUDIANT(N°E, Nom,Prénom,
DateNaiss)
Dans une BD, une table représente la traduction physique d’une relation. Ainsi pour toute entité
observée dans la vie réelle, on dispose de n-upplet < V1 , V2 , V3 , ·, Vn > représentant les valeurs
des attributs Ai , i = 1 : n que contient chaque ligne de la table. On a Vi ∈ Dom(Ai ), ∀i = 1 : n.

25 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Contraintes d’intégrité d’une BD

Chaque relation doit avoir les caractéristiques suivantes :


Clé primaire : c’est un ensemble d’attributs permettant de distinguer les lignes d’une table.
Chaque attribut ou groupe d’attributs jouant le rôle de clé primaire dans une relation doit
être souligné. La clé primaire est unique dans une table.
Clé étrangère (contrainte d’intégrité référentielle) : c’est un attribut qui est clé primaire
d’une autre relation. Cet attribut traduit la logique d’association entre entités. Cet attribut
est important pour les insertions, les suppressions et les modifications de la valeur de la clé
primaire dans la table référencée.
Contrainte de domaine : les attributs doivent respecter la condition logique liée à leur
domaine de valeurs.
Cohérence entre valeurs : Contrôle portant sur les valeurs de plusieurs attributs.
Valeur NULL :dans certaines lignes une (ou plusieurs) colonne(s) peuvent ne pas contenir
de valeur. Par défaut la valeur nulle est autorisée. Ne pas confondre la valeur nulle (null) et
0, une clé primaire est forcément non nulle (lorsqu’elle est composée de plusieurs colonnes,
chaque colonne est non nulle), la contrainte non nulle sur une clé étrangère impose la saisie
des lignes de la table référencée par la clé étrangère avant la saisie d’une ligne fille dans la
table où est déclarée la clé étrangère.
Valeur par défaut :Valeur initiale de la colonne, cette valeur peut être modifiée lors de la
saisie.

26 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données I

Règle de passage d’un schéma EA à un modèle relationnel

chaque entité devient une relation


Les attributs d’une entité deviennent ceux de la relation
L’identifiant de la classe devient une clé primaire de la relation.
Exemple :ETUDIANT (N°E , Nom, Pr énom, DateNaiss).
Chaque association 1-1 est prise en compte en incluant la clé primaire d’une des relations
participantes comme clé étrangère dans l’autre relation.
Chaque association 1,n est prise en compte en incluant la clé primaire de la relation dont la
multiplicité maximale est 1 comme clé étrangère dans l’autre relation participante.
Chaque association m,n est prise en compte en créant une nouvelle relation dont la clé
primaire est la concaténation des clés primaires des relations participantes. Les attributs de
l’association sont insérés dans cette nouvelle relation si nécessaire.
Exemple :PASSER(N°E , CodeEpreuve, Note)

27 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données II

28 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données III

29 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données IV

30 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données V

31 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données VI

32 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données VII

33 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données VIII

34 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données IX

35 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données X

36 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Passage d’un schéma EA à un modèle relationnel des données XI

37 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Implémentation d’une base de données sous PostgreSQL


PostgreSQL est un SGBDR développé à l’université de Californie dans le département de
l’informatique à Berkeley.
Cette partie du cours à pour objectif de savoir créer une base de données sous PostgreSQL et de
pouvoir faire tous les types de traitement de données avec SQL.
Le SQL (Structured Query Language) est un language de programmation uniquement
compréhensible par les SGBDR et qui permet de faire les opérations de création et de
manipulation de données dans une BD.

Comment créer une base de données sous PostgreSQL


Pour créer une base de données sous PostgreSQL et manipuler les données, il faut :
1 créer une base de données par la requête suivante
CREATE DATABASE NOM_BD
2 créer des tables de la BD en utilisant le modèle relationnel des données. La requête de
création d’une table est :
CREATE TABLE NOM_TABLE(A1 TYPE [NOT NULL],
A2 TYPE [NOT NULL],
···,
An TYPE [NOT NULL]) ;.
Les Ai sont les attributs ou colonnes de NOM_TABLE.
3 insérer les données collectées sur les entités :
INNSERT INTO TABLE NOM_TABLE(A1 , A2 , A3 , ·An ) VALUES (V1 , V2 , V3 , ·, Vn ).
Les Vi sont les valeurs réelles des attributs Ai .

38 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Les différents types de données sous PostgreSQL I


Dans le processus de création d’une BD sous PostgreSQL, les types standards de données à
utiliser sont résumés dans le tableau suivant.
Table 2 – Types de données

Nom Description
Alias
bigint int8 Entier signé sur huit octets
bigserial serial8 Entier sur huit octets à incrémentation automatique
bit [ (n) ] Suite de bits de longueur fixe
bit varying [ (n) ] varbit[ (n) ] Suite de bits de longueur variable
boolean bool Booléen (Vrai/Faux)
box Boîte rectangulaire dans le plan
bytea Donnée binaire (« tableau d’octets »)
character [ (n) ] char[ (n) ] Chaîne de caractères de longueur fixe
character varying[ (n) ] varchar[ (n) ] Chaîne de caractères de longueur variable
cidr Adresse réseau IPv4 ou IPv6
circle Cercle dans le plan
date Date du calendrier (année, mois, jour)
double precision float8 Nombre à virgule flottante de double précision (sur huit octets)
inet Adresse d’ordinateur IPv4 ou IPv6
integer int, int4 Entier signé sur quatre octets
interval [ champs ][ (p) Intervalle de temps
]
json Données texte JSON
jsonb Données binaires JSON, décomposées line Droite (infinie) dans le plan lseg Segment de droite
dans le plan
money Montant monétaire
numeric [ (p, s) ] decimal[ (p, s) ] Nombre exact dont la précision peut être spécifiée
path Chemin géométrique dans le plan
39 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Les différents types de données sous PostgreSQL II

Table 3 – Types de données suite

Nom Description
Alias
g_lsn Séquence numérique de journal (Log Sequence Number) de PostgreSQL
point Point géométrique dans le plan
polygon Chemin géométrique fermé dans le plan
real float4 Nombre à virgule flottante de simple précision (sur quatre octets)
smallint int2 Entier signé sur deux octets
smallserial serial2 Entier sur deux octets à incrémentation automatique
serial serial4 Entier sur quatre octets à incrémentation automatique
text Chaîne de caractères de longueur variable
time [ (p) ] [ without Heure du jour (pas du fuseau horaire)
time zone ]
time [ (p) ] with time- timetz Heure du jour, avec fuseau horaire
zone
timestamp [ (p) ] [ wi- Date et heure (pas du fuseau horaire)
thout time zone ]
timestamp [ (p) with timestamptz Date et heure, avec fuseau horaire
time zone]
tsquery requête pour la recherche plein texte
tsvector document pour la recherche plein texte
txid_snapshot image de l’identifiant de transaction au niveau utilisateur
uuid identifiant unique universel
xml données XML

40 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Creation d’une table en pratique & insertion de lignes sous PostgresSQL

Creation d’une table en pratique & insertion de lignes sous PostgresSQL


Nous avons une table WEATHER dont le schema relation est
WEATHER(city,temp_lo,temp_hi,prcp, date) et une autre table CITIES de schema relation
CITIES(name, location). Le code SQL qui permet de créer cette table sous le SGBD
PostgresSQL est :
CREATE TABLE WEATHER (city varchar(80),
temp_lo int, – low temperature
temp_hi int, – high temperature
prcp real, – precipitation
date date
);
CREATE TABLE cities (name varchar(80),
location point
);
Insertion de lignes :
INSERT INTO weather (date, city, temp_hi, temp_lo) VALUES (’1994-11-29’, ’Hayward’, 54,
37) ;
INSERT INTO weather VALUES (’San Francisco’, 46, 50, 0.25, ’1994-11-27’) ;

41 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Définitions des contraintes d’intégrités sous PostgresSQL

Comme nous l’avions déjà mentionné, les contraintes d’intégrité permettent d’assurer une
cohérence entre les tables et les valeurs des données dans une base de données.
Sous PostgreSQL, voici comme ces contraintes sont déclrées :
Clé primaire (rappel, une seule par table) :
CONSTRAINT nomcontrainte PRIMARY KEY (Nom_attribut1[, Nom_attribut2]...)
Contrainte d’intégrité référentielle (clé étrangère) :
CONSTRAINT nomcontrainte FOREIGN KEY (Nom_attribut1[, Nom_attribut2]...)
REFERENCES Nom_table [(nom_attribut)]
Contrainte sur les valeurs permises pour l’attribut :
CONSTRAINT nomcontrainte CHECK ( Condition)
Contrainte d’unicité :
CONSTRAINT nomcontrainte UNIQUE (Nom_attribut1[, Nom_attribut2]...)

42 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Résumé des différentes requêtes sous PostgreSQL I


Table 4 – Requêtes sous PostgreSQL
Type de requête Requête
Opérateurs θ à Attributs
utiliser
Projection Nom_Colonne1 , · · · , Nom_Colonnep
SELECT Nom_Colonne1 , · · · , Nom_Colonnep FROM Nom_TABLE
Projection des valeurs Nom_Colonne1 , · · · , Nom_Colonnep
distinctes SELECT DISTINCT Nom_Colonne1 , · · · , Nom_Colonnep FROM Nom_TABLE

Projection+tri Nom_Colonne1 , · · · , Nom_Colonnep


SELECT Nom_Colonne1 , · · · , Nom_Colonnep FROM Nom_TABLE ORDER BY Nom_Colonnei
[ASC,DESC]
Projection+limite Nom_Colonne1 , · · · , Nom_Colonnep
SELECT Nom_Colonne1 , · · · , Nom_Colonnep FROM Nom_TABLE LIMIT n ;. n est le nombre
de lignes.
Projection + restriction θ ∈ {=, ! = Nom_Colonne1 , · · · , Nom_Colonnep
, >, <, >=, <= SELECT Nom_Colonne1 , · · · , Nom_Colonnep FROM Nom_TABLE WHERE Nom_Colonnei θ
, like, between, in, notlike, notnull, notin} Valeurs.
Exemple : SELECT Nom, Prenom FROM ETUDIANT WHERE Age >22 ;
Produit cartésien ∗ (toutes les colonnes)
SELECT ∗ FROM Nom_TABLE1 ,Nom_TABLE2
Jointure à gauche θ ∈ {=, ! = *
, >, <, >=, <= SELECT ∗ FROM Nom_TABLE1 LEFT JOIN Nom_TABLE2 ON Nom_Colonne_TABLE1 θ
, like, between, in} Nom_Colonne_TABLE2 .

Jointure à droite θ ∈ {=, ! = *


, >, <, >=, <= SELECT ∗ FROM Nom_TABLE1 RIGHT JOIN Nom_TABLE2 ON Nom_Colonne_TABLE1 θ
, like, between, in} Nom_Colonne_TABLE2 .

Jointure interne θ ∈ {=, ! = *


, >, <, >=, <= SELECT ∗ FROM Nom_TABLE1 INNER JOIN Nom_TABLE2 ON Nom_Colonne_TABLE1 θ
, like, between, in} Nom_Colonne_TABLE2 .

Jointure externe θ ∈ {=, ! = *


, >, <, >=, <= SELECT ∗ FROM Nom_TABLE1 OUTER JOIN Nom_TABLE2 ON Nom_Colonne_TABLE1 θ
, like, between, in} Nom_Colonne_TABLE2 .

Jointure naturelle θ ∈ {=, ! = *


, >, <, >=, <= SELECT ∗ FROM Nom_TABLE1 NATURAL JOIN Nom_TABLE2 ON Nom_Colonne_TABLE1
, like, between, in} θ Nom_Colonne_TABLE2 .

Jointure procédurale θ ∈ {IN} *


SELECT ∗ FROM Nom_TABLE1 WHERE Nom_Colonne_TABLE1 IN ( SELECT
Nom_Colonne_TABLE2 FROM Nom_TABLE2 ;.
Aggrégation θ ∈ {=, ! = *
, >, <, >=, <= SELECT Nom_Colonne1 ,· · · , f (Nom_Colonnen , ...)
, like, between, in} FROM Nom_TABLE1 , Nom_TABLE2
WHERE Nom_Colonne_TABLE1 θ Nom_Colonne_TABLE2
GROUP BY Nom_Colonne1 ;.
f est une fonction qui peut être sum,avg,max ,min,count
43 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Résumé des différentes requêtes sous PostgreSQL II


Type de requête Requête
Opérateurs θ à Attributs
utiliser
Aggrégation+restriction θ ∈ {=, ! = *
, >, <, >=, <= SELECT Nom_Colonne1 , · · · ,f (Nom_Colonnen , ...)
, like, between, in} FROM Nom_TABLE1 , Nom_TABLE2
WHERE Nom_Colonne_TABLE1 θ Nom_Colonne_TABLE2
GROUP BY Nom_Colonne1
HAVING f (Nom_Colonne) θ Valeurs ;.
f est une fonction qui peut être sum,avg,max ,min,count.
Différence Nom_Colonne1 , · · · , Nom_Colonnep
SELECT Liste_attributs FROM Nom_TABLE1 MINUS SELECT Liste_attributs FROM
Nom_TABLE2 ;
SELECT Liste_attributs FROM Nom_TABLE1 NOT IN SELECT Liste_attributs FROM
Nom_TABLE2 ;

Union Nom_Colonne1 , · · · , Nom_Colonnep


SELECT Liste_attributs FROM Nom_TABLE1 UNION SELECT Liste_attributs FROM
Nom_TABLE2 ;
Intersection Nom_Colonne1 , · · · , Nom_Colonnen
SELECT Liste_attributs FROM Nom_TABLE1 INTERSECT SELECT Liste_attributs FROM
Nom_TABLE2 ;
Supprimer une ligne
DELETE FROM Nom_TABLE WHERE Nom_Colonnei θ Valeurs
Supprimer toutes les
lignes (danger) DELETE FROM Nom_TABLE ;

Modifier une ligne θ ∈ {=, ! =


, >, <, >=, <= UPDATE Nom_TABLE SET
, like, between, in} Nom_Colonne1 = Valeurs1 , Nom_Colonne2 = Valeurs2 , · · · , Nom_Colonnen = Valeursn
WHERE Nom_Colonnei θ Valeurs ;
UPDATE Nom_TABLE SET
(Nom_Colonne1 , Nom_Colonne2 , · · · , Nom_Colonnen ) = (requête) [WHERE
Nom_Colonnei θ Valeurs] ;

Modifier +insérer θ ∈ {=, ! =


, >, <, >=, <= MERGE INTO Nom_TABLE2 USING Nom_TABLE1 [Nom_Vue | Requete] ON
, like, between, in} Nom_Colonne_TABLE1 θ Nom_Colonne_TABLE2 ;
WHEN MATCHED THEN UPDATE Nom_Colonne1 = Valeurs1 , Nom_Colonne2 =
Valeurs2 , · · · , Nom_Colonnen = Valeursn
WHEN NOT MATCHED THEN INSERT Nom_TABLE2 (Nom_Colonne1 , · · · , Nom_Colonnen )
VALUES (Valeurs1 , · · · , Valeursn ) ;

44 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Résumé des différentes requêtes sous PostgreSQL III

Type de requête Requête


Opérateurs θ à Attributs
utiliser
Expression condition- θ ∈ {=, ! = Nom_Colonne1
nelle , >, <, >=, <= SELECT Nom_Colonne1 ,
, like, between, in} CASE WHEN Nom_Colonne1 θ Valeurs1 THEN Categorie1
WHEN Nom_Colonne2 θ Valeurs2 THEN Categorie2
..
.,
WHEN Nom_Colonnen θ Valeursn THEN Categorien
END
FROM Nom_TABLE

NB : Pour aller plus loin en programmation SQL sous PostgreSQL, veuillez consulter la
documentation entière de PostgreSQL : https://docs.postgresql.fr/15/pg15.pdf

45 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

TD/TP : création de bases de données et manipulation des tables

Installation de PostgreSQL
Télécharger et installer PostgreSQL en choisissant un lien de téléchargement selon la version de
votre système d’exploitation :
Installer sur les nouvelles versions de windows :
https://www.pgadmin.org/download/pgadmin-4-windows
Installer sur windows 7 :
https://www.postgresql.org/download

46 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Présentation globale I

Nous avons vu dans le chapitre précédent que l’on peut collecter et archiver des données sur une
problématique en utilisant les bases de données. La collecte de données peut se faire également
à travers internet par des formulaires. Pour créer les formulaires sur internet on peut utiliser
plusieurs technologies telles PHP/HTML/SQL, Shiny/HTML/SQL
https://pypi.org/project/shiny/. Dans le cadre de ce cours, nous allons étudier comment
collecter les données sur internet en utilisant Shiny/HTML/SQL. Shiny est un langage qui
utilise les technologies comme R ou Python en interagissant avec javascript afin de créer des
questionnaires. Dans le contexte de ce cours, nous allons utiliser Shiny for Python. Cela veut
dire que nous utiliserons Python pour créer une application de Shiny. Nous allons utiliser aussi
parfois HTML pour améliorer nos page web et SQL pour intégrer les données collectées dans
nos bases de données qui seront crées pour la circonstance.

47 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Présentation globale II

48 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Présentation globale III

49 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

C’est quoi une application Shiny


Introduction de Shiny
Une application Shiny est une page web créée pour collecter les données et qui est créée à partir
de deux parties :
User Interface (UI) : C’est le code qui crée la partie d’interface utilisateur qui s’affiche sur
l’écran de celui qui veut remplir un question sur internet.
Server : C’est la partie serveur qui contient tous les codes que UI utilise pour collecter des
informations et rendre dynamique l’interface utilisateur. La partie serveur joue le même rôle
comme le serveur d’une application en PHP.

Exemple d’une application Shiny

50 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Installation de Shiny I

Les étapes d’installation de Shiny


1 créer un répertoire nom_app
2 Utiliser pip ou conda pour installer Shiny
Pip
# Créer un environnement virtuel dans le sous dossier .venv
python3 -m venv venv
# Activer l’environnement virtuel
source venv/bin/activate

Mise à jour de Pip et wheel avant installation de Shiny


pip install –upgrade pip wheel

Installer Shiny
pip install shiny
Vous pourriez avoir besoin de forcer l’installation des versions mises à jour des packages de shiny
en utilisant le code :
pip install –upgrade shiny htmltools

51 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Installation de Shiny II

Conda
# Créer un environnement conda nommé ’myenv’.
conda create –name myenv
# Activer l’environnement virtuel.
conda activate myenv

Installer Shiny
conda install -c conda-forge shiny
Vous pourriez avoir besoin de forcer l’installation des versions mises à jour des packages de shiny
en utilisant le code :
conda update -c conda-forge shiny
3 Compilation :
création de l’application dans le répertoire nom_app
shiny create nom_app
lancer l’application en exécutant cette commdance sur le terminal shell :
shiny run –reload
Le code –reload veut dire que les changements apportés aux fichiers dans le répertoire de
l’application vont forcer le processus de Python à lancer l’application en rafraîchissant la page du
navigateur.

52 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Création de l’interface utilisateur UI


L’interface utilisateur servira aux utilisateurs de l’application de pouvoir communiquer avec le
serveur à travers un formulaire à remplir. L’interface utilisateur ne sert pas uniquement à remplir
un formulaire. Il sert également à échanger des données entre le serveur et la page web. Un
exemple d’échange de données est l’affichage des tableaux et des figures.
Pour fonctionner, l’UI a besoin des éléments suivants :
input : un input est un object qui permet de collecter sous forme de liste toutes les
variables d’entrée d’une application shiny. En exemple, si on prend un formulaire sur une
page d’une application shiny, toutes les informations qui seront saisies dans ce formulaire
seront attachées à l’input.
output : L’output est un objet qui permet de collecter toutes les informations que le
serveur de shiny envoie à l’UI. Un exemple d’informations que le serveur peut envoyer à
l’UI c’est un tableau, un texte, une figure, une image, un interface utilisateur.

Pour collecter ou afficher une information à travers un input ou un output sur un interface
utilisateur UI, les fonctions de collecte ou d’affichage doivent être précédées de la mention ui..
Ex : afin de recueillir la date de naissance à travers la fonction input_date on utilisera le code
ui.input_date(id="idDateNaiss", label="Saisissez votre date de naissance :"). De même, pour
afficher un tableau à travers la fonction output_table sur la page web de l’UI, on pourra utiliser
le code ui.output_table(id="idTableOutput").

Pour déclarer tout l’ensemble UI, on utilisera un code qui ressemble à :


app_ui = ui.page_fluid(
ui.input_slider("n", "N", 0, 100, 40),
ui.output_text_verbatim("txt") )
53 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Configuration du serveur

Le serveur shiny est la partie où s’effectuent tous les calculs et les traitements de données. En
exemple, une figure statistique affichée sur une page d’une application shiny a été d’abord
générée sur le serveur avant d’être envoyée sur la page web à travers un object output.
En général, pour déclarer le serveur, on utilise le terme server. Sous Python, server est une
fonction qui prendre comme arguments :
input : c’est à travers cet argument que le serveur reçoit toutes les données rentrées dans le
formulaire de la page web.
output : cet argument a pour rôle de collecter et d’envoyer à l’interface utilisateur toutes les
informations que le serveur a traitées et qui ont besoin d’être affichées sur l’application web.
session : cet argument permet d’avoir les informations utilisateur quand quelqu’un se
connecte à l’application. Comme exemples d’informations qu’on peut avoir, on peut citer
l’heure de connection, le type de navigateur, le lieu de connection, etc..

Pour déclarer le serveur afin de traiter les informations envoyées par l’UI, on utilise le code
suivant
def server(input, output, session) :
···
···
Enfin, pour lancer l’application dans un navigateur, on utilise le code suivant qui combine le
code de l’UI à celui du serveur :
app = App(app_ui, server)

54 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Illustration des parties d’une application shiny

input

output

UI

Lancement de l'application
SERVER dans un navigateur

55 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Les fonctions des inputs de shiny I

Table 5 – Les inputs de Shiny


input Fonction python Explication des arguments
Description
select Créer une liste de réponses pour ui.input_select(id, label, choices, *, selected=None, multiple=False, se-
choisir un ou plusieurs d’ntre elle lectize=False, width=None, size=None) id : le code identifiant l’input à préciser obligatoirement
label le libellé ou le titre à donnée à la question posée.
choices : un ensemble de choix à faire
selected : le libellé qui est initialement sélectionné
multiple : c’est un argument qui prend True/False et qui demande si le
choix des réponses sera multiple
selectize choisir entre True/False si l’on decide que le module selectize.js
soit intégrer dans l’application.
width : la largeur de la zone de sélection qui doit être en pixel (ex :‘400px’
)
size : le nombre de catégories de réponses de la question à afficher à
l’utilisateur.
selectize Même rôle que select ui.input_selectize(id, label, choices, *, selected=None, multiple=False, Mêmes explications
width=None)
slider cet input a pour rôle de choi- ui.input_slider(id, label, min, max, value, *, step=None, ticks=True,
sir une valeur entre deux valeurs animate=False, width=None, sep=’,’, pre=None, post=None,
min et max d’une variable time_format=None, timezone=None, drag_range=True)
date la date à choisir à travers le for- ui.input_date(id, label, *, value=None, min=None, max=None,
mulaire format=’yyyy-mm-dd’, startview=’month’, weekstart=0, language=’en’, Value : Valeur initiale
width=None, autoclose=True, datesdisabled=None, daysofweekdisa- format : format de date comme yyyy − mm − dd.
bled=None) startview : à partir de quel élément la date s’affiche. Soit à partir du mois
qui est 0 month0 ou l’année qui est 0 year 0 .
weekstart : le début de la semaine. La valeur devrait être 0 si la semaine
commence de lundi à samedi.
language : la langue de de la zone où la date sera utilisée. Ex : 0 fr 0 pour
dire français.
date_range cet input perme de définir un in- ui.input_date_range(id, label, *, start=None, end=None, min=None,
tervalle de date pour une ques- max=None, format=’yyyy-mm-dd’, startview=’month’, weekstart=0, start : valeur de la date de début
tion language=’en’, separator=’ to ’, width=None, autoclose=True) end : Valeur de la date de fin
separator : le séparateur séparant les deux date. Ex : ’to 0 ou 0 à0 en fran-
çais.
width : la longueur du champ de remplissage en pixel (0 400px 0 ) ou en
% (0 100%0 ).
checkbox choix entre oui ou non ui.input_checkbox(id, label, value=False, *, width=None)
value : la valeur prise par le champ de l’input. Soit True/False.
checkbox_group choisir une ensemble de réponses ui.input_checkbox_group(id, label, choices, *, selected=None, in-
parmi plusieurs line=False, width=None) choices : soit une liste ou un dictionnaire de réponses à choisir
inline : s’il faut aligne les réponses en ligne ou non. Si oui le choix est
True, sinon c’est False
switch chosir une réponse logique ui.input_switch(id, label, value=False, *, width=None)
comme checkbox

56 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Les fonctions des inputs de shiny II

input Fonction python Explication des arguments


Description
radio_buttons choisir une seule réponse parmi ui.input_radio_buttons(id, label, choices, *, selected=None, in-
plusieurs line=False, width=None)
numeric saisir une réponse numérique ui.input_numeric(id, label, value, *, min=None, max=None, step=None,
width=None)
text saisir une réponse texte ui.input_text(id, label, value=”, *, width=None, placeholder=None, au-
tocomplete=’off’, spellcheck=None)
textarea champ pour un long texte ui.input_text_area(id, label, value=”, *, width=None, height=None,
cols=None, rows=None, placeholder=None, resize=None, autocom-
plete=None, spellcheck=None)
password champ de mot de passe ui.input_password(id, label, value=”, *, width=None, placehol-
der=None) placeholder : la valeur par défaut

action validation d’une action en cli- ui.input_action_button(id, label, *, icon=None, width=None, **kwargs)
quant sur un bouton icon :l’icône utilisé comme bouton.
kwargs : d’autres arguments à intégrer dans le bouton.

link c’est un bouton sous forme de ui.input_action_link(id, label, *, icon=None, **kwargs)


lien hypertexte

57 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Les fonctions des output de shiny

Table 6 – Les output de Shiny


input Fonction python Explication des arguments
Description
plot faire une figure et envoyer la sur ui.output_plot(id, width=’100%’, height=’400px’, *, inline=False,
l’UI click=False, dblclick=False, hover=False, brush=False) width : la largeur de la figure
height : la hauteur de la figure
inline : Si c’est True la réponse est afficher en ligne.
click : la valeur est True/ False. Si c’est True, la figure enverra au serveur
les cordonnées de l’endroit la figure a été cliquée
dbclick : True/ False. La même explication que pour click
hover : True/ False. Si le curseur passe au dessus de la figure, les cor-
données de l’utilisateur sont renvoyées au serveur.
image afficher une image sur l’UI ui.output_image(id, width=’100%’, height=’400px’, *, inline=False,
click=False, dblclick=False, hover=False, brush=False)
table affichage d’un tableau sur l’UI ui.output_table(id, **kwargs)
text revoie un texte sur l’UI ui.output_text(id, inline=False, container=None)
ui intégrer un interface utilisateur ui.output_ui(id, inline=False, container=None, **kwargs)
dans l’interface utilisateur prin-
cipal

NB : Au niveau du serveur pour créer un output, on utilise le code @render.*, * prenant les
valeurs suivantes plot, table, image, text, ui. On verra comment cela s’applique en pratique.

58 / 92
Les objectifs du cours
Introduction générale des données et du Big Data Bases de données relationnelles
Collecte, transformation et normalisation des données Collecter les données à travers internet
Introduction à l’analyse de données

Les fonctions d’interface utilisateur de shiny

Table 7 – Barre de navigation


input Fonction python Explication des arguments
Description

59 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Introduction à l’analyse de données

60 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Objectifs du chapitre

Jusqu’à maintenant nous avons vu comment créer une base de donnée, intégrer et manipulation
des données et collecter les données par internet.
Dans cette partie de cours nous sommes intéressés de pouvoir comprendre les informations
qualitatives et quantitatives qui peuvent être utilisées pour les entreprises qui cherchent à
améliorer leurs activités économiques et commerciales à travers les données.
En général, dans une entreprise, en fonction des demandes, plusieurs types d’analyses de
données peuvent se présenter. Du simple niveau au niveau le plus complexe, on peut trouver
l’analyse descriptive de données, l’analyse exploratoire des données et la modélisation prédictive
des données que l’on désigne sous le nom machine learning.
L’objective donc de ce cours est de permettre aux étudiant de savoir travailler sur un projet de
data science, de l’étape de compréhension des données à l’étape de livraison d’un logiciel de
machine learning.
Dans ce cours nous allons :
faire des rappels mathématiques qui aideront à comprendre la suite
apprendre à comprendre une données
enfin à construire des modèles de machine learning.

61 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Algèbre linéaire et bilinéaire I

On note Mn,p (R) l’ensemble des matrices à n lignes et p colonnes et à coefficients réels.
On rappelle qu’une matrice est la représentation d’une application linéaire de E vers F (avec
dim(E)=n et dim(F)=p) pour les bases de E et F spécifiées (on considérera les bases
canoniques de E et F ).

Définition 4.1
Pour toute matrice A ∈ Mn,p (R), la matrice transposée de A notée AT = A0 est la matrice
dans Mp,n (R) telle que (AT )ji = aij ∀i ∈ {1, · · · , n} et j ∈ {1, · · · , p}

Dans un cas particulier,


on dit que A est une matrice carrée si n = p
A est une matrice symétrique si et seulement si AT = A
Pour la suite, on notera :
Ai = (ai1 , ain , · · · , aip ) le ième vecteur ligne de la matrice A. Dans ce cas, A peut être noté
A 
1
A2 
A= . 
. .
An

62 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Algèbre linéaire et bilinéaire II

la jème colonne de A est notée


 
A1j
A
Aj =  2j  ∈ Mn,1 (R).
..
.Anj

On a A = (A1 , A2 , · · · , Ap ).

1 Produit matriciel
La matrice C = A × B est valide si et seulement si A ∈ Mn,p (R) et B ∈ Mp,q (R).
Pp
Dans ce cas, C ∈ Mn,q (R) et Cij = a b
k=1 ik kj
= Ai × Bj .
2 Trace d’une matrice On appelle trace d’une
Pn matrice A ∈ Mn,n (R) notée tr (A) la somme
des éléments diagonaux de A : tr (A) = a
i ii

63 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Algèbre linéaire et bilinéaire III

3 Inverse d’une matrie Une matrice A ∈ Mn,n (R) est inversible si et seulement si il existe
une matrice A−1 telle que AA−1 = In avec In une matrice identité.

Proposition 4.1
Un matrice A est inversible si son déterminant det(A) 6= 0.

Propriété 4.1
Pour toute matrice A ∈ Mn,n (R), on a :
(a) (AT )−1 = (A−1 )T si A−1 existe
(b) (AB)−1 = B −1 A−1 si A−1 , B −1 et AB existent
1
(c) det(A−1 ) = det(A) si A−1 existe.
(d) (AB)T = B T AT si AB existent

64 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Algèbre linéaire et bilinéaire IV

Définition 4.2
Soit A ∈ Mn,n (R).
on dit que A est une matrice régulière, respectivement singulière, si et seulement si
det(A) 6= 0, respectivement si et seulement si det(A) = 0.
A est dite idempotente si et seulement si A2 = A. Ceci entraine que An = A
A est orthogonale si et seulement si AT = A−1

Définition 4.3
Soit x ∈ Rn un vecteur colonne et A ∈ Mn,n (R).
L’application x 7−→ x T Ax est appelée forme quadratique associée à A

Remarque : Si x = 0 ∈ R, Ax = 0 et donc x T Ax = 0. Si ∀x ∈ Rn − {0}, x T Ax > 0


(respectivement x T Ax < 0) alors la forme quadratique associé à A et la matrice A sont définies
positives (respectivement négatives).

Proposition 4.2
Une matrice réelle et symétrique possède une base orthonormée de vecteurs propres.

Corollaire : A est symétrique et définie positive si et seulement si toutes ses valeurs propres sont
strictement positives

65 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Algèbre linéaire et bilinéaire V

Définition 4.4
Soit L(E , F ) un ensemble d’applications linéaires de E dans F avec E et F des espaces
vectoriels. Soit A ∈ L(E , F ).

On appelle rang de A noté Rg(A), la dimension de l’image de E par A.


Im(A) = vect{A1 , · · · , Ap } est un sous-espace vectoriel engendré par les colonnes de A.
{Ax , x ∈ E } ⊂ F et donc Rg(A) = dim(Im(A)) est égal au nombre de vecteurs colonnes libres
de A ou égal au nombre de vecteurs lignes libres de A.

On appelle noyau de A noté Ker (A), l’ensemble des éléments qui ont pour image zéro :
Ker (A) = {x ∈ E , Ax = 0}.

Théorème de rang / Théorème noyau-image


Soit L(E , F ). Alors on a : dim(E ) = dim(Ker (A)) + Rg(A).

Rémarque : S’il existe x 6= 0 ∈ E tel que Ax = 0, alors on a deux éléments de E , 0E et x qui


ont même image. Dans ce cas, A n’est pas inversible.
Ker (A) 6= {0} =⇒ A est non inversible. A est inversible =⇒ Ker (A) = {0}. la réciproque est
vraie. A est inversible ⇐⇒ Ker (A) = {0} ⇐⇒ Rg(A) = dim(E ).

66 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Algèbre linéaire et bilinéaire VI

Définition : Projection orthogonale


Soit M une matrice carrée symétrique et définie positive. M définit sur Rp , ∀x , y ∈ Rp :
un produit scalaire < x , y >M = x T My
p
une norme ||x ||M = < x , x >M = x T Mx
une distance dM (x , y ) = ||x − y ||M
<x ,y >M
des angles θM (x , y ) tels que cos(θM (x , y )) = ||x ||M ||y ||M

Définition 4.5
Soit W un sous-espace vectoriel de R2 et P une matrice Mp,p (R). P est une projection
M − orthogonale sur W si et seulement si
Im(P)=W
∀y ∈ Rp , < Py , y − Py >M = 0.

Proposition 4.3
P est une projection M − orthogonal sur W = Im(P) si et seulement si P 2 = P et P T M = MP.

67 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Outils de probabilité I

Dans cette partie, nous désignerons par X soit un vecteur aléatoire


 
X1
.
X =  .. 
Xp

de valeurs dans Rp ou soit une variable aléatoire de valeurs dans R. On notera par x une
réalisation de X . Si X est un vecteur, alors
 
x1
.
x =  .. 
xp

(a) on appelle espérance de X le terme E (X ) désignant la moyenne théorique de X et Var(X)


le terme désignant la matrice variance-covariance de X
(b)
E (X1 )
 
.
E (X ) =  ..  ∈ Rp
E (Xp )

68 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Outils de probabilité II

(c) Var (X ) = E [(X − E (X ))(X − E (X ))T ] = E (XX T ) − E (X )E (X )T . On peut de même de


manière détaillée écrire :
Var (X1 ), · · · , cov (X1 , Xp )
 
.. .
Var (X ) =  ., · · · , ..

cov (Xp , X1 ), · · · , Var (Xp )

Proposition 4.4
∀A ∈ Mn,p (R) et b ∈ Rn , on a
E (AX + b) = AE (X ) + b
Var (AX + b) = Var (AX ) = AVar (X )AT

Les transformations classiques :


Si X est une variable aléatoire suivant une loi normale standard N (0, 1), on notera
X ∼ N (0, 1). Cependant si X est une variable gaussienne de moyenne µ et d’écart-type σ, on
notera X ∼ N (µ, σ 2 ).
X ∼ N (0, 1) =⇒ µ + σX ∼ N (µ, σ 2 )
si X1 , · · · , Xp sont des variables aléatoires indépendantes telles Xj ∼ N (µj , σj2 ) alors
Pp Pp Pp
aX
j=1 j j
∼ N( aµ,
j=1 j j j=1
aj2 σj2 )

69 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Outils de probabilité III

Pp
Xj ∼ N (0, 1) =⇒ j=1
Xj2 ∼ Xn2 avec Xp2 une distribution de chi-deux à p degré de
liberté.
X ∼ N (0, 1) et Y ∼ Yq2 avec X et Y indépendants =⇒ V = X
Y ∼ Tq avec Tq une loi de
q
student à q degré de liberté
X
X ∼ Xp2 et Y ∼ Yq2 avec X indépendant de Y =⇒ W = p
Y ∼ Fp,q où Fp,q est la loi de
q
Fisher à p et q degré de liberté.

Définition : Vecteur gaussien


Soit X un vecteur aléatoire de Rp .
On dit que X est un vecteur gaussien si et seulement si ∀a ∈ Rp − {0},
< a, X >= aT X = a1 X1 + a2 X2 + · · · + ap Xp est une variable aléatoire réelle de loi normale.

Proposition 4.5
Si X est un vecteur gaussien dans Rp alors Xj est une variable aléatoire de loi normale
∀j ∈ {1, 2, · · · , p}

70 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Outils de probabilité IV
Proposition 4.6
Si X1 , X2 , · · · , Xp sont des variables aléatoires de loi normale et indépendantes, le vecteur
X T = (X1 , X2 , · · · , Xp ) est gaussien.

La densité de probabilité d’un vecteur gaussien :


Soit X un vecteur aléatoire gaussien à valeurs dans Rp d’espérance µ et de matrice
variance-covariance Σ. Si det(Σ) 6= 0 alors X admet une densité donnée par
1
∀x ∈ Rp , fX (x ) = p exp(−0.5||x − µ||2 Σ−1 )
(2π)p det(Σ)
Probabilité conditionnelle : Soit X et Y deux variables aléatoires.
La probabilité conditionnelle de Y sachant X est définie par
P(Y =y ,X =x )
P(Y = y /X = x ) = P(X =x ) . P(X = x ) est appelé la probabilité marginale de X .
la règle de chaîne : toute probabilité jointe P(X1 , X2 , · · · , Q Xp ) de variables aléatoires
p
X1 , X2 , · · · , Xp est définie par P(X1 , X2 , · · · , Xp ) = P(X1 ) j=2 P(Xj /X1 , · · · , Xj−1 )

Probabilité bayésienne : Soit X et Y deux variables aléatoires. La règle de Bayes est définie par
P(X /Y )P(Y ) = P(Y /X )P(X ).
P(Y = y ) = P(Y = y /X = x )P(X = x ).
P
x
Indépendance :
71 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Outils de probabilité V

Si X est un vecteur gaussien tel que det(Σ) 6= 0 alors Xi est indépendant de Xj avec i 6= j
si et seulement si cov (Xi , Xj ) = 0.
Si cov (Xi , Xj ) = 0 on dit que Xi et Xj sont non corrélées.
X et Y sont deux variables aléatoires indépendantes ⇐⇒ fX ,Y (x , y ) = fX (x )fY (y ),
∀x , y ∈ R ⇐⇒ pour toutes fonctions h, g mesurables, E (h(X )g(Y )] = E [f (X )]E [g(Y )].
X indépendante de Y entraîne que X et Y sont non corrélées. La réciproque est fausse.
échantillon univarié : Soit X ∈ R une variable aléatoire et x sa réalisation. Soit Ω une
population dont les unités statistiques sont décrites par X . En prenant Ωn un échantillon de
n individus de Ω, on note xi (i ∈ {1, · · · , n}) n réalisation de X . En supposant que tous les
xi sont mutuellement Qn indépendants, la densité de probabilité jointe des xi est :
f (x1 , · · · , xn ) = i=1 fX (xi )
échantillon multivarié : d’après ce qui vient de précéder, si X est un vecteur aléatoire
X = (X1 , · · · , Xp )T et x une réalisation de X alors la densité de probabilité
Qp jointe des xi
sachant qu’elles sont mutuellement indépendantes est f (x1 , · · · , xp ) = i=1 fX (xi ). De
plus si X est un Q vecteur gaussien (X1 , · · · , Xp sont indépendantes), alors
n Qp
f (x1 , · · · , xn ) = i=1 j=1 fX (xij ).

72 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Présentation I

En statistique, l’analyse descriptive des données permet de comprendre un tableau de données


en résumant les principaux indicateurs des colonnes constituant ce tableau. L’analyse description
peut se faire sous forme numérique en présentant des tables contenant des indicateurs
statistiques ou en présentant des figures qui peuvent permettre de comprendre les distributions
de la variable étudiée et son interaction avec d’autres variables dans la table de données.
Soit Xj , j ∈ {1, · · · , p} des variables aléatoires contenues dans un tableau de données. Dans
cette partie, sauf cas de vecteur aléatoire à préciser, nous supposons que chaque Xj peut être
représentée par une variable aléatoire X .
Les différentes statistiques descriptives que l’on peut calculer sur X sont :
1 Cas des variables numériques

distribution empirique cumulative ou encore une fonction de Prépartition : en notant F cette


n
fonction, l’estimation empirique F̂ est définie par F̂ (x ) = n1 I(xi ≤ x ) avec
i=1

1 si xi ≤ x
n
I(xi ≤ x ) =
0 si xi > x
quantile : le quantile est l’inverse de la fonction de répartition et est notée
F −1 (q) = min{x /F (x ) ≥ q}
densité de probabilité : cet indicateur permet de deviner la loi de probabilité de X .Cela a une
importance capitale dans la modélisation d’une variable numérique que l’on cherche à prédire. En
pratique, la loi de la densité de probabilité est cherchée à travers l’histogramme.
Pn empirique : En notant µ la moyenne de X , son estimateur empirique est
la moyenne
µ̂ = n1 xi .
i=1

73 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Présentation II

la varianceP empirique : En notant σ 2 la variance de X , l’estimateur empirique sans biais de σ 2 est


σ̂ 2 = n−1 (xi − µ̂)2 . Si X est un vecteur aléatoire, on peut calculer la matrice
1 n
i=1
variance-covariance empirique pour mesurer les liens de colinéarité des variables constituant X
deux à deux. Cela peut beaucoup aider à présélectionner les variables qui doivent a priori rentrer
dans un modèle de prévision.
la médiane : m est la valeur médiane de la variable X si et seulement si P(X ≤ m) ≥ 12 . C’est
encore une fonction inverse de la fonction de répartition pour q = 12 .
Mode : la mode ou la valeur modale de X est défini(e) par mod(X ) = argmaxx fˆ(x ) pù f (x ) est la
densité de probabilité de X .
quartiles : les quartiles sont les fonctions spéciales des quantiles. On a en général 3 principaux
quartiles ( q1 = 25%, q2 = 50%, q3 = 75%).
2 Cas d’une variable non numérique
On dit que X est une variable catégorielle ou encore variable non numérique si X est
constitué d’une partition de m éléments symboliques qualitatifs tels que
Dom(X ) = {a1 , a2 , · · · , am }. Les éléments ak (k ∈ {1, 2, · · · , m}) sont appelés catégories
ou modalités.

Si X a deux catégories (m = 2), on peut modéliser X comme une variable de Bernoulli qui
prend deux valeurs distinctes 1 et 0 selon le schéma

1 si  = a1
X () = .
0 si  = a2

74 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Présentation III

La fonction de masse de probabilité de X est définie donc par



p1 si x = 1
P(X = x ) = f (x )
p0 si x = 0

avec p1 + p0 = 1. En notant p1 = p, on a p0 = 1 − p et la fonction de masse de probabilité


de X est définie donc par P(X = x ) = p x (1 − p)(1−x ) . Cette définition est importante pour
le modèle logistique de classification.
Les statistiques descriptives que l’on peut calculer sur X sont les suivantes :
fréquence empirique
Pn : pour chaque catégorie ak de X , on calcule sa fréquence par
Freq(ak ) = I(xi = ak ). c’est à partir des fréquences des différentes catégories que l’on
i=1
calcule la classe modale. Pn
moyenne et variance empirique d’une variable de Bernoulli : µ̂ = n1 I(xi = 1) = p̂ et la
i=1
variance empirique est σ̂ 2 = p̂(1 − p̂)

Maintenant nous considérons que m > 2 c’est-à-dire Dom(X ) = {a1 , a2 , · · · , am }. Nous pouvons
modéliser X avec une variable de Bernoulli m − dimensionnel notée X = (A1 , A2 , · · · , Am )T avec
Ak une variable de Bernoulli de probabilité pk dénotant la probabilité d’observation de la modalité
ak . On a donc que si X = ak , alors Ak = 1 et Al = 0 pour tout k 6= l. Les valeurs de la variable
aléatoire sont donc l’ensemble {0, 1}m . Ainsi, nous pouvons définir xk = (xk1 , xk2 , · · · , xkm )
comme une réalisation du vecteur aléatoire X de telle sorte que

z k−1
}| { z m−k
}| { n
1 si k = l
X = ak ⇐⇒ X = (0, · · · , 0, 1, 0, · · · , 0) ⇐⇒ xkl =
0 si k 6= l

75 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Présentation IV

Puisque les ak forment une partition de Dom(X ) alors les variables Ak sont indépendantes. La
densité de probabilité de X est définie donc par
m m
Y Y
xkl (1−xkl )
P(X = xk ) = f (xk ) = f (xk1 , xk2 , · · · , xkm ) = fAk (xkl ) = p (1 − p) = pk
l=1 l=1

76 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

C’est quoi le machine learning

Le machine learning ou encore l’apprentissage par ordinateur est un processus de création des
modèles mathématiques par ordinateur en vue de résoudre une tâche T complexe en utilisant
les données. Pour réussir la résolution de la tâche T , l’apprentissage doit permettre de trouver le
modèle mathématique approprié qui est une fonction f qui prend en entrée par exemple une
donnée x ∈ Rp pour fournir un résultat f (x ). Les valeurs de f (x ) dépendent de la problématique
que la tâche T est associée.

En machine learning, la tâche T peut être une une tâche de classification, classification aevc
des données d’entrée manquantes, de régression, de traduction, de détection d’anomalie,de
d’imputation des valeurs manquantes, de débruitage et d’estimation de densité.

Les algorithmes de machine learning peuvent être classés en deux familles à savoir
l’apprentissage supervisé et non supervisé.

Un algorithme non supervisé observe plusieurs exemples de x et cherche implicitement ou


explicitement à apprendre la densité de probabilité p(x ).

Cependant, un algorithme supervisé en observant plusieurs x associés à une valeur ou vecteur y


cherche à prédire y en utilisant les observations x par l’estimation de la probabilité p(y /x ).

77 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Introduction à la régression linéaire

Figure 4.1 – Figure illustrant la relation linéaire entre la vitesse de la voiture et la distance parcourue

78 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Modèle mathématique de la régression linéaire I


Soit Y ∈ R une variable quantitative dite variable à expliquer et X une vecteur aléatoire
composé de p variables aléatoires X1 , X2 , · · · , Xp dites variables explicatives. Soit ω une
population et Ωn un échantillon aléatoire de n individus extraits de ω. Le couple de vecteur
(X , Y ) décrit complètement les individus de ω : chaque fois qu’on observe une réalisation
x = (x1 , x2 , · · · , xp ) de X dans la population ωn , on observe également y une réalisation de Y .
nous sommes intéressés de prédire les valeurs de Y à travers les valeurs de X . Cela nous amène
à émettre l’hypothèse mathématique qu’il existe une fonction linéaire f définie par

f : X ∈ Rp −→ Y ∈R
x 7−→ y = f (x1 , x2 , · · · , xp ) + .
 est un terme d’erreurs représentant tout ce que les variables X1 , X2 , · · · , Xp n’expliquent pas.

Le modèle le plus simple de régression linéaire est le modèle

y = β0 + β1 x1 + β2 x2 + · · · + βp xp + 

avec βj les paramètres ou encore les coefficients de régression. Si on suppose que  est une
réalisation d’une variable aléatoire, il faut avant d’estimer les coefficients de régression connaître
la loi de probabilité de . on parle de régression linéaire car le modèle ci-dessus est linéaire par
rapport aux coefficients βj .
Par exemple,
l’équation y = β0 + β1 x1 + β2 x12 +  est un modèle de régression linéaire par rapport aux
coefficients β0 , β1 , β2
79 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Modèle mathématique de la régression linéaire II

l’équation y = β0 + β1 x1β2 +  ne définit pas un modèle linéaire à cause de β2 .

Observation :
Sur la sous-population Ωn , on observe x1 , x2 , · · · , xn n réalisation de X associées à
y1 , y2 , · · · , yn , n réalisations de Y . Le processus de collecte de y1 , y2 , · · · , yn , est fait de telle
façon qu’à chaque fois qu’une réalisation xi est observée, on observe la réalisationyi . On dit que
yi est une réalisation de Y conditionnellement à xi .

Pour la suite on suppose que le vecteur aléatoire Y vérifie la relation Y = X β +  où


β 
0
1 x11 x12 · · · x1p
   
1
β 1
. .. .. ..  p+1 et  =  ..  ∈ Rn est
X =  .. ∈ M (R), β = . ∈
 
. . ··· . n,p+1 . R .
.
1 xn1 xn2 · · · xnp n
βp
un vecteur aléatoire tel que
(a) Rg(X ) = p + 1 (on a donc p + 1 ≤ n)
(a) E () = 0 et Var () = σ 2 In (les composantes de  sont non-corrélées)
Remarque :  est un vecteur aléatoire entraine que Y est un vecteur aléatoire. On a :
E () = 0 =⇒ E (Y ) = X β + E () = X β
Var () = Var (X β + ) = Var () = σ 2 In

80 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Inférence statistique I

Dans cette partie, on cherche à estime les βj et σ 2


1 Estimation du vecteur β :
Le modèle de régression
Pn linéaire P
Y = X β +  entraine que ||Y − X β|| = ||||. le terme
p
||Y − X β||2 = (y − β0 −
i=1 i
β x )2 est appelé critère des moindres carrés
j=1 j ij
ordinaire (MCO). L’estimateur des moindres carrés de β est définit par
β̂MCO = argminβ∈Rp+1 ||Y − X β||2

Proposition 4.7
Sous l’hypothèse du modèle de régression linéaire, β̂MCO est unique et est
β̂MCO = (X T X )−1 X T Y

Remarque : Puisque Y est une variable aléatoire et que (X T X )−1 X T ∈ Mp+1,n (R) est une
matrice réelle donc β̂MCO est un vecteur aléatoire de valeurs dans Rp+1 .
Exemple : Dans le cas d’une régression linéaire simple, ∀i ∈ {1, 2, · · · , n}, posons
yi = axi + b + i avec E (i ) = 0, cov (i , j ) = 0 si i 6= j et cov (i , j ) = 1 si i = j. Calculer
les coefficients a et b.
Proposition 4.8
(a) β̂MCO est un estimateur sans biais de β c’est-à-dire que E (β̂MCO ) = β
(b) Var (β̂MCO ) = σ 2 (X T X )−1 .

81 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Inférence statistique II

2 Prédiction de y et résidus :
L’estimateur β̂MCO de β permet de calculer les valeurs prédites de l’observation yn+1 selon
le modèle ŷn+1 = Xn+1 β̂MCO = Xn+1 (X T X )−1 X T Y avec Xn+1 le vecteur
(xn+1,1 ; xn+1,2 ; · · · ; xn+1,p ).

Dans un cadre général, on notera ŷ = X β̂MCO = X (X T X )−1 X T Y . En posant


H = X (X T X )−1 X T , on a H ∈ Mn,n (R) symétrique et idempotente. Comme on le
remarque, H est une matrice de projection orthogonale de y sur l’image I(x ).

Soit ˆ l’estimation de la valeur de la variable aléatoire .

ˆ = Y − Ŷ = Y − X β̂MCO = Y − X (X T X )−1 X T Y = (I − X (X T X )−1 X T )Y .

Donc < ŷ , ˆ >= 0 et ˆ = (I − H)Y .


En considérant la norme carrée de ˆ, on a
n
X
RSS = ˆ2i = ||ˆ
||2 = ˆT ˆ = ((I − H)Y )T ((I − H)Y ).
i=1

RSS est appelée Residuals Sum of Squares ou encore la somme des carrés résiduels.
On a à la fin que :

82 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Inférence statistique III

RSS = Y T (I − H)Y

Proposition 4.9
2
On a E (RSS) = (n − p − 1)σMCO . Par conséquent,
2
(a) σMCO = RSS
n−p−1
(b) on peut estimer la matrice de variance-covariance de β̂MCO par
2 Y T (I−H)Y
Var (β̂MCO ) = σMCO (X T X )−1 = n−p−1 (X X )
RSS T −1
= n−p−1 (X T X )−1

3 Coefficient de détermination :
1
 
.
Soit H1 la matrice de projection sur le vecteur 1n =  ..  ∈ Rn (la première colonne de
1
X ).
On a H1 = 1n (1T n 1n )
−1 . Comme 1 ∈ Im(X ), alors H (I − H ) = 0. Alors, pour tout Y à
n 1 1
valeurs dans Rn , on a :

H1 Y = 1n Y ,
Pn
avec Y = n
i=1
( à démontrer).

83 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Inférence statistique IV

H1 HY = H1 Ŷ = Ŷ 1n =⇒ Y = Ŷ

Proposition 4.10
On a la décomposition suivante :
n n n
X X X
(yi − y i )2 = (ŷi − ŷ i )2 + ˆ2i

|i=1 {z } i=1
|i=1
{z }
TSS RSS

RSS = Total Sum of Squares

Définition 4.6
On appelle coefficient de détermination, la grandeur (sans unité)

RSS σŷ2
R2 = 1 − =
TSS TSS

Interprétation
(a) Si R 2 = 1 alors RSS = 0 et donc Y ∈ Im(X ) et alors Ŷ = Y
(b) Si R 2 est proche de 0, on a des résidus élevés et donc le modèle est inadapté.

84 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Modèle linéaire gaussien

Rappel
Dans un modèle linéaire,
on a supposé que la variable aléatoire Y à valeurs dans R vérifie les
n

Y = X β + 
hypothèses suivantes : E () = 0
Var () = σ2 I .
n
Dans ce modèle, aucune hypothèse n’a été faite sur la loi de .

Dans le modèle gaussien, on suppose que  est un vecteur gaussien. Dans ce cas, le modèle
ci-dessus devient un modèle gaussien.
(a) Comme Y = X β + , alors Y est aussi un vecteur gaussien. De plus, d’après ce qui a
précédé, Y est une variable normale d’espérance X β et de variance σ 2 In .
(b) Comme epsilon est un vecteur gaussien et comme cov (i , j ) = 0 pour tout i 6= j alors les
i sont indépendantes alors que dans le premier modèle linéaire de régression, on a vait
seulement une non-corrélation.

85 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Estimation de (β, σ 2 ) par maximisation de la vraisemblance

D’après ce qui est dit dans le slide précédent,

86 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Références I

87 / 92
Introduction
Les objectifs du cours
Rappels des outils mathématiques
Introduction générale des données et du Big Data
Analyse descriptive des données
Collecte, transformation et normalisation des données
Introduction au machine learning
Introduction à l’analyse de données
Alerting

Je vous remercie

88 / 92

Vous aimerez peut-être aussi