Vous êtes sur la page 1sur 87

Atelier Initiation Machine

Learning

2-3,4 JUIN 2023

Hajer Grira

1
PLAN
❶ Introduction et Définition

❷ Types et processus
d’apprentissage automatique

❸ AA Supervisé

❹ Méthodes d’évaluation des


algorithmes AAS

❺ Réseaux de neuronnes &


Deep Learning

❻ AA Non Supervisé
https://cutt.ly/Wwwi0g57

❼❽ …

2
Prérequis

RA
RI
G
3
IA, Machine Learning et Deep

RA
RI
G
4
L’apprentissage automatique AA
Apprentissage Automatique 🡺 Machine Learning

Définition

Domaine s’intéressant à la conception et le


développement d’un ensemble d’algorithmes qui
permettent à une machine d’apprendre à résoudre un
problème spécifique à partir de données.
? Limites de la programmation classique ?

RA
(programmation séquentielle déterministe )

RI
G
5
Définition

RA
RI
G
6
Exemples d’applications

– Filtrage des e-mails


– Applications de vision par ordinateur
– Conduite autonome
– Reconnaissance de l’écriture manuscrite
– Chat bots
– Jouer et gagner des jeux
– Diagnostic médical
– Recommandations de produits
– Suggestions d’amis/de contenu sur facebook
– Reconnaissance vocale/Sous-titrage audio
– Traduction d’un texte

RA
– ….

RI
G
7
Exemples d’applications
vision par ordinateur

RA
RI
G
8
Exemple d’application Reconnaissance
de l’écriture manuscrite

RA
RI
G
9
ML = Modélisation mathématique?
Un problème d’apprentissage automatique
peut être formulé sous la forme d’une transformation entre des entrées
(Inputs) et des sorties (Outputs).

Essayer d’apprendre quelle est la meilleure sortie (output) "O" à


déterminer pour chaque entrée (input)"I".

Mathématiquement,
On cherche d’apprendre une fonction de transformation
𝑓 qui associe à chaque variable d'entrée X, une variable de sortie 𝑌 avec
une erreur 𝑒:

𝑌=𝑓𝑋+𝑒

RA
RI
G
En ML, on parle souvent de MODELE pour désigner le
programme élaboré
10
Le monde des Données en abondance
Une augmentation continue des données générées

• Twitter : 50M tweets /jour (=7 terabytes)


• Facebook : 10 terabytes /jour
• Youtube : 50h of videos téléchargés /minute
• 2.9 millions of e-mails /seconde

Ordre de grandeur :
-1024 gégabyte 🡺 1 tétrabyte
-1024 tétrabyte 🡺 1 pétabyte
-1024 pétabyte 🡺 1 exabyte

site téléchargement DB

RA
Kaggle.com , https://archive-beta.ics.uci.edu/, …

RI
G
11
ML : de quoi il s’agit ?

RA
RI
G
12
Apprentissage automatique
Exemples

Input / I Output / O
Filtrage des emails Un e-mail Spam / non-spam
Reconnaissance Une image Accès / interdiction
faciale
Traduction Phrase en langage A Phrase en langage B
Reconnaissance Signal audio Une phrase / mot
parole
Déplacement d’un Données à partir de Mouvement en
Robot capteurs trajectoire

RA
RI
G
13
Types d’apprentissage Automatique

L’apprentissage dépend des données disponibles

– On peut avoir certains données de l’ensemble des entrées et


d’autres de l’ensemble des sorties (i,o)
🡺 Apprentissage supervisé

– On peut avoir seulement des entrées i.


🡺 Apprentissage non supervisé

– On peut ne pas connaitre les sorties "corrects" mais on peut


utiliser une certaine mesure qui détermine la qualité de la sortie o
étant donnée l’entrée o.

RA
🡺 Apprentissage par renforcement

RI
G
14
G
15

RI
RA
L’apprentissage supervisé
• un expert se charge d’étiqueter correctement certaines entrées
• Deux types d’apprentissage supervisé selon le type du résultat
obtenu

La classification La régression
Le résultat obtenu est une valeur Le résultat obtenu est une valeur
discrète continue

La résultat à prédire peut prendre une La résultat à prédire peut prendre


valeur d’un ensemble fini de valeurs : n’importe quelle valeur.
Classe

Par exemple, prédire si un mail est Par exemple, prédire le prix du


SPAM ou non, le résultat peut prendre véhicule étant données des

RA
deux valeurs possibles : {spam, non caractéristiques d’un véhicule

RI
spam}

G
16
L’apprentissage non-supervisé
🡺Aucune information n’est disponible sur les sorties o.

🡺L’algorithme d’apprentissage doit découvrir par lui même


La structure des données.

Exemples de tâches associées à l'apprentissage non supervisé

– catégorisation/regroupement/segmentation
Construire des classes automatiquement en fonction des exemples
disponibles
– Réduction de dimensions 🡺 Diminuer l’ensemble des attributs

– Règles d'association 🡺 Analyser les relations entre les variables ou


détecter des associations

RA
RI
G
17
L’apprentissage par renforcement
Nous ne possédons pas la sortie "o" jugée correcte pour un certaine
entrée "i".
– Il repose sur le principe d’essai/erreur.
– on peut mesurer la qualité d’une sortie "récompense" (reward)

Exemple
• Un robot doit "retourner des crêpes"
– La récompense peut être
» +3 si la crêpe est retournée
» -1 si la crêpe reste dans la poêle
» -5 si la crêpe tombe
• Le rôle du robot est de maximiser la récompense à travers plusieurs
essaies.

RA
RI
G
18
Processus d’apprentissage :
du problème vers le modèle

RA
RI
G
19
Etape 1 : définir le problème et
déterminer le type d’apprentissage
Tâche souhaitée 🡺 Problème ML
– Filtrage des e-mails 🡺 supervisé
– vision par ordinateur 🡺 supervisé + Non supervisé
– Conduite autonome 🡺 renforcement
– Chat bots 🡺 supervisé + renforcement
– Jouer et gagner des jeux 🡺 renforcement
– Diagnostic médical 🡺 supervisé
– Recommandations de produits 🡺 supervisé + Non supervisé
– Suggestions d’amis/de contenu 🡺 supervisé + Non supervisé
– Reconnaissance vocale 🡺 supervisé
– Sous-titrage vidéo 🡺 supervisé + Non supervisé
– Traduction d’un texte 🡺 supervisé

RA
RI
G
20
Etape 1 : définir le problème et
déterminer le type de traitement

Formuler le problème d’une manière précise et concise

Problème Type de traitement


d’estimer le prix des 🡺 Régression
appartements.
Dégager les objets dans les 🡺 Catégorisation /
images Classification
programmer le jeux d’échec 🡺Apprentissage par
renforcement
regrouper ensemble les images 🡺 Catégorisation
similaires dans une bases.

RA
détermine l’espèce d’une fleur 🡺 Classification

RI
G
21
Etape 2 : Préparation des données
(inputs)

• Les inputs sont aussi appelée observation ou instances


• Les différentes sources : mesures, observations collectée, web
scraping, free databases, …
• Chaque observation admet un certain nombre
d’attributs(appelées aussi variables )
• Toutes les observations d’un même ensemble (base) doivent
avoir les mêmes attributs (en nombre et en type)
• Les observations peuvent être textuelles, numériques, vidéo,
images ou multi-média

RA
RI
G
22
Exemple de base de données

RA
RI
G
23
Préparation des données : Transformer
les données bruts … Pourquoi!?

• La plupart des algorithmes utilisés en ML nécessite des


données sous un format spécifique.
• Les données peuvent contenir des informations manquantes,
redondantes, invalides, erronées et inconsistantes

🡺 Un "Bon" protocole de préparation de données donne


de "Bonnes données" qui conduisent à un résultat de prédiction plus
fiable

RA
RI
G
24
Préparer les données... Pourquoi!?
❑ Exemple :
Les données réelles présentent des problèmes de qualité.
o incomplétude : contient des valeurs manquantes ou des données dépourvues d'attributs
o Bruit : contient des enregistrements incorrects ou des exceptions
o incohérence : contient des enregistrements incohérents

Valeur
manquante

Erreur valeur

Erreur saisie
Duplication

RA
invalide

RI
Erreur saisie

G
Format dépendance
incorrecte 25
Exemples de transformation des
données brutes (rowdata)
Type de transformation exemple
La discrétisation des données moyenne <12 🡺 passable ;
continues moyenne <14 🡺 assez bien ;
moyenne >= 18 🡺 excellent
modifier le type d’un attributs date de naissance 🡺 âge
date d’abonnement 🡺 durée…
Normalisation = Réduire les Diviser par la valeur maximal 🡺 avoir des
attributs à la même échelle données entre 0 et 1.
Supprimer les données aberrantes Corriger Erreur de saisi, de mesure
Complétez les données Complétez les valeurs des attributs
manquantes manquants par la moyenne
Suppression - l’observation incomplète
- Attribut avec trop de valeurs manquantes

RA
Réduire la dimension Supprimer les attributs non pertinents

RI
G
Etiquetage = label (supervisé) Ajouter attribut contenant le label

26
G
27

RI
RA
Apprentissage supervisé
1ère étape : phase apprentissage (training)
A partir des Input, on choisit un échantillon dit d'apprentissage dont la sortie est
connu.
Cet échantillon est utilisé pour estimer une fonction de prédiction = création du
modèle.
Cette étape peut contenir une phase de validation avec 20% de l’échantillon
2ème étape : phase de test
Utiliser la fonction de prédiction (le modèle) définit dans l’étape précédente afin de
déterminer des sorties (output) relatifs aux inputs non utilisées dans la phase
apprentissage.
Proportions usuelles : 70% training , 30% test

3ème étape : Evaluation et Recommandations


Calculer le Taux d’erreurs du modèle
La sortie connue d’une entrée de l’ensemble de test est comparée avec le résultat
donné par le modèle.

RA
Taux d’erreur = pourcentage de tests incorrectement prédis par le modèle

RI
G
28
Types d’apprentissage supervisé

• La régression
Régression linéaire : Le résultat obtenu est une valeur contenu
Exemple : prédire le prix du véhicule étant données ses
caractéristiques quantitatives
Régression logistique : le résultat est une probabilté d’appartenir à
une ou l’autre des catégories proposées (≅)

• La classification
– Le résultat obtenu est une valeur discrète d’un ensemble de Classes
Exemple : prédire si un mail est SPAM ou non, le résultat
peut prendre deux valeurs possible : {spam, non spam}

RA
Exemple : exempl1_reg_lineaire

RI
G
29
Régression Logistique
– Variable à expliquer Y est qualitative
3 types de régression logistique
– binaire ⇒ Y binaire (ex : vivant / décès)
– ordinale ⇒ Y ordinale (ex : stades de cancer)
– multinomiale ⇒ Y qualitative (ex : types de cancer)
– Variables explicatives X=[x1,…,xn] sont qualitatives ou quantitatives
Il n’existe pas une méthode analytique pour résoudre ce problème
– Il faut utiliser des méthodes numériques d’approximation du maximum
• Méthode de descente de gradient
• Méthode de Newton-Raphson

RA
RI
G
30
Apprentissage supervisé :
Classification
Un classificateur est un modèle qui permet de décider de l’appartenance
d’une observation donnée à une classe particulière.
🡺 Deux types de classification
• Classification binaire ( SPAM ou non )
• Classification Multi-classes :
exemple : un objet dans une image (chien, cheval, chat)
Les modèles de classification (classificateurs)
K-NN : K Nearst Neighbors
SVM : Support Vector Machine
Arbre de Décision :Random Forets, XGBoost (Gradient Boosting)
DNN : Deep Neural Networks

RA
CNN : Convolutional Neural Network en combinaison avec un classifieur

RI
G
31
Elaboration d‘un modèle de
Classification

RA
RI
G
32
Principe du K-NN
Prédire la classe d’une donnée (observation) Onew en s’appuyant sur
une base de données étiquetées en 2 étapes :
- calculer toutes les distances entre Onew et les données de la base,
- affecter à Onew la même classe que celle des k données qui lui sont le
plus proches, k étant fixé à l’avance.
Le calcul de la distance est réalisé selon l’une des formules de calcul de
distance (euclidienne, manhattan,…)

Les points faibles :


coût élevé en puissance de calcul

RA
surcharge de la mémoire par toutes les données d’entraînement.

RI
G
🡺 K-NN convient donc plutôt aux problèmes d’assez petite taille.

33
Exercice K-NN

Déterminez la classe du point


vert pour :
• K=3
🡺

• K=5
🡺

RA
RI
G
34
Exemple : Modèle KNN

- 2 classes : pomme et mandarine


- Attributs pertinents : poids', 'largeur', 'hauteur'
Objectifs : Entraîner et tester un modèle K-NN avec K=3

RA
Onew1 : poids = 20, largeur = 4.3 , hauteur = 5.5

RI
G
Onew2 : poids = 180, largeur = 8.0 , hauteur =6.8

35
36
Algorithme arbre de
décision
❑Ensemble de règles de classification basant leur décision sur des tests
associés aux attributs, organisés de manière arborescente.
Motivation : Produire des classifications compréhensibles par
l’utilisateur.
Un arbre est équivalent à un ensemble de règles de décision : un
modèle facile à comprendre.
❑Principe : Prédire la valeur d’un attribut à partir d’un ensemble de
valeurs d’attributs
❑Un arbre est composé de :
nœuds : classes d’individus de plus en plus fines depuis la racine.
arcs : prédicats de partitionnement de la classe source.

RA
RI
G
37
Algorithme arbre de
décision

RA
RI
G
38
Algorithme arbre de
décision

RA
RI
G
39
G
40

RI
RA
Evaluation d’un modèle de
régression linéaire
Coefficient de détermination R2
– Un indicateur de la qualité d’une régression linéaire simple
– à quel point l’équation de régression est adaptée pour décrire la
distribution des points.
0 ≤ R2 ≤ 1 : plus R2 est proche de 1, plus le modèle semble pertinent
• La valeur 0 : indique un pouvoir de prédiction faible
• La valeur 1 : indique un pouvoir de prédiction fort.

RA
RI
G
41
Les métriques de mesures de la
performances classification
Evaluation d’un modèle de

G
42

RI
RA
Les mesures de performances
Exemple : La personne est-elle
enceinte ? (classification binaire)
• True Positive : Le modèle prédit
enceinte (+) et effectivement la
personne est enceinte (+).
• True Negative : Le modèle prédit
non enceinte (-) et effectivement
la personne n’est pas enceinte (-).
• False Positive : Le modèle prédit
enceinte (+) alors que la personne
ne l’est pas (-).
• False Negative : Le modèle prédit
non nceinte (-) alors qu’en réalité

RA
elle l’est (+)

RI
G
43
Matrice de Confusion
C’est un matrice carrée de taille n (nombre de classes)
Permet d’avoir une représentation visuelle de la performance d’un
classificateur
Les indicateurs de performance sont calculés à partir de quatre
nombres qui correspondent aux nombre de Vrais Positifs (VP), le
nombre de Faux Positifs (FP), le nombre de Vrais Négatifs (VN), et le
nombre de Faux Négatifs (FN).

Valeur Réelles

Malade Non malade

Malade TruePositive FalsePositive


prédites
Valeurs

RA
Non FalseNegative TrueNegative

RI
Malade

G
44
Overfitting / underfitting
Sur-apprentissage (Overfitting)
– Apprentissage par cœur : incapacité de généralisation
– L’erreur d’apprentissage est très faible vs erreur phase de test est élevée
Causes
- Le modèle est trop complexe
- Un très grand nombre de paramètres par rapport à la quantité de données
- Le modèle apprend les particularités (par ex. le bruit) des données
Solutions
Limiter la complexité du modèle, diversifier les données d'entraînement
Sous-Apprentissage (underfitting)
- La fonction d’apprentissage n’est pas assez riche pour pouvoir décrire la diversité dans les
données
- Complexité de modèle insuffisante,
Causes
-Un nombre de paramètres trop faible par rapport à la complexité des données
- Une quantité de données d'entraînement insuffisante.
Solutions
- Augmenter la complexité du modèle,

RA
- Ajouter des variables d'entrée pertinentes,

RI
- Augmenter le nombre de paramètres du modèle

G
- Collecter plus de données d'entraînement

45
Exercice
Supposons que nous ayons un modèle de classification binaire qui
prédit si un email
est du spam ou non. Lorsque nous évaluons la performance de ce
modèle, nous
pourrions calculer à la fois le rappel et la précision.
Imaginons que nous avons un ensemble de données contenant 100
emails, dont 20
sont du spam et 80 ne le sont pas. Nous appliquons notre modèle de
classification et
obtenons les résultats suivants :
● Vrais positifs (spam identifié comme spam) : 80
● Faux positifs (non-spam identifié comme spam) : 10
● Vrais négatifs (non-spam identifié comme non-spam) : 5
● Faux négatifs (spam identifié comme non-spam) : 5
Calculer l’accuracy, le recall, la précision et le F1 score. Interpréter le
résultat.

RA
RI
G
46
Correction
Accuracy = (Vrais positifs + Vrais négatifs) / Nombre total de messages =
(80 + 5) / 100 = 0,85

Précision = Vrais positifs / (Vrais positifs + Faux positifs)


= 80 / (80 + 10) = 0,8889

Rappel = Vrais positifs / (Vrais positifs + Faux négatifs)


= 80 / (80 + 5) = 0,9412

F1 score = 2 * (précision * rappel) / (précision + rappel)


= 2 * (0,8889 * 0,9412) / (0,8889 + 0,9412) = 0,9143

RA
RI
G
47
Interprétation des résultats
Recall = 0,94
🡺 le modèle est capable d'identifier 94% des messages de spam dans
l'ensemble de données
🡺 une faible probabilité de manquer des messages importants
L'accuracy = 0,85
🡺 indique que le modèle a correctement classé 85% des messages
🡺 le modèle a une bonne performance globale (attention mesure trompeuse)
La précision = 0,89
lorsque le modèle classe un message comme spam, il a 89% de chances
que ce message soit réellement du spam.
faible probabilité de classer à tort un message légitime comme spam.
Le F1 score = 0,91.
🡺 le modèle a un bon équilibre entre la capacité à identifier les

RA
messages de spam et la capacité à éviter de classer les messages légitimes

RI
comme spam.

G
48
Data Science Python Tools

Google collab

RA
RI
G
49
DATA SCIENCE PYTHON
LIBRARIES

used for data analysis and


Scikits Learn
NumPy manipulation. It provides used for machine learning tasks
This is a mathematical library. tools for such as classification,
Has a powerful N-dimensional data cleaning, merging, regression, and clustering.
array object, linear algebra, provides a range of algorithms
high-level mathematical reshaping,
and tools .
functions, etc. slicing, and filtering data.

open-source machine learning


framework developed by for building and training

RA
used for creating static,
Google that is used to build animated, and interactive neural networks, and to

RI
and train machine learning visualizations of data simplify the process of

G
model building and deploying
machine learning models

50
La bibliothèque scikit-learn

C’est une librairie Python permet de créer, paramétrer des modèles


de machine Learning dans le cadre d’apprentissage supervisé et non
supervisé

RA
RI
G
51
• Bibliothèque open source de calcul numérique et de deep learning
compatible avec le langage Python
• Permet de simplifier le processus d’acquisition de données,
d’entraînement des modèles de Machine Learning et de génération de
prédictions
• Le langage Python offre une API front-end pratique et confortable pour
créer des applications à l’aide de ce framework.
• TenforFlow intègre Keras, une API de deep learning de haut niveau
qui permet de créer des réseaux de neurones en quelques lignes de
code avant de les entrainer et les déployer via TensorFlow

• C’est une API de réseau de neurones écrite en langage Python. Une


bibliothèque Open Source, exécutée par-dessus des frameworks tels
que Theano et TensorFlow
• Keras est modulaire, rapide , simple d’utilisation et intuitive pour créer
des modèles de Deep Learning.

RA
RI
• Permet de créer des "layers " pour les RNA à architectures complexes.

G
52
Activités 1 , 2 & 3
Objectifs :
1- préparation des données
2- Régression linéaire
3- classification multi-classes K-nn
Utilisation des librairies :
- pandas
- sklearn
- matplotlib

Pour aller plus loin encore : utiliser le modèle XGBoost et SVM


dans la 3ème activité

RA
RI
G
53
Réseaux de neurones
& Deep Learning
RNA ou ANN (Artificial Neural Network)
- un modèle de calcul
- conception schématiquement
inspirée du fonctionnement des
neurones biologiques.
- Il permet de réaliser des traitements
d’apprentissage automatique.
- Grande vitesse de traitement

RA
RI
G
54
Architecture des RNA
- Des blocs opérant en parallèle et organisés en couches
- Couche d’entrée : valeurs des attributs
- Chaque entrée à une couche est pondérée par un poids
- Couche sortie : fournit, grâce à une fonction particulière,
le résultat du modèle
- 1 ou plusieurs couches intermédiaires.
- La couche intermédiaire reçoit en entrée les données en
sortie de la couche précédente, qui ont subi des
transformations par l’application de fonctions
mathématiques appelées fonctions d’activation.
- La taille de la couche sortie dépend du résultat objectif

RA
RI
G
55
Exemples
de RNA

RA
RI
G
56
Exemples de
Fonctions d’activation
Rôle Fonction Calcul valeur
Inter-couche ReLU F(x)= max(x, 0) 0 ou x
Classification Binaire Sigmoid [0, 1 ]
Regression logistique
Multi-classes Softmax

Classification binaire Tanh [-1, 1 ]


à valeurs négatives

RA
RI
G
Fonction ReLU Fonction Sigmoïde Fonction Softmax Fonction Tanh

57
Principe de
L’apprentissage dans un RNA

- Propagation avant (feedforward) 🡺 Pas de cycle dans le RNA


- Consiste à ajuster progressivement les poids synaptiques wij jusqu’
à ce que les réponses soient conformes à ce que l’on attend sur la
base d‘apprentissage.
- Initialisation aléatoire des poids
- A chaque itération une observation différente est fournit au RNA.
- La modification des poids se fait grâce à une règle d’apprentissage.
- La règle d’apprentissage tend à minimiser la fonction Coût
(minimum, gradient, dérivée …) par des itérations
successives(epochs)

RA
RI
G
58
Réseaux Récurrents
RNN (feedback network)

RA
RI
G
59
Lexique
Apprentissage
(Hyperparamètres / paramètres )

Terme Signification Exemples


batch Nombre d’observations Généralement 32
soumis en 1 fois
epoch Une itération complète tel que Au min 20
toutes les entrées ont été
introduites
optimizer Algorithme de calcul pour SGD, momentum,
l’ajustement des poids adagrad, RMSprop, Adam
pendant l’apprentissage
learning-rate Facteur multiplicatif aide à la 0,001 ,,,
convergence
Loss function Fonction globale du modèle Categorical_crossentropy,

RA
MSE (mean square error)

RI
G
60
Deep Learning
et ses applications
Domaine Exemple
Vision par ordinateur détection d'objets, la segmentation d'images,
classification, génération d'images surveillance
vidéo, diagnostic médical, robotique
Traitement langage naturel traduction automatique, reconnaissance
vocale, génération de texte, traitement du
langage naturel (analyse de sentiments,
chatbots, résumés automatiques, etc.
Jeux StarCraft, AlphaStar, jeu d’échecs
Finance et éconimie prévision des marchés financiers, analyse de
données financières, détection de fraude,
évaluation des risques,

RA
Robotique contrôle des robots, manipulation d'objets,

RI
navigation autonome, etc.

G
61
CNN : Convolutional
Neural Network
- Très performant pour la classification d’images
- Comporte 2 parties :
• Des couches qui permettent d’extraire les caractéristiques
des images (couches de convolution et de pooling)
• Des couches de classification (fully connected neurones)

RA
RI
G
62
Implémentation d’un CNN
Construisons un modèle CNN avec Tensorflow
Objectif
Créer un modèle CNN pour classifier des images.
Dataset utilisée
MNSIT Fashion de keras contient plus de 70000 images en niveau de gris
Librairies
numpy , tensorflow , matplotlib, tensorflow.keras, pandas, sklearn, seaborn

RA
RI
G
63
Description des données
Dimension : 28x28,
Niveau de Gris
10 étiquettes :

0 – T-shirt/haut
1 – Pantalon
2 – Pullover
3 – Robe

RA
4 – Manteau

RI
G
5 – Sandale
6 – Chemise 64
Etapes de Conception d’un
modèle de classification CNN
1- Import des librairies
2- Import / ouverture dataset
3- préparation des données (normalisation, redimensionnement,…)
4- Diviser les données en 2 ensembles : Train et Test
5- Création des couches du modèle
6- Choix des paramètres, hyperparamètres et compilation du modèle
7- phase d’apprentissage
8- Evaluation des performances du modèle
9- Appliquer le modèle sur un jeu de données

RA
RI
G
65
explication instruction python
fonction sur les tableaux import numpy as np
import du framework tensorflow import tensorflow as tf
afficher graphiques, courbes,… import matplotlib.pyplot as plt
import des couches et différents from tensorflow.keras.layers import Dense, Conv2D, Input,
éléments d’un modèle Flatten, Dropout, MaxPooling2D
import composante model from tensorflow.keras.models import Model
opérations sur les dataset… import pandas as pd
éléments évaluation modèle from sklearn.metrics import classification_report,confusion_matrix
arrêt de l’app si convergence from tensorflow.keras.callbacks import EarlyStopping
Affichage graphique élaborés import seaborn as sns
import du dataset mnist fashion dataset_fashion_mnsit = tf.keras.datasets.fashion_mnist
séparation jeu train/test (X_train, y_train), (X_test, y_test)=dataset_fashion_mnsit.load_data()
compter le nombre d’étiquettes pd.DataFrame(y_train)[0].value_counts()
normalisation des tensor [0,1] X_train = X_train / 255
X_test = X_test / 255
afficher dimension tensor print(f"Données entrainement: {X_train.shape}, Test: {X_test.shape}")
afficher la première image plt.imshow(X_train[0])
et son étiquette y_train[0]
ajouter 1 dimension pour couleur X_train = X_train.reshape(60000, 28, 28, 1)

RA
X_test = X_test.reshape(10000, 28, 28, 1)

RI
"""création du modèle""" mon_cnn = tf.keras.Sequential()

G
66
explication instruction python
3 couches de convolution, avec Nb mon_cnn.add(Conv2D(filters=32, kernel_size=(3,3),
filtres progressif 32, 64 puis 128 input_shape=(28, 28, 1), activation='relu'))
mon_cnn.add(MaxPooling2D(pool_size=(2, 2)))
mon_cnn.add(Conv2D(filters=64, kernel_size=(3,3),
input_shape=(28, 28, 1), activation='relu'))
mon_cnn.add(MaxPooling2D(pool_size=(2, 2)))
mon_cnn.add(Conv2D(filters=64, kernel_size=(3,3),
input_shape=(28, 28, 1), activation='relu'))
mon_cnn.add(MaxPooling2D(pool_size=(2, 2)))
remise à plat mon_cnn.add(Flatten())
Couche dense classique ANN mon_cnn.add(Dense(512, activation='relu'))
Couche de sortie (classes de 0 à 9) mon_cnn.add(Dense(10, activation='softmax'))
meilleur nombres de epochs early_stop = EarlyStopping(monitor='val_loss',patience=2)
compiler le model mon_cnn.compile(optimizer='adam',
loss='sparse_categorical_crossentropy', metrics=['accuracy'])
afficher résumé model mon_cnn.summary()
"""train model""« mon_cnn.fit(x=X_train, y=y_train, validation_data=(X_test, y_test),
epochs=25,callbacks=[early_stop])
Evaluation du modèle losses = pd.DataFrame(mon_cnn.history.history)
Affichage courbe accuracy et Loss losses[['accuracy', 'val_accuracy']].plot()
losses[['loss', 'val_loss']].plot()
Prédiction^pour X_test pred=np.argmax(mon_cnn.predict( X_test ) , axis=-1)
"""Matrice de Confusion graphique""« plt.figure(figsize=(6,4))

RA
sns.heatmap(confusion_matrix(y_test, pred),annot=True)

RI
Matrice confusion textuelle cm=confusion_matrix(y_test, pred)

G
print(cm)
Classification Report print(classification_report(y_test, pred))

67
Feuille de route ML

RA
RI
G
68
Techniques d'amélioration des
performances du modèle
🡺 Réglage des hyperparamètres du modèle (gridsearch)
🡺 Validation croisée pour l'évaluation du modèle (K-fold)
🡺 Techniques de régularisation pour éviter overfitting (earlystop)

RA
RI
G
69
Apprentissage non supervisé
Pas d’étiquettes pour les observations 🡺 apprentissage non supervisé
Rôle du modèle : analyser et comprendre la structure des données

Clustering : former des clases et Réduction de dimensionnalité :


regrouper les observations réduire nombre d’attributs

RA
Règles d'association : trouver des liaisons

RI
entre les observations et/ou les attributs

G
70
Clustering
Basée sur 2 notions :
• Calcul de distances
• Regroupement selon un critère de similarité ou désimilarité

Type regroupement Algorithme de clustering


Catégorisation par • K-means et ses variantes
partitionnement • Partitionnement Hiérarchique Descendant
• Partitionnement spectral

Catégorisation par Regroupement Hiérarchique Ascendant


agglomération
Catégorisation par • Mélange de gaussiennes (GMM)
modélisation • Cartes de Kohonen (Self-Organizing Maps, SOM)
Catégorisation basé DBSCAN

RA
sur la densité

RI
G
71
K-means, K-means++,
K-médoides, Fuzzy C-means
Répartir chacun des N individus dans une certaine classe i en
minimisant la variance intra-classe données par une fonction objectif
🡺 Somme distances entre centre d’une classe et chaque membre

Hiérarchique ascendante CAH


On démarre avec N classes
Regrouper au fur et à mesure les
classes 2 par 2 selon un indice
d’agrégation Jusqu’à aboutir à une
seule classe
Un diagramme (dendogramme) permet
de déterminer le nombre de classes

RA
optimal

RI
G
72
DBSCAN
DBSCAN : Density-Based Spatial Clustering of Applications with Noise.
– Catégorisation basée sur la densité
– Rechercher les zones se caractérisant par une grande
densité de données.
– Separation des classes de haute densité de ceux ayant une faible
densité.
– Se base sur deux paramètres "eps" et "MinPts"

RA
RI
G
73
Activité 5 : clustering
K-means
On désire réaliser une catégorisation des individus de la base
"pima-indians-diabetes.csv" par l’algorithme k-means.
1- Préparation des données
Pour pouvoir afficher les individus dans un plan (2D), avec les classes
d’appartenance on fera les restrictions suivantes :
Pour la description des individus, on se restreindra à deux attributs.
Pour le nombre des individus, on se restreindra à 100 individus.
a- Construire le nouvel ensemble de données (100 individus et 2 attributs).
b- Effectuer la normalisation des donnés afin que valeurs des deux attributs
soient dans un intervalle [0-1].
c- Afficher dans un graphe les individus tel que le premier attribut représente
les abscisses et le deuxième attribut représente les ordonnés.

RA
2- Catégorisation : Effectuer la catégorisation par la méthode des k-moyennes

RI
puis afficher le résultat de la catégorisation pour des valeurs de k =2, 3 et 4.

G
3- Conclure.
74
Activité 6 : clustering CAH
Effectuer la catégorisation automatique d’un ensemble de fromages (CAH).
1- Importer les données à partir du fichier "fromage.txt".
2- Afficher la dimension de l’ensemble de données et en déduire le nombre des
variables utilisées.
3- Afficher les noms de ces variables.
4- Déterminer l’intervalle de variation de chacune des variables.
5- Changer l’échelle des données pour les ramener dans intervalle [0-1].
6- Afficher le dendrogramme correspond
a- Utiliser la distance euclidienne et tester plusieurs critères d’agrégation :
"indice de Ward", "le lien minimum", "le lien maximum" et "le lien moyen".
b- Analyser les dendrogrammes obtenus en identifiant, pour chacun des
critères, le meilleur choix du nombre de classes k.

RA
7- Effectuer la catégorisation avec CAH et visualiser les résultats obtenus et ce
en utilisant : Variables : 1er et 2ème attributs, Distance : euclidienne,

RI
G
agrégation : "l’indice de Ward", "le lien maximum" et "le lien moyen".
75
Réduction de dimensionnalité
C’est Quoi?
• Réduire le nombre de variables en conservant au mieux leur structuration initiale et leur
organisation globale.
• Permet d’améliorer la lisibilité des données.
Comment ?
• Choisir un sous ensemble de variables parmi les variables de départ
• Créer des nouvelles variables combinaisons linéaires des variables de départ
Méthodes
• L’analyse en composantes principales (ACP)
- Adaptée à des observations décrites par des variables quantitatives.
- Trois variantes : ACP générale, ACP centrée, ACP normée
• L’analyse des correspondances binaires (AFCB) ou multiples (ACM)
- Adaptée à des observations décrites par des variables nominales (à modalités).
• L’analyse factorielle discriminante (AFD),
- Adaptée à des observations décrites par des variables quantitatives et appartenant à

RA
plusieurs classes.

RI
G
76
ACP : Analyse en
Composantes Principales
C’est Quoi ?
L’ACP permet de réduire les dimensions d’une donnée multivariée à
deux ou trois composantes principales, qui peuvent être visualisées
graphiquement (2D ou 3D), en perdant le moins possible d’information.

Comment ?
1. Normalisation des variables
🡺 Centrer et réduire les données.
2. Trouver les nouvelles variables
🡺 Calculer les composantes principales
3. Décrire les données d’origine en utilisant les nouvelles variables

RA
RI
G
77
ACP avec
from sklearn import decomposition
pca = decompo sition.PCA()
pca.fit(X_CR) #déterminer les nouveaux axes,
# X_CR are inputs after being centered and scaled
#afficher les inerties expliquées pour les différents nouveaux axes
print(pca.explained_variance_ratio_)
Un vecteur qui contient les inerties

RA
RI
G
78
Activité 7 ACP
Soit la base "IRIS" du package sklearn.datasets. La base contient des fleurs
de type Iris appartenant à trois classes différentes (Setosa, Versicolour et
Virginica).
1- Importer les données à partir de la base "IRIS".
2- Afficher la dimension de l’ensemble de données et en déduire le nombre
des variables utilisées.
3- Afficher les noms de ces variables.
4- Centrer et réduire les données : normaliser les valeurs des variables pour
qu’elles suivent une loi normale de moyenne 0 et de variance 1.
5- Effectuer l’analyse en composantes principales (ACP).
6- Projeter les données sur les nouveaux axes.
7- Afficher les inerties expliquées. En déduire le nombre approprié de
composantes principales qu’on doit considérer.

RA
RI
8- Afficher les données en considérant 3 composantes principales, puis 2

G
composantes principales. Conclure.

79
Règles d’association
– Utiliser dans le cadre de la fouille de données (data Mining)
– Permet de dégager les implications conditionnelles entre un ensemble de
variables appelées items
– Permet de découvrir des relations, corrélations, ou structures
causales entre deux ou plusieurs variables à partir d’un entrepôt de données
(BD, fichier, …)
Exemples d’application
– L’analyse des données de ventes dans un supermarché
• Une règle découverte pourrait indiquer qu'un client achetant des oignons et
des pommes de terre simultanément, serait susceptible d'acheter un
hamburger.
• Une telle information peut être utilisée pour prendre des décisions
marketing
🡺 des promotions ou des emplacements bien choisis pour les produits
associés
– L’analyse des logs web sur un serveur web

RA
• Permet de découvrir de comportements utilisateur (web usage mining) dans
le but d’adapter ou de personnaliser le site ou de découvrir des

RI
G
comportements types sur certains sites (E-commerce par exemple)

80
Processus de découverte
des règles d’associations
2 étapes :
1. L’extraction des ensembles fréquents d’items (Itemsets fréquents)
= Ceux qui ont un support minimum (supérieur à un seuil)
2. La génération des règles d’associations à partir de ces ensembles
Sous la forme : Antécédent 🡺 Conséquent
Définitions
– Items : Un domaine d’application donné doit être décrit par une liste
limitée d’atomes (items).
Par exemple, pour l’application du panier de ménagère la liste des
items correspond à l’ensemble d’articles disponibles dans le
supermarché [pain; fromage; chocolat; …].

RA
– Itemset : Un ensemble d’items : c’est une succession d’items.

RI
G
81
Règles d’association

RA
RI
G
82
Règles d’association

RA
RI
G
83
Règles d’association

RA
RI
G
84
Règles d’association

RA
RI
G
85
Règles d’association

RA
RI
G
86
FIN

87

Vous aimerez peut-être aussi