0% ont trouvé ce document utile (0 vote)
11 vues178 pages

Cours de Machine Learning 2023/2024

Transféré par

hajritasnim7
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues178 pages

Cours de Machine Learning 2023/2024

Transféré par

hajritasnim7
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Ministère de l’enseignement supérieur et de la recherche scientifique

Direction Générale des études Technologiques


Institut supérieur des études technologiques de Kélibia

Cours
Machine Learning

Chargé de cours :
Nacef Abir
Courriel: nacefabir91@[Link]

Année universitaire:2023/2024
Avant Propos
 Spécialité : Système d’information + Multimédia et développement web

 Population : Etudiants du troixième niveau des Etudes Supérieures


Technologiques.

 Niveau : semestre 1

 Charges horaires : 1h :30 par semaine sur 12 semaines

 Nature cours : Cours Intégrés

 Prérequis : Python

 Langue : français 2
Avant Propos
 Evaluation
 La note du devoir surveillé : un examen partiel, possible de le faire à
partir de la septième semaine de cours
 Examen Final : il s’agit d’un examen de synthèse qui aura lieu à la fin
du semestre.

 Moyens Pédagogiques
 Support de cours papier.
 Support de cours numérique.
 Sujets d’examens antérieurs.

3
Répartition horaires

Numéro Nom du chapitre Semaines


1 Introduction au Machine Learning S1, S2, S3
2 Préparation des données S4, S5
3 Les algorithmes de Machine Learning S6, S7, S8, S9
4 Deep Learning S10, S11, S12

4
Objectifs du cours
 Comprendre les principes fondamentaux du machine learning à travers une
introduction détaillée, y compris les concepts de base, les différents types
d'apprentissage, et les applications dans divers domaines.
 Acquérir les compétences nécessaires pour préparer les données, en
comprenant les techniques de nettoyage, de transformation et de séparation
des ensembles de données.
 Explorer en profondeur les algorithmes de machine learning les plus
couramment utilisés, notamment les algorithmes de régression, et de
classification.
 Plonger dans le domaine du deep learning en étudiant ses principes, ses
architectures de base telles que les réseaux de neurones et les CNN, ainsi
que ses applications dans plusieurs domaines.

5
Chapitre1
Introduction au
Machine
Learning
Objectifs spécifiques
 Examiner les concepts clés de l'intelligence artificielle, y compris sa définition, ses
origines historiques et ses limites actuelles, afin de comprendre l’amélioration
apportée par le Machine Learning.
 Explorer le domaine du machine learning, en comprenant ses applications dans
divers domaines.
 Comprendre les objectifs du machine learning et les types de connaissances
extraites, y compris les modèles, les règles et les associations.
 Explorer le fonctionnement du machine learning, en comprenant les différents types
d'apprentissage (supervisé, non supervisé, renforcement), les algorithmes associés à
chaque type et des exemples d’applications concrets pour chacun.
 Comprendre les différentes étapes à suivre pour créer un système de machine
learning et explorer les métriques d'évaluation utilisées pour évaluer les
performances des modèles.

7
Plan
 Introduction
 Principe de fonctionnement d’une machine
 Intelligence Artificielle
 Définition, Naissance et Limites
 Machine Learning
 Domaine d’application
 Objectifs du Machine Learning
 Type de connaissances extraites
 Fonctionnement
 Les données
 Types d’apprentissage
 Etapes à suivre pour créer un système de Machine Learning
 Les métriques d’évaluation

8
Introduction
Principe de fonctionnement d’une
machine (1/2)
 Une machine est une unité de calcule qui se charge de traiter des données
en fonction d'instructions programmées.
 Il est conçu pour effectuer diverses opérations:
 Le traitement de l'information,
 Le stockage de données
 La manipulation de symboles
 La résolution de problèmes
 L'exécution de tâches variées.

9
Introduction
Principe de fonctionnement d’une
machine (2/2)
 Questions:
 Quelle valeur au-delà de la restitution des données?
 Comment tirer les informations des données?
 Comment découvrir les tendances/ les structures à partir des données?
 Quel est le programme qui permet de définir un chat?

Connaitre un chat??? 10
Introduction
Intelligence Artificielle: Définition
(1/2)

 L'intelligence artificielle (IA) désigne l'utilisation de


diverses techniques visant à permettre aux machines de
simuler une forme d'intelligence humaine.
 Son déploiement s'étend à de nombreux domaines
d'application.

11
Introduction
Intelligence Artificielle: Définition
(2/2)
 L'intelligence artificielle traditionnelle se réfère aux approches classiques

 Repose principalement sur des bases de règles et des méthodes


symboliques, telles que les systèmes experts.

 Ces méthodes utilisent des règles explicites pour résoudre des problèmes
dans des domaines spécifiques en imitant le raisonnement humain sur la
base de connaissances préalablement définies.

12
Introduction
Intelligence Artificielle: Naissance
La notion voit le jour dans les années 1950 grâce au
mathématicien Alan Turing.
Dans son livre Computing Machinery and Intelligence, ce dernier
soulève la question d'apporter aux machines une forme d'intelligence.
Il décrit alors un test aujourd'hui connu sous le nom « Test de
Turing »

Un sujet interagit à l'aveugle avec un autre


humain, puis avec une machine programmée
pour formuler des réponses sensées. Si le sujet
n'est pas capable de faire la différence, alors la
machine a réussi le test et, selon l'auteur, peut 13
Introduction
Intelligence Artificielle
traditionnelle : limites
 Incapacité à gérer la complexité et l'incertitude des données réelles.
 Mal à s'adapter à des environnements dynamiques et à prendre en compte
un large éventail de facteurs interdépendants.
 La création et la maintenance de règles explicites peuvent être coûteuses
 Nécessite une expertise humaine importante.

 Nécessité de l’expertise humaine


et incapacité de gérer des grand
masse de données

14
Machine Learning:
Passage de l’intelligence Artificielle
traditionnelle au machine Learning
(1/2)

15
Machine Learning:
Passage de l’intelligence Artificielle
traditionnelle au machine Learning
(2/2)

16
Machine Learning:
Pourquoi apprendre??

 Les machines d’apprentissage automatique sont des programmes


d’ordinateurs qui performent une tâche suite à un apprentissage à partir de
données et d’expériences du passé.

 Ce n’est pas utile d’apprendre à faire des chèques de paie.

 L’apprentissage est utile quand:

 L’expertise humaine n’existe pas (naviguer sur Mars),


 L’humain n’arrive pas à expliquer comment il arrive à accomplir une tâche
(reconnaissance automatique de la parole)
 Large quantité de données à traiter (Big Data)
 La solution change en court de route (routage sur un réseau Internet)
 La solution doit s’adapter à son utilisateur (biométrie, filtrage: e-mail).
17
Machine Learning:
Pourquoi l’apprentissage machine??

 Optimiser un critère de performance à partir de données ou d’expériences


passées.
 Minimiser
 Probabilité des sorties erronées produites par le système.
 Moyenne des coûts produits par des décisions erronées

 Rôle de la science informatique : algorithmes efficients pour :


 Solutionner le problème d’optimisation
 Représenter et évaluer le modèle d’inférence

18
Machine Learning:
Définition (1/2)

Le Machine Learning est une technologie d’intelligence


artificielle

Permetaux ordinateurs d’apprendre sans avoir été


programmés explicitement à cet effet.

Permet à un ordinateur d'améliorer ses performances dans


l'exécution d'une tâche à l’aide de l'expérience.

19
Machine Learning:
Définition (2/2)
Grande quantité de données + algorithmes efficaces

Un domaine qui s’appuie sur :


 La disponibilité de grandes quantités de données
 Si ensemble trop petit, les structures peuvent ne résulter que du hasard.

On peut espérer qu’un gros volume de données représente bien l’univers
(échantillon).
 Des algorithmes sûrs et efficaces
 Algorithmes sûrs : fondés théoriquement, corrects.
 Efficaces en temps et en espace.
 Résultats interprétables.
 Paramètres ajustables facilement et rapidement.

20
Domaine d’application (1/6)

De Google à Microsoft en passant


par Apple, IBM ou Facebook, toutes les grandes entreprises
dans le monde de l'informatique planchent aujourd'hui sur les
problématiques de l'intelligence artificielle en tentant de
l'appliquer à quelques domaines précis.

21
Domaine d’application (2/6)
 Dans les appareils photo des smartphones.

 En mode nocturne, elle permet d'adapter la colorimétrie à


l'environnement, et de redonner à une façade éclairée son éclat originel
pour le reproduire fidèlement sur votre cliché.

 En photographie, elle intervient aussi pour détecter des scènes précises,


pour stabiliser l'appareil ou pour optimiser la précision du zoom.

 La reconnaissance faciale: reconnaître l'utilisateur d'un téléphone


portable, mais aussi à plus grande échelle à identifier des personnes, par
exemple dans les aéroports.

22
Domaine d’application (3/6)
 Le domaine militaire (par exemple pour la prise de décisions des drones).

 Dans le secteur des finances (évaluation des risques d'une opération


comme l'octroiement d'un crédit immobilier).

 En médecine (diagnostic d'affections oculaires, analyse IRM, Détection


d’anomalie …).

 Les industries (mise en place de systèmes de maintenance pour faire face


aux problèmes de production).

 En robotique, dans les jeux vidéo (animation des personnages non-


joueurs), dans les transports (gestion du trafic dans les transports en
commun). 23
Domaine d’application (4/6)
 Les moteurs de recommandations utilisés par Netflix, YouTube, Amazon
ou Spotify.

 Les moteurs de recherche web comme Google ou Baidu

 Les fil d’actualité des réseaux sociaux tels que Facebook et Twitter.

 Les assistants vocaux tels que Siri et Alexa.

Ces plateformes recueillent des données sur leurs utilisateurs pour mieux les
comprendre et améliorer leurs performances. Les algorithmes doivent savoir ce
que les utilisateurs regardent, sur quoi ils cliquent et à quelles publications ils
réagissent sur les réseaux sociaux pour qu’ils peuvent proposer des
recommandations. 24
Domaine d’application (5/6)

La traduction linguistique automatique,


La conversion du discours oral à l’écran (speech-to-text).
L’analyse de sentiment sur les réseaux sociaux, reposant
également sur le traitement naturel du langage (NLP).
…

25
Domaine d’application (6/6)

Un autre exemple est celui des machines autonomes.

Par exemple le fonctionnement des véhicules autonomes


révolutionnaires repose sur le Machine Learning.
Pour l’heure, toutefois, les performances de l’IA restent limitées
dans ce domaine.
 Si elle parvient à se garer ou à suivre une voie sur l’autoroute, le
contrôle complet d’un véhicule en agglomération est une tâche plus
complexe ayant provoqué plusieurs accidents tragiques.

26
Objectif du Machine Learning
Créer des modèles qui peuvent être de nature

Modèles prédictifs: comportement futur des données


 Utilisent les données existantes et des résultats connus sur ces données pour
développer des modèles capables de prédire les valeurs d’autres données. e.g.
Prédire les clients qui ne rembourseront pas leur crédit.
 Utilisés principalement en classification et prédiction.

Modèles descriptifs: d’expliquer le comportement actuel des données


 Proposent des descriptions de données pour aider à la prise de décision.
 Souvent en amont de la construction de modèles prédictifs.
 Utilisés principalement en segmentation et association.

27
Types de connaissance extraites
Connaissances sous la forme de modèles permettant de

Analyses
 e.g. distribution du trafic routier en fonction de l’heure
Règles
 e.g. si un client a acheté un produit alors il sera intéressé par un autre.
Attribution de scores de qualité
 e.g. score de fidélité au client
Classification d’entités
 e.g. mauvais payeurs.

28
Fonctionnement
La création d’un modèle de machine learning est composée des deux phases:
Phase d’entrainement:
 Faire tourner un algorithme d’apprentissage, d’une manière itérative sur des
données
Phase de teste
 Appliquer le modèle sur des nouvelles données

Phase 1

Phase 2

29
Les Données:
Représentation
 Les données peuvent être vues comme une collection d’objets
(enregistrements) et leurs attributs.
 Un attribut est une propriété et ou une caractéristique de l’objet.
 Un ensemble d’attributs décrit un objet.

30
Les Données:
Attribut- valeur
 La valeur d’un attribut est un nombre ou un symbole.
 Ne pas confondre attribut et valeur

Types
 Quantitative (numérique, exprime une quantité)
 Discrète (ex : nombre d’étudiants dans un cours) ou continue (ex : longueur)
 Echelle proportionnelle (chiffre d’affaires, taille), ou échelle d’intervalle (température)
 Qualitative
 Variable ordinale (classement à un concours, échelle de satisfaction client)
 Variable nominale (couleur de yeux, diplôme obtenu, sexe)
 Les modalités d’une variable sont l’ensemble des valeurs qu’elle prend dans les
données ex : les modalités de notes sont {0, 1, 2, · · · , 20} les modalités de
couleur sont {bleu,vert,noir,...}

31
Types d’apprentissage

 Apprentissage supervisé

 Apprentissage non-supervisé

 Apprentissage semi-supervisé

 Apprentissage par renforcement

32
Types d’apprentissage
Apprentissage Supervisé:
fonctionnement (1/2)

Processus qui prend en entrée des exemples d’apprentissage contenant à la


fois des données d’entrée et de sortie.
Les exemples d’apprentissage sont fournis avec leur classe (étiquète).
But : prédire correctement une nouvelle valeur.
Utilisé principalement en classification et régression.

Jeu de Données
X y
Algorithme
d’apprentissage y
Input Ouput supervisé

33
X
Types d’apprentissage
Apprentissage Supervisé:
fonctionnement (2/2)

 Principe : étant donné un ensemble de données étiquetées

apprendre une fonction qui associe les données


aux étiquettes :

: un problème de régression
discrète set (e.g. {0, 1}) : un problème de classification
peut correspondre à un espace de fonctions linéaires ou non-linéaires
34
Types d’apprentissage
Apprentissage Supervisé: Régression
VS Classification

• Prédire le prix d’un appartement (𝑦) selon • Prédire si un email est un spam (𝑐𝑙𝑎𝑠𝑠𝑒 𝑦 =
sa surface habitable (𝑥) 1) ou non (𝑐𝑙𝑎𝑠𝑠𝑒 𝑦 = 0) selon le nombre de
•Prédire la quantité d’essence consommée liens présent dans l’email (𝑥)
(𝑦) selon la distance parcourue (𝑥) • Prédire si une tumeur est maligne (𝑦 = 1) ou

(𝒙𝟏) et l’âge du patient (𝒙𝟐)


bénigne (𝑦 = 0) selon la taille de la tumeur

35
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (1/5)
Déterminer le prix d’un appartement

36
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (2/5)
Déterminer le prix d’un appartement

X y
37
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (3/5)
Déterminer le prix d’un appartement

X y
38
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (4/5)

Déterminer le prix d’un appartement

Une seule caractéristique (surface) peut ne pas être déterministe, on peut


utiliser d’autres caractéristiques
39
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Régression (5/5)

Autres exemples:

Prédire le prix d’une action en bourse


Prédire le nombre des utilisateurs d’un service en ligne
Prédire la consommation d’énergie
…

40
Types d’apprentissage
Apprentissage Supervisé:
Classification binaire et multi-classe
Classification binaire: étiquettes Classification multi-classes: étiquettes
binaires indiquant l’appartenance à discrètes correspondent à plusieurs
un classe classes

Identifier un émail spam ou non Identifier les objets dans une image
Identifier l’image d’un chat ou non Identifier les noms des animaux dans
Identifie si une transaction une image
bancaire est frauduleuse ou non Identifier l’expression du visage
Identifier si la langue parlée est parmi une liste prédéfinie
l’arabe ou non Identifier quelle est la langue parlée
… …

41
Types d’apprentissage
Apprentissage Supervisé: Exemple de
Classification multi-classe

42
Types d’apprentissage
Apprentissage non Supervisé:
Fonctionnement

Processus qui prend en entrée des exemples d’apprentissage contenant que des
données d’entrée, Sans sortie
Pas de notion de classe
But : regrouper les exemples en paquets (clusters) d’exemples similaires.
Utilisés principalement en segmentation et réduction de dimension.
 Segmentation (Clustering): ou bien regroupement, consiste à identifier des
groupes dans les données
 Réduction de dimension: trouver une représentation des données plus fiable
que celle de l’espace dans lequel elles sont représentés (d’origine)
Principe:Etant donné un ensemble non étiqueté S = {xi , i = 1 . . . N} :
modélisation de X

43
Types d’apprentissage
Apprentissage non Supervisé VS
Supervisé (1/2)

44
Types d’apprentissage
Apprentissage non Supervisé VS
Supervisé (2/2)

45
Types d’apprentissage
Apprentissage non Supervisé:
Exemples de Segmentation

 Segmentation des clients dans un CRM


 Essaie de regrouper des clients ayant un profil similaire afin de
développer une stratégie de vente
 Essaie de trouver les clients hors de l’ordinaire (valeur aberrante) afin
de développer une stratégie spécifique à ce type
 Compression de l’image : quantification de la couleur
 Bioinformatique: apprentissage de motifs
 Détection des formes

46
Types d’apprentissage
Apprentissage semi-Supervisé:
Fonctionnement (1/2)

Processus qui prend en entrée des exemples d’apprentissage partiellement


étiqueté
utilisée lorsque le coût d'étiquetage des données est élevé et qu'il y a une
grande quantité de données non étiquetées disponibles.
Exemple: classification des articles de presse dont le jeu de donnée contient:
 100 articles manuellement étiquetés
 100000 articles non étiquetés

47
Types d’apprentissage
Apprentissage par renforcement:
Fonctionnement (2/2)
Un agent apprend à prendre des décisions en interagissant avec un environnement
dynamique.
Imaginez un robot qui apprend à jouer à un jeu vidéo. L'agent interagit avec
l'environnement du jeu
Au début, l'agent ne sait pas comment jouer et prend des décisions de manière
aléatoire.
L'agent effectue une action dans l'environnement du jeu, ce qui modifie son état.
Récompense : L'environnement du jeu fournit une récompense à l'agent en
fonction de son action.
Apprentissage : L'agent utilise la récompense reçue pour mettre à jour sa stratégie.
Il ajuste ses actions futures pour maximiser les récompenses attendues.

48
Types d’apprentissage
Apprentissage par renforcement:
Exemple

 Pour quelques applications, la sortie du système est une séquence


d’actions.
 Apprendre une politique: une séquence de sorties. Une sortie particulière
n’est pas intéressante, c’est la séquence qui importe.
 Exemples d’application;
 Problème d’assignation de crédit
 Jeux
 Robot navigant dans un labyrinthe
 Agents multiples, observation partielle, etc.

49
Types d’apprentissage
Apprentissage par renforcement:
Exemple (1/2)

50
Types d’apprentissage
Apprentissage par renforcement:
Exemple (2/2)

51
Les étapes à suivre pour créer un système de ML

1. Formaliser une tache d’apprentissage

2. Collecte et prétraitement des données

3. Extraction des caractéristiques

4. Choisir le modèle d’apprentissage

5. Entrainer le modèle

6. Évaluer le modèle

52
Création d’un système ML
Formaliser une tache d’apprentissage

 Définir la tache que l’on veut réaliser


 Quel type d’analyse?
 Quel est le type de connaissance extraite

53
Création d’un système ML
Collecte des données
 La collecte des données est une tache très importante et très lourde
 L’ensemble des données d’entrainement doit être collecté dans un format
lisible
 Une étape de nettoyage et d’exploration doit être faite pour rendre les
données plus adaptées à l’apprentissage automatique

54
Création d’un système ML
Extraction des caractéristiques
(features)
 Extraire un ensemble des caractéristiques qui caractérisent les données.
 Il faut bien sélectionner les caractéristiques: une seule caractéristique ne suffi
pas.
 Un ensemble de caractéristiques représentées sous forme d’un vecteur qui
doit être discriminant.

55
Création d’un système ML
Choisir le modèle d’apprentissage

 Choisir le modèle selon


 La tache à réaliser
 Les types des données
 La complexité des données
 La taille des données
 Plusieurs familles d’algorithmes tel que:
 Les modèles de régression
 Les arbres de décision
 Les réseaux de neurone
 Les séries temporelles

56
Création d’un système ML
Entrainer le modèle
 Le modèle est exposé aux données d’entrainement et ajuste ses paramètres
pour minimiser une fonction de perte, généralement basée sur la différence
entre les prédictions du modèle et les valeurs réelles (étiquettes correctes)

 Le modèle apprend de l’historique dans un processus itératif la relation entre


les caractéristiques (X) et la sortie (y) dans l’apprentissage supervisé.

57
Création d’un système ML
Evaluer le modèle
 Après l’entrainement du modèle, il sera évalué par les données de teste.
 L’évaluation sera effectuée par la métrique adéquate.

58
Les métriques d’évaluation
Pour la régression

 Erreur de prédiction :
L'erreur de prédiction mesure la différence entre les valeurs prédites par un modèle et les
valeurs réelles dans un ensemble de données. Il existe plusieurs façons de calculer
l'erreur de prédiction, notamment l'erreur quadratique moyenne (MSE), l'erreur
absolue moyenne (MAE) et d'autres.

 Le coefficient de la détermination R²
Le carré du coefficient de corrélation linéaire: est un indicateur qui permet de juger la
qualité d’une régression linéaire simple. Il mesure l’adéquation entre le modèle et les
données observées ou encore à quel point l’équation de régression est adaptée pour
décrire la distribution des points

59
Les métriques d’évaluation
Pour la classification (1/5)
 L’accuracy: quantifie la proportion de prédictions correctes par rapport au nombre
total d'échantillons ou d'observations dans un ensemble de données. En d'autres termes,
l'accuracy mesure la capacité d'un modèle à classifier correctement les échantillons.

Accuracy = (Nombre de prédictions correctes) / (Nombre total d'échantillons)

 L'accuracy est une mesure utile pour évaluer la performance globale d'un modèle de
classification, en particulier lorsque les classes sont équilibrées (c'est-à-dire qu'il y a à
peu près autant d'échantillons dans chaque classe).

 Cependant, elle peut être trompeuse dans des situations où les classes sont
déséquilibrées, car un modèle pourrait simplement prédire la classe majoritaire à
chaque fois et obtenir une accuracy élevée tout en étant inefficace pour identifier les
classes minoritaires.

60
Les métriques d’évaluation
Pour la classification (2/5)
Matrice de confusion:
La matrice de confusion est particulièrement utile pour évaluer la capacité
d'un modèle à discriminer entre différentes classes ou catégories.
La matrice de confusion est généralement organisée comme suit :

61
Les métriques d’évaluation
Pour la classification (3/5)

 Vrai Positif (VP) : Nombre d'échantillons de la classe positive correctement


prédits comme positifs par le modèle.

 Vrai Négatif (VN) : Il s'agit du nombre d'échantillons de la classe négative


correctement prédits comme négatifs par le modèle. Ce sont les échantillons
réellement négatifs et correctement prédits comme tels.

 Faux Positif (FP) : Il s'agit du nombre d'échantillons de la classe négative


incorrectement prédits comme positifs par le modèle.

 Faux Négatif (FN) : Il s'agit du nombre d'échantillons de la classe positive


incorrectement prédits comme négatifs par le modèle

62
Les métriques d’évaluation
Pour la classification (4/5)
Vrai négatif (True Negative) :
La prédiction est négative et c’est la réalité.
Le médecin prédit que la patiente n’est pas enceinte,
ce qui est vrai.

Vrai positif (True Positive) :


La prédiction est positive et c’est la réalité.
Le médecin prédit que la patiente est enceinte, ce qui
est vrai.

Faux positif (False positive), erreur de 1ère espèce :


La prédiction est positive mais ce n’est pas la réalité.
Le médecin prédit que la patiente est enceinte alors
qu’elle ne l’est pas.

Faux négatif (False negative), erreur de 2ème espèce :


La prédiction est négative mais ce n’est pas la réalité.
Le médecin prédit que la patiente n’est pas enceinte
alors qu’elle l’est. 63
Les métriques d’évaluation
Pour la classification (5/5)
 Précision de la prédiction : évalue la capacité d'un modèle à prédire
correctement les valeurs d'une classe particulière dans un problème de
classification.
Précision = VP/(VP+FP)

 Recall (Rappel) de la prédiction : mesure la capacité d'un modèle à identifier


toutes les occurrences d'une classe particulière dans un problème de classification.

Recall = VP/(VP+FN)
 F1-score de la prédiction : une mesure qui combine à la fois la précision et le
rappel d'un modèle de classification en une seule mesure. Il est utile pour évaluer
l'équilibre entre la précision et le rappel.

F1-score=2* recall * precision/(recall+précision) 64


Chapitre 2

Préparation des
données
Objectifs spécifiques
 Comprendre les différents types de données utilisés en machine learning, notamment
les données structurées, non structurées et semi-structurées, ainsi que les
caractéristiques de chacun de ces types.
 Examiner les différentes sources de données utilisées en machine learning,
 Explorer les techniques de nettoyage des données, y compris la détection et la gestion
des valeurs manquantes, la détection et la gestion des valeurs aberrantes, la détection
et la gestion des valeurs dupliquées, etc.
 Comprendre les techniques de transformation des données telles que la normalisation
et la standardisation.
 Examiner les différentes méthodes de transformation des données catégorielles, telles
que l'encodage one-hot, l'encodage ordinal, etc.
 Expliquer comment se fait la séparation des données en ensembles d'entraînement, et
de test.

66
Plan

 Introduction
 Types des données
 Source des donnés
 Nettoyage des données
 Transformation des données
 Normalisation
 Standardisation

 Transformation des données catégorielles


 Séparation des données

67
Introduction

 Le prétraitement des données est une étape essentielle dans le processus de


création d'un modèle de machine learning.
 Il comprend plusieurs opérations visant à préparer les données pour
l'entraînement du modèle.
 Cela peut inclure :
 Le nettoyage des données pour éliminer les valeurs aberrantes et les valeurs
manquantes
 La normalisation ou la standardisation des caractéristiques pour les mettre à la même
échelle
 La transformation des données catégorielles en une forme adaptée à l'entraînement
du modèle
 La division des données en ensembles d'entraînement et de test pour évaluer les
performances du modèle

68
Types des données (1/3)
 Données structurées : sont des données organisées dans un format
tabulaire avec des colonnes pré-définies. Chaque colonne correspond à un
attribut spécifique, et chaque ligne représente une observation ou un
exemple de données.
 Exemples :
 Les bases de données relationnelles, où chaque table représente une
entité et chaque colonne représente un attribut.
 Les fichiers CSV (Comma-Separated Values) où les données sont
organisées en colonnes séparées par des virgules.
 Les tableaux Excel où les données sont organisées en feuilles de calcul
avec des colonnes et des lignes.

69
Types des données (2/3)
 Données non structurées : Les données non structurées ne suivent pas un
schéma pré-défini et ne sont pas organisées dans un format tabulaire. Elles
peuvent inclure du texte, des images, de l'audio, de la vidéo, etc.
 Exemples :
 Texte : Documents textuels, articles de presse, courriels, tweets, etc.
 Images : Photographies, images médicales, captures d'écran, etc.
 Audio : Enregistrements vocaux, fichiers musicaux, etc.
 Vidéo : Clips vidéo, enregistrements de surveillance, etc.

70
Types des données (3/3)
 Les données semi-structurées: sont des données qui combinent à la fois
des éléments structurés et des éléments non structurés.
 Par exemple:
 Un fichier XML peut contenir des balises qui définissent la structure des
données, mais il peut également inclure des attributs facultatifs ou des éléments
qui ne suivent pas un schéma rigide.
 Un fichier JSON peut avoir des champs obligatoires ainsi que des champs
facultatifs ou des structures imbriquées variables.

 Ces types de données offrent une certaine organisation, mais peuvent


également contenir des variations dans leur disposition ou leur contenu qui
ne correspondent pas à une structure tabulaire fixe.

71
Sources des données

 Collecte des données


 Sources internes (exp: Base de donnée)
 Sources externes (exp: des référentiels des données, des communiés de partage
( Google dataset search, …))
 Web scrapping: des données des sites web
 Collecte manuelle: faires des enquêtes auprès du publique cible

72
Sources des données
Exemple des données populaires (1/2)

ImageNet:
Est une base de données d'images annotées (14,197,122 images), largement
utilisée dans le domaine de l'apprentissage automatique, en particulier dans le
domaine de la vision par ordinateur et de la reconnaissance d'images.
Lancée en 2009, ImageNet contient des millions d'images regroupées en
milliers de catégories ou de classes. Chaque image est accompagnée d'une
annotation décrivant la classe à laquelle elle appartient.

73
Sources des données
Exemple des données populaires (2/2)

 CIFAR (Canadian Institute for Advanced Research) est une organisation de


recherche canadienne qui a créé plusieurs ensembles de données.
 CIFAR-10 : Il contient 60 000 images couleur de 32x32 pixels dans 10
classes différentes, avec 6 000 images par classe.
 CIFAR-100 : Il est similaire à CIFAR-10 mais comprend 100 classes au lieu
de 10. Chaque classe contient 600 images, ce qui donne un total de 60 000
images. Les 100 classes sont réparties en 20 superclasses, chacune contenant
5 classes.

74
Nettoyage des données (1/5)

Le problème des valeurs omises:


Egalement connu sous le nom de valeurs manquantes.
Courant dans les ensembles de données
Peut avoir un impact significatif sur l'analyse des données et les performances
des modèles de machine learning.
 Les valeurs omises peuvent survenir pour diverses raisons, notamment :
 Erreurs de saisie ou de collecte de données : Les valeurs peuvent ne pas être enregistrées
correctement lors de la saisie ou de la collecte de données initiales.
 Refus de répondre ou d'information non disponible : Dans certaines enquêtes ou études,
les participants peuvent choisir de ne pas répondre à certaines questions, ce qui entraîne des
valeurs manquantes.
 Problèmes techniques : Des problèmes techniques lors de la collecte ou du stockage des
données peuvent également entraîner des valeurs omises.

75
Nettoyage des données (2/5)

Le problème des valeurs omises:


Solutions
 Suppression des données manquantes : La méthode la plus simple consiste à supprimer les
observations contenant des valeurs manquantes.
 Imputation des valeurs manquantes : Cette méthode consiste à estimer ou à remplacer les
valeurs manquantes par des valeurs calculées à partir des autres données disponibles. Cela peut
être fait en utilisant des techniques telles que la moyenne, la médiane, le mode ou des modèles
d'imputation plus complexes comme la régression.
 Utilisation de modèles prenant en charge les valeurs manquantes : Certains modèles de
machine learning peuvent gérer les valeurs manquantes de manière implicite. Par exemple, les
arbres de décision et les forêts aléatoires peuvent gérer les données manquantes sans nécessiter
de prétraitement supplémentaire.
 Techniques avancées d'imputation : Des techniques plus avancées telles que l'imputation
multiple peuvent être utilisées pour générer plusieurs ensembles de données complétés avec
des valeurs imputées, puis combiner les résultats pour obtenir une estimation plus robuste.

76
Nettoyage des données (3/5)

Le problème des échantillons dupliqués:

Solutions

 Identification et suppression des doublons : La première étape consiste à identifier et à


supprimer les échantillons dupliqués de l'ensemble de données. Cela peut être fait en
comparant les échantillons les uns aux autres et en supprimant les doublons détectés.
 Traitement des valeurs manquantes : Si les échantillons sont considérés comme des
doublons en raison de valeurs manquantes ou de variations mineures, il peut être nécessaire
de traiter ces valeurs manquantes ou de normaliser les données pour éviter les duplications.

77
Nettoyage des données (4/5)
Le problème de bruit dans les données : erreur ou variance aléatoire d’une
variable mesurée
Causes
 Valeurs aberrantes : Des valeurs extrêmes ou aberrantes peuvent apparaître dans les données en
raison d'erreurs de mesure, de saisie incorrecte des données ou d'événements rares.
 Erreurs de mesure : Les erreurs de mesure peuvent survenir lors de la collecte des données, en
particulier dans les données provenant de capteurs ou d'instruments de mesure.
 Données manquantes : Les données manquantes peuvent être considérées comme du bruit car
elles peuvent affecter la représentativité et la fiabilité des données, en particulier si leur absence
est aléatoire.
 Incohérences ou erreurs de saisie : Des erreurs de saisie peuvent survenir lors de la saisie
manuelle des données, entraînant des incohérences ou des erreurs dans les ensembles de
données.
 Variations aléatoires : Les variations aléatoires dans les données peuvent être considérées
comme du bruit lorsqu'elles ne sont pas pertinentes pour la tâche d'analyse ou de modélisation.

78
Nettoyage des données (5/5)

Le problème de bruit dans les données :


Solutions
 Détection et suppression des valeurs aberrantes : Identifier et supprimer les valeurs
aberrantes qui ne représentent pas correctement le signal des données.
 Nettoyage des données : Effectuer des opérations de nettoyage des données pour corriger
les erreurs de mesure, remplir les données manquantes et corriger les incohérences ou les
erreurs de saisie.
 Filtrage des données : Utiliser des techniques de filtrage pour réduire le bruit dans les
données, telles que les filtres numériques pour les données de série temporelle.
 Utilisation de modèles robustes : Utiliser des modèles de machine learning robustes qui
sont moins sensibles au bruit dans les données.
 Validation croisée et régularisation : Utiliser des techniques de validation croisée et de
régularisation pour évaluer et ajuster les modèles de manière à réduire l'impact du bruit sur
les performances.

79
Transformation des données
Normalisation
 La normalisation (parfois appelée mise à l'échelle min-max) consiste à
transformer les valeurs des caractéristiques pour qu'elles soient comprises
dans une plage spécifique, généralement entre 0 et 1.
 La formule de normalisation est :

 Cette technique est utile lorsque les valeurs des caractéristiques ont des
plages différentes et que vous voulez les mettre toutes sur la même échelle.

80
Transformation des données
Standardisation
 La standardisation (ou z-score standardisation) consiste à transformer les
valeurs des caractéristiques de telle sorte que leur moyenne soit égale à zéro
et leur écart type soit égal à un.
 La formule de standardisation est :

 Cette technique est utile lorsque les caractéristiques ont des distributions
différentes et que vous voulez les mettre sur la même échelle tout en
préservant la forme de leur distribution.

81
Transformation des données
catégorielles (1/3)
 Une étape essentielle dans le prétraitement des données pour de nombreux
algorithmes de machine learning, en particulier ceux qui nécessitent des
données numériques en entrée
 Cette transformation est nécessaire car de nombreux modèles de machine
learning ne peuvent pas traiter directement les variables catégorielles.
 Les techniques couramment utilisées pour transformer les données
catégorielles :
1. Encodage en variables indicatrices (One-Hot Encoding)
2. Encodage ordinal
3. Encodage de fréquence ou de comptage
4. Encodage basé sur le poids (Target Encoding)
5. Encodage de Hashing

82
Transformation des données
catégorielles (2/3)
1. Encodage en variables indicatrices (One-Hot Encoding)
 Cette technique consiste à créer de nouvelles variables binaires (0 ou 1) pour chaque
catégorie possible de la variable catégorielle.
 Par exemple, si une variable catégorielle "Couleur" a trois catégories possibles : "Rouge",
"Vert" et "Bleu", elle sera transformée en trois nouvelles variables binaires :
"Couleur_Rouge", "Couleur_Vert" et "Couleur_Bleu".
2. Encodage ordinal
 Si les catégories d'une variable catégorielle ont un ordre naturel, telles que "faible",
"moyen" et "élevé", vous pouvez leur attribuer des valeurs numériques ordinales
correspondantes.
 Par exemple, "faible" peut être codé comme 1, "moyen" comme 2 et "élevé" comme 3.

83
Transformation des données
catégorielles (3/3)
3. Encodage de fréquence ou de comptage
 Cette technique consiste à remplacer chaque catégorie par sa fréquence d'occurrence dans
l'ensemble de données ou par le nombre de fois qu'elle apparaît.
 Par exemple, si une variable catégorielle "Pays" a les catégories : "France", "Espagne" et
"France", elle sera transformée en "Pays_France" avec une valeur de 2.
4. Encodage basé sur le poids (Target Encoding)
 Cette technique consiste à remplacer chaque catégorie par la moyenne de la variable cible
correspondante pour cette catégorie.
 Par exemple, si vous avez une variable catégorielle "Ville" et une variable cible "Prix", vous
pouvez remplacer chaque catégorie de "Ville" par la moyenne des prix des maisons dans cette
ville.
5. Encodage de Hashing
 Cette technique consiste à appliquer une fonction de hachage à chaque catégorie pour
la transformer en une valeur numérique.

84
Séparation des données (1/2)
 Définir les variables indépendantes et dépendantes : Séparer les données en
variables indépendantes (caractéristiques X) et variables dépendantes (étiquettes
ou cibles y).
 Diviser les données en ensembles d'entraînement et de test : Utilisez une
fonction ou une méthode appropriée pour diviser les données en ensembles
d'entraînement et de test. Les proportions typiques sont 70-80% des données
pour l'ensemble d'entraînement et 20-30% pour l'ensemble de test, mais cela
peut varier en fonction de la taille de l'ensemble de données et des exigences du
problème.
 Vérifier la distribution des classes (optionnel) : Si votre ensemble de données
est déséquilibré en termes de classes, assurez-vous que la répartition des classes
est similaire dans les ensembles d'entraînement et de test pour éviter les biais.

85
Séparation des données (2/2)

from sklearn.model_selection import train_test_split


# X représente les caractéristiques, y représente les étiquettes
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,
random_state=42) 86
Chapitre 3

Les algorithmes de
Machine Learning
Objectifs spécifiques
 Comprendre les bibliothèques et les outils couramment utilisés pour
implémenter des algorithmes de régression.

 Examiner en détail différents algorithmes de régression, y compris la


régression linéaire, la régression polynomiale et la régression logistique.

 Explorer l'algorithme des k plus proches voisins (KNN), machines à vecteurs de


support (SVM), et l'arbre de décision pour la classification et la régression

 Examiner les méthodes d'ensemble telles que le random forest et le gradient


boosted tree, en comprenant comment elles combinent plusieurs modèles de
base pour améliorer les performances de prédiction dans les tâches.

88
Plan
 Bibliothèques et outils utilisés
 Algorithmes de régression
 Régression linéaire
 Régression polynomiale
 Régression logistique
 K-Nearest Neighboor (KNN)
 Support Vector Machine (SVM)
 Arbre de décision
 Pour la classification
 Pour la régression
 Les méthodes d’ensemble
 Random Forest
 Gradient Boosted Tree

89
Bibliothèques et outils utilisés
Outils (1/2)

 Anaconda est une distribution open-source de Python et de R qui est utilisée


pour le calcul scientifique, l'analyse de données et l'apprentissage automatique.
 Il est livré avec un gestionnaire de paquets, des bibliothèques et des outils
populaires pour la science des données, ce qui en fait une plate-forme très
populaire pour le développement de projets de machine learning.

[Link] 90
Bibliothèques et outils utilisés
Outils (2/2)

Google Colab ou Colaboratory

Un service gratuit basé sur le cloud offert par Google qui permet d'écrire,
d'exécuter et de partager du code Python directement dans le navigateur,
sans nécessiter de configuration ou d'installation de logiciels
supplémentaires sur votre ordinateur.
Bibliothèques préinstallées : Colab est livré avec de nombreuses
bibliothèques populaires préinstallées pour l'analyse de données et
l'apprentissage automatique, telles que NumPy, pandas, TensorFlow,
PyTorch, scikit-learn, etc.

91
Bibliothèques et outils utilisés
Bibliothèques (1/2)

Sklearn Numpy
import numpy as np

Sklearn est la librairie qui contient


toutes les fonctions de l’état de l’art du Numpy est la librairie qui permet
Machine Learning. On y trouve les de créer et manipuler des matrices,
algorithmes les plus importants ainsi simplement et avec efficacité.
que diverses fonctions de pre-
processing.
92
Bibliothèques et outils utilisés
Bibliothèques (2/2)
Pandas Matplotlib
import pandas as pd
# Chargement des données à partir from matplotlib import pyplot as
d'un fichier CSV plt
df =pd.read_csv("[Link]")

Pandas est une excellente librairie pour Matplotlib est la librairie qui permet de
importer vos tableaux Excel (et autres visualiser les Datasets, les fonctions, les
formats) dans Python dans le but de résultats sous forme de graphes, courbes
tirer des statistiques et de charger votre et nuages de points.
Dataset dans Sklearn. 93
Algorithmes de régression

 Prédire une valeur numérique continue en fonction des caractéristiques d'entrée.


 Il existe plusieurs types de régression

 Régression linéaire :  Régression ridge et Lasso


 Régression polynomiale  Régression bayésienne
 Régression logistique

94
Algorithmes de régression
Régression linéaire
 Exemple 1: prix d’un appartement
 𝒙 (𝒊) la surface habitable de
l’exemple 𝒊
 𝒚 (𝒊) le prix de l’exemple 𝒊

 Exemple 2: prix d’une automobile


usagée
 x : attributs d’une auto
y : prix
y = g (x | θ )
g ( ) modèle,
θ paramètres 95
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (1/6)
Etape1: Initialisation des paramètres
Tout d'abord, initialiser les paramètres du
modèle, tels que les coefficients de
régression à des valeurs aléatoires ou à
zéro.
Y= a *Superficie + b
a= 0,5 /b=0,9

Etape2: Calcul de la prédiction


Utiliser les paramètres actuels pour faire
des prédictions sur l'ensemble
d'entraînement.
Y= 0,5*92+0,9
= 46,9 (valeur prédite de l’observation
96
1)
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (2/6)

Phase 3: Calcul de la fonction de coût

Calculer la fonction de coût qui mesure


l'erreur entre les prédictions et les valeurs
réelles de l'ensemble d'entraînement. La
fonction de coût la plus couramment
utilisée pour la régression linéaire est
l'erreur quadratique moyenne (MSE) :

Cout = (y_réelle – y_prédite) ²

Cout1 = (298 – 46,9) ²

=> Cout de la première observation 97


Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (3/6)

Phase 3: Calcul de la fonction de coût

Avoir un bon modèle, c’est


avoir un modèle qui nous
donne de petites erreurs, donc
une petite Fonction Coût.

98
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (4/6)
Phase 4: Minimiser la Fonction coût
Ainsi l’objectif central en Supervised Learning, c’est de trouver les paramètres
du modèle qui minimisent la Fonction Coût. Pour cela, on utilise un algorithme
d’apprentissage, l’exemple le plus courant étant l’algorithme de Gradient
Descent.
l’erreur quadratique
moyenne (Mean Squared
Error)

99
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (5/6)
Phase 4: Minimiser la Fonction coût
La descente de gradient est une méthode itérative qui met à jour les paramètres
dans la direction opposée du gradient de la fonction de coût par rapport aux
paramètres

100
Algorithmes de régression
Régression linéaire; Etapes de
fonctionnement (6/6)
Phase 4: Minimiser la Fonction coût
On appelle ∝ la vitesse d’apprentissage (Learning rate)

Learning rate trop petit :


 L'algorithme de descente de gradient peut converger très lentement vers le
minimum global de la fonction de coût.
 Entraîner une convergence prématurée vers un minimum local de la fonction de
coût
 Un modèle sous-optimal qui ne généralise pas bien sur de nouvelles données.
Learning rate trop grand :
 L'algorithme de descente de gradient peut diverger et osciller autour du minimum
global de la fonction de coût
 Provoquer des oscillations instables dans les mises à jour des paramètres
 rendre l'entraînement du modèle imprévisible et instable.
101
Algorithmes de régression
Régression linéaire; Implémentation (1/6)

Exemple :Générer un tableau de données (𝒙 , 𝒚 ) aléatoires

 Numpy pour manipuler notre Dataset en tant que matrice


 [Link] pour visualiser nos données
 La fonction make_regression de Sklearn pour générer un nuage de point (ici on
va simuler des données)
 SGDRegressor (qui signifie Stochastic Gradient Descent Regressor) et qui
contient le calcul de la Fonction Coût, des gradients, de l’algorithme de
minimisation, 102
Algorithmes de régression
Régression linéaire; Implémentation (2/6)

Exemple :Générer un tableau de données (𝒙 , 𝒚 ) aléatoires

 [Link](0): initialiser le générateur de nombres aléatoires de


NumPy avec une graine spécifique, dans ce cas, 0
 make_regressor génère des données pour une régression.
 n_samples=100 spécifie le nombre d'échantillons à générer.
 n_features=1 spécifie le nombre de caractéristiques à générer. Pour
une régression linéaire simple, vous utilisez généralement une seule
caractéristique.
 noise=10 spécifie le niveau de bruit ajouté aux données. 103
Algorithmes de régression
Régression linéaire; Implémentation (3/6)

Exemple :Générer un tableau de données (𝒙 , 𝒚 ) aléatoires


1er étape: entrainement du modèle
Par exemple, entraînons notre modèle sur 100 itérations avec un Learning rate de
0.0001, après la spécification des paramètres utilisons la fonction fit pour l’entrainer

Observez la précision de notre modèle

104
Algorithmes de régression
Régression linéaire; Implémentation (4/6)

2er étape:
Modification des
paramètres

105
Algorithmes de régression
Régression linéaire; Implémentation (5/6)

3éme étape: vérification


de la performance du
modèle à travers la
courbe d’apprentissage

106
Algorithmes de régression
Régression linéaire; Implémentation (6/6)

A chaque itération, le modèle s’améliore pour donner la droite ci-dessous.

107
Régressionde
Algorithmes Polynômiale
régressionà
plusieurs variables
Régression polynomiale (1/2)

Si vous achetez un stylo à 1€, combien vous coûteront 100


stylos ? 100 € ? Faux !
Nous vivons dans un monde régit par des lois souvent non-
linéaires et où une infinité de facteurs peuvent influencer nos
résultats.

Par exemple, si vous achetez 100 stylos, vous aurez peut-être


une réduction à 90 €. Si en revanche il y a une pénurie de
stylos, ce même stylo qui coûtait 1 € pourrait valoir 1.50 €

108
Algorithmes de régression
Régression polynomiale (2/2)
Problème non-linéaire : Un problème plus compliqué ? Pour le nuage de point
ci-dessous, il semblerait judicieux de développer un modèle polynômial de degré
2.

109
Algorithmes de régression
Régression polynomiale: implémentation
(1/2)
Il suffit de générer des variables polynômiales dans notre Dataset en utilisant la
fonction PolynomialFeatures présente dans Sklearn.

Dans l’exemple ci-dessous, on utilise une variable polynômiale de degré 2 pour


forcer la machine à développer un modèle qui épousera l’allure parabolique de 𝒚
en fonction de 𝒙.

110
Algorithmes de régression
Régression polynomiale: implémentation
(2/2)

Avec la fonction PolynomialFeatures on


peut ainsi développer des modèles bien
plus complexes capable de prédire des
résultats sur des milliers de dimensions

111
Algorithmes de régression
Régression Logistique (1/6)
 classer un email en tant que ‘spam’ ou ‘non spam’. Dans ce genre de
problème, on aura un Dataset contenant une variable target 𝒚 pouvant
prendre 2 valeurs seulement, par exemple 0 ou 1
 si 𝑦 = 0, alors l’email n’est pas un spam
 si 𝑦 = 1, alors l’email est un spam

On dit également que l’on a 2 classes, c’est une


classification binaire. Pour ces problèmes, on
ajoute au modèle une frontière de décision qui
permet de classer un email dans la 𝑐𝑙𝑎𝑠𝑠𝑒 0 ou
la 𝑐𝑙𝑎𝑠𝑠𝑒 1.

112
Algorithmes de régression
Régression Logistique (2/6)

 On développe alors une nouvelle


fonction pour les problèmes de
classification binaire, c’est la fonction
logistique (aussi appelé fonction
sigmoïde ou tout simplement sigma 𝝈).
Cette fonction a la particularité d’être
toujours comprise en 0 et 1.
113
Algorithmes de régression
Régression Logistique (3/6)

 A partir de cette fonction, il est


possible de définir une frontière de
décision. Typiquement, on définit un
seuil à 0.5 comme ceci :

114
Algorithmes de régression
Régression Logistique (4/6)
 Génération des données aléatoires

115
Algorithmes de régression
Régression Logistique (5/6)
 Création d’un modèle en utilisant SGDClassifier.

Une fois le modèle entraîné, on peut afficher sa frontière de décision avec le code suivant

116
Algorithmes de régression
Régression Logistique (6/6)
 Création d’un modèle en utilisant SGDClassifier.

Une fois le modèle entraîné, on peut afficher sa frontière de décision avec le code suivant

117
K-Nearest Neighbour (KNN)
Fonctionnement (1/4)

 L’algorithme de Nearest Neighbour (le voisin le plus proche) permet de résoudre des
problèmes de classification à plusieurs classes de façon simple et très efficace. Il est
utilisé aussi pour la régression.

 Vous partez vous promener en montagne avec un ami. Avant de partir, il fait 30 °C et
votre ami vous dit qu’il a chaud. Arrivé en montagne, il fait désormais 10 °C et votre
ami vous dit qu’il a froid. En redescendant la vallée, il fait maintenant 15 °C, pensez-
vous que votre ami aura froid ou bien chaud ? 15 °C étant plus proche de 10 °C
(froid) que de 30 °C (chaud), il semble légitime de prédire que votre ami aura froid.

118
K-Nearest Neighbour (KNN)
Fonctionnement (2/4)

 Voilà l’essentiel de ce qu’il y à savoir sur l’algorithme Nearest Neighbour. Quand


vous devez faire une nouvelle prédiction, trouvez dans votre Dataset l’exemple le
plus proche par rapport aux conditions dans lesquelles vous êtes.

 Cet exemple vous montre au passage que la variété et la quantité de données dans
votre Dataset est primordiale ! Si vous ne disposez que de 2 points : -20 °C = froid
; 20 °C = chaud, alors vous pourriez conclure que 1 °C est une température
chaude…

119
K-Nearest Neighbour (KNN)
Fonctionnement (3/4)

 L’algorithme de Nearest Neighbour calcule ainsi la distance entre le point vert et les
autres points du Dataset et associe le point vert à la classe dont l’exemple est le plus
proche en terme de distance.

 Typiquement, on utilise la distance euclidienne (c’est la droite direct entre deux points)
mais d’autres métriques sont parfois plus utiles, comme la distance de Manhattan ou bien
la distance cosinus. Inutile de rentrer dans les détails mathématiques, vous savez
désormais que Sklearn implémente toutes les équations pour vous.

120
K-Nearest Neighbour (KNN)
Fonctionnement (4/4)

 Le nombre de voisin K
 Pour limiter les problèmes liés au bruit ce qu’on appelle Over fitting, on
peut demander à l’algorithme de trouver les K voisins les plus proches du
point vert.
 Cela améliore la qualité du modèle car il devient moins sensible aux
impuretés et cas particuliers qui viendraient empêcher la bonne
généralisation.

121
K-Nearest Neighbour (KNN)
Implémentation (1/4)

 On vous propose de développer un programme capable de reconnaitre un


chiffre entre 0 et 9 écrit à la main. Fini les données générées
aléatoirement ! Voici les chiffres que la machine saura reconnaitre dans
quelques minutes.

122
K-Nearest Neighbour (KNN)
Implémentation (2/4)

 Vous pouvez charger ces données depuis Sklearn (la librairie contient des Datasets de
base). Commençons par importer les libraires habituelles :

 On apprend aussi que le Dataset comprend 1797 exemples, c’est-à-dire 1797 images, et
que chaque exemple contient 64 features.
 Que sont ces 64 features ? il s’agit de la valeur de chacun des 64 pixels qui forment les
images.
 Quand on soumet un nouveau chiffre à la machine, l’algorithme de K-NN trouve
l’exemple du Dataset qui ressemble le plus à notre chiffre, basé sur le voisin le plus
proche pour la valeur de chaque pixel.

123
K-Nearest Neighbour (KNN)
Implémentation (3/4)

 Vous pouvez charger ces données depuis Sklearn (la librairie contient des
Datasets de base). Commençons par importer les libraires habituelles :

124
K-Nearest Neighbour (KNN)
Implémentation (4/4)

 L’étape suivante consiste à entraîner le


modèle de Nearest Neighbour. En exécutant
le code vous-même, vous devriez obtenir un
score de 99%, ce qui signifie que votre
modèle reconnaitra le bon chiffre 99% du
temps.

 Pour finir en beauté, testons une image au hasard et


voyons si la machine arrive à identifier de quel
chiffre il s’agit. En l’occurrence, j’ai choisi de tester
la 100ième image de notre Dataset, qui est un 4… et
la machine a su la reconnaître !

125
Machine à vecteurs de support
Fonctionnement (1/3)

 Les machines à vecteurs de support ou séparateurs à vaste marge (en


anglais support vector machine, SVM) sont un ensemble de techniques
d'apprentissage supervisé destinées à résoudre des problèmes
de discrimination c'est-à-dire décider à quelle classe appartient un
échantillon ou de régression, c'est-à-dire prédire la valeur numérique d'une
variable.
 Les SVM sont une généralisation des classificateurs linéaires.

 La résolution de ces deux problèmes passe par la construction d'une


fonction qui à un vecteur d’entrée x fait correspondre une sortie y.

126
Machine à vecteurs de support
Fonctionnement (2/3)
 Exemple 1:
Imaginons un plan (espace à deux dimensions) dans lequel sont répartis deux
groupes de points. Ces points sont associés à un groupe : les points (+)
pour y > x et les points (-) pour y < x. On peut trouver un séparateur
linéaire évident dans cet exemple, la droite d'équation y = x. Le problème
est dit linéairement séparable.

127
Machine à vecteurs de support
Fonctionnement (3/3)
 Exemple 2:
Pour des problèmes plus compliqués, il n'existe en général pas de séparatrice
linéaire. Imaginons par exemple un plan dans lequel les points (-) sont
regroupés à l'intérieur d'un cercle, avec des points (+) tout autour : aucun
séparateur linéaire ne peut correctement séparer les groupes : le problème
n'est pas linéairement séparable. Il n'existe pas d'hyperplan séparateur.

128
Machine à vecteurs de support
Fonctionnement: Marge maximale
(1/2)
On se place désormais dans le cas où le problème est linéairement séparable.
Même dans ce cas simple, le choix de l'hyperplan séparateur n'est pas évident.
 Il existe en effet une infinité d'hyperplans séparateurs, dont les performances
en apprentissage sont identiques (le risque empirique est le même), mais dont les
performances en généralisation peuvent être très différentes.
 Pour résoudre ce problème, il a été montré, qu'il existe un unique hyperplan
optimal, défini comme l'hyperplan qui maximise la marge entre
les échantillons et l'hyperplan séparateur.

129
Machine à vecteurs de support
Fonctionnement: Marge maximale
(2/2)
 Il existe des raisons théoriques à ce choix. Vapnik a montré que
la capacité des classes d'hyperplans séparateurs diminue lorsque leur marge
augmente.
 La marge est la distance entre l'hyperplan et les échantillons les plus
proches. Ces derniers sont appelés vecteurs supports.

130
Machine à vecteurs de support
Fonctionnement: problème non
linéaire
Cas non séparable : kernel trick
La notion de marge maximale et la procédure de recherche de l'hyperplan séparateur
telles que présentées pour l'instant ne permettent de résoudre que des problèmes de
discrimination linéairement séparables.
C'est une limitation sévère qui condamne à ne pouvoir résoudre que des problèmes
jouets, ou très particuliers. Afin de remédier au problème de l'absence de séparateur
linéaire, l'idée de l'astuce du noyau (en anglais kernel trick) est de reconsidérer le
problème dans un espace de dimension supérieure, éventuellement de dimension infinie.

Dans ce nouvel espace, il est alors


probable qu'il existe une séparation
linéaire.

131
Machine à vecteurs de support
Implémentation (1/2)
1. Importer les bibliothèques nécessaires

from [Link] import make_classification


from sklearn.model_selection import train_test_split
from [Link] import SVC
from [Link] import accuracy_score

2. Générer des données de classification synthétiques


X, y = make_classification(n_samples=1000, n_features=20,
n_classes=2, random_state=42)
3. Diviser les données en ensembles d'entraînement et de test

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,


random_state=42)
132
Machine à vecteurs de support
Implémentation (2/2)
4. Créer un modèle SVM avec noyau linéaire

svm_model = SVC(kernel='linear', random_state=42)

5. Entraîner le modèle sur l'ensemble d'entraînement


svm_model.fit(X_train, y_train)

6. Faire des prédictions sur l'ensemble de test

y_pred = svm_model.predict(X_test)

7. Calculer l'exactitude (accuracy) du modèle

accuracy = accuracy_score(y_test, y_pred) print("Exactitude du


modèle SVM :", accuracy) 133
Arbre de décision
Fonctionnement
 Un arbre a de nombreuses analogies dans la vie réelle et il s'avère qu'il a
influencé un large domaine de l'apprentissage automatique, couvrant à la fois la
classification et la régression.

 Dans l'analyse décisionnelle, un arbre de décision peut être utilisé pour


représenter visuellement et explicitement les décisions et la prise de décision.
Comme son nom l'indique, il utilise un modèle de décision en forme d'arbre.

 Bien qu'il s'agisse d'un outil couramment utilisé dans l'exploration de données
pour élaborer une stratégie visant à atteindre un objectif particulier, il est
également largement utilisé dans l'apprentissage automatique,

134
Arbre de décision
Fonctionnement: Classification (1/5)
 L’arbre est construit de telle sorte que chaque noeud correspond à la règle
(type de mesure et seuil) qui divisera le mieux l’ensemble d’observations
de départ.

Exemple 1:

 Pour cela, considérons un exemple très basique qui


utilise un ensemble de données titanesque pour
prédire si un passager survivra ou non.

 Le modèle ci-dessous utilise 3 caractéristiques/


attributs/ colonnes de l'ensemble de données, à
savoir le sexe, l'âge et la fratrie (nombre de
conjoints ou d'enfants).
135
Arbre de décision
Fonctionnement: Classification (2/5)
 Exemple 2: classification des espèces d’iris
 Supposons qu’un ou une botaniste en herbre souhaite distinguer diverses
espèces d’iris.
 Les scientifiques ont collecter un certain nombre de mesures associées à chaque
iris (comme le montre le tableau suivant)

136
Arbre de décision
Fonctionnement: Classification (3/5)
 Exemple 2: classification des espèces d’iris
Tester par un exemple:
Identifier une fleur avec un sépale de 6 cm et pétale de 4cm

137
Arbre de décision
Fonctionnement: Classification (4/5)
 Exemple 2: classification (pureté)

138
Arbre de décision
Fonctionnement: Classification (5/5)
 Exemple 2: classification (choisir la règle à appliquer selon le cout)

139
Arbre de décision
Fonctionnement: Régression (1/3)
 Exemple 3

140
Arbre de décision
Fonctionnement: Régression (2/3)
 Exemple 3

141
Arbre de décision
Fonctionnement: Régression (3/3)
 Exemple 3: Régression (mesure de la performance)

142
Les méthodes d’ensemble
Bagging et Boosting (1/2)
 Pour résoudre des problèmes de sur apprentissage, et de faible performance
on peut utiliser le Boosting ou le Bagging:
 Bagging: rassembler plusieurs modèles plus au moins performants, ce
rassemblement permet d’augmenter la performance de l’ensemble général.
 Exemple:
algo1 algo2 algo3 algo4 Ensemble général des différents algorithmes

√ √ x √ √
x √ x √ √
√ x √ √ √
√ x √ √ √
√ √ √ √ √
x √ √ x √
85% 83% 84% 86% 91% 143
Les méthodes d’ensemble
Bagging et Boosting (2/2)
 Pour résoudre des problèmes de sur apprentissage, et de faible performance
on peut utiliser le Boosting ou le Bagging:

 Boosting: c’est le fait de créer un modèle en se basant sur le résultat d’un


autre modèle en essayant de lui rendre plus performant à chaque itération

Itération 1 62%

73%
Itération 2
75%
Itération 3

Itération n 91%

144
Foret Aléatoire
Fonctionnement (1/5)
 Comme son nom l’indique l’algorithme des forêts aléatoires se fonde sur
les arbres de décisions.
 Il est crée pour répondre au problème de de sur-apprentissage ou le
overfiting des arbres de décisions

145
Foret Aléatoire
Fonctionnement (2/5)
Pour mieux comprendre l’intérêt et le fonctionnement de cet algorithme commençons par un exemple :
Vous êtes à la recherche d’une bonne destination de voyage pour vos prochaines vacances. Vous
demandez à votre meilleur ami son avis. Il vous pose des questions sur vos précédents voyages et vous fait
une recommandation.
Vous décidez de demander à un groupe d’ami qui vous posent des questions de manière aléatoire. Ils
vous font chacun une recommandation. La destination retenue est celle qui a été la plus recommandée par
vos amis.
Les recommandations faites par votre meilleur ami et le groupe vous paraîtront toutes deux de bons
choix de destination. Mais lorsque la première méthode de recommandation marchera très bien pour vous,
la deuxième sera plus fiable pour d’autres personnes.
Cela vient du fait que votre meilleur ami, qui construit un arbre de décision pour vous donner une
recommandation de destination, vous connaît très bien ce qui a fait que l’arbre de décision a sur-appris sur
vous (on parle d’overfitting : sur apprentissage).
Votre groupe d’ami représente la forêt aléatoire de multiples arbres de décisions et c’est un modèle,
lorsqu’il est bien utilisé, évite l’écueil de l’overfitting.
Comment est donc est construite cette forêt?

146
Foret Aléatoire
Fonctionnement (3/5)
Construire des arbres en
prenant quelques champs et 1-Création du Dataset
quelques variables

147
Foret Aléatoire
Fonctionnement (4/5)
2- Entrainement de l’arbre de décision

148
Foret Aléatoire
Fonctionnement (5/5)
3- Répéter l’étape 1 et 2 pas mal de fois

149
Le « Gradient Boosting » (XG Boost)

 La méthode du gradient boosting sert à renforcer un modèle qui produit des prédictions
faibles,
 Vous avez une base de données d’individu avec des informations de démographie et des
activités passés. Vous avez pour 50% des individus leur age mais l’autre moitié est
inconnue.
 Vous souhaitez obtenir l’âge d’une personne en fonction du ses activités : courses
alimentaires, télévision, jardinage, jeux vidéo …
 Vous choisissez comme modèle un arbre de décision, dans ce cas c’est un arbre de
régression car la valeur à prédire est numérique.
 Votre premier arbre de régression est satisfaisant mais largement perfectible : il prédit
par exemple qu’un individu a 19 ans alors qu’en réalité il en a 13, et pour un autre 55 ans
au lieu de 68.
 Le principe du gradient boosting est que vous allez refaire un modèle sur l’écart entre la
valeur prédite et la vraie valeur à prédire.
150
Chapitre 4

Deep Learning
Objectifs spécifiques
 Comprendre les bases des réseaux de neurones et du deep learning, y compris leur architecture,
leur fonctionnement et leur différence par rapport aux méthodes de machine learning
traditionnelles.

 Examiner différents domaines d'application du deep learning et comment il est utilisé dans des
domaines tels que la vision par ordinateur, le traitement du langage naturel et la reconnaissance
de la parole.

 Approfondir les architectures de réseaux de neurones, en mettant l'accent sur les réseaux de
neurones convolutifs (CNN) et leur rôle crucial dans le domaine de la vision par ordinateur.

 Explorer en détail l'architecture, le fonctionnement et l'application des CNN, en comprenant


comment ils sont construits et implémentés pour des tâches spécifiques telles que la
classification d'images.

152
Plan
 Introduction
 Les réseaux de neurones
 Deep Learning
 Domaine d’application
 Architecture
 Fonctionnement
 Différence entre machine learning et Deep Learning
 Convolution Neural Network
 Application
 Architecture
 Construction
 Implémentation

153
Introduction

154
Introduction
Naissance des réseaux de neurones

 Les neurones sont des cellules excitables connectées les unes aux autres et
ayant pour rôle de transmettre des informations dans le système nerveux

155
Les réseaux de neurones (1/2)
 L'un des faits les plus frappants concernant les réseaux de neurones est
qu'ils peuvent calculer n'importe quelle fonction. C'est-à-dire, supposons
que quelqu'un vous remette une fonction compliquée et ondulante, f(x):
 Quelle que soit la fonction, il est garanti qu'il y a un réseau de neurones,
qui permet pour chaque entrée possible, x, de calculer la valeur f(x) (ou
une approximation proche) par exemple :

156
Les réseaux de neurones (2/2)
 Ce résultat est valable même si la fonction a plusieurs entrées, f=f(x1,
…,xm) et plusieurs sorties. Par exemple, voici un réseau calculant une
fonction avec m=3 entrées et n=2 sorties :

 De plus, ce théorème d'universalité est


valable même si nous restreignons nos
réseaux à n'avoir qu'une seule couche
intermédiaire entre les neurones d'entrée
et de sortie.

 Une couche dite single hidden layer.


Ainsi, même des architectures réseau très
simples peuvent être extrêmement
puissantes.
157
Deep Learning

La notion de deep = profond est le faite de créer un réseau de


neurone avec pas mal de couches cachées
158
Deep Learning
Domaine d’application

Détecter Reconnaitre Conduire une


des formes une personne Voiture

159
Deep Learning
Architecture

[Link] 160
Deep Learning
Fonctionnement (1/6)
Les étapes de création d’un réseau de neurones

1 2 3 4

161
Deep Learning
Fonctionnement (2/6)
1
Les données traversent le réseau de neurones, de l'entrée à la sortie.
Chaque neurone dans une couche reçoit des entrées pondérées,
calcule une somme pondérée, applique une fonction d'activation et
transmet le résultat à la couche suivante.

162
Deep Learning
Fonctionnement (3/6)
1

 Sigmoid: La sortie de la fonction est toujours comprise entre 0 et 1, ce qui en


fait une fonction utile pour modéliser des probabilités dans le cadre de
problèmes de classification binaire.

 ReLU: est une fonction d'activation linéaire pour les valeurs positives et zéro
pour les valeurs négatives

 Tanh: Elle est similaire à la fonction sigmoïde mais produit une sortie dans
l'intervalle (-1, 1), ce qui la rend centrée autour de zéro. 163
Deep Learning
Fonctionnement (4/6)
1 2
L'objectif est de minimiser cette fonction en ajustant
les poids du réseau. Le type de fonction de coût
utilisé dépend du problème de machine learning
(classification, régression, etc.) et de la tâche
spécifique, comme la cross-entropy pour la
classification ou l'erreur quadratique moyenne pour
la régression.

164
Deep Learning
Fonctionnement (5/6)
1 2 3 4

La propagation en arrière est le processus par lequel les gradients de la


fonction de coût par rapport aux poids du réseau sont calculés récursivement à
l'aide de la règle de la chaîne (ou règle du gradient).

165
Deep Learning
Fonctionnement (6/6)

166
La différence entre Machine
Learning et Deep Learning

167
CNN (Convolution Neural Network)
Application
 L’un des principaux cas d’usage est la reconnaissance d’image. Dans une moindre
mesure, on les utilise aussi pour l’analyse vidéo.
 Le traitement naturel du langage. Les modèles CNN sont très efficaces pour l’analyse
sémantique, la modélisation de phrase, la classification ou la traduction.
 Utilisés pour la découverte de médicaments. Ils permettent d’identifier les traitements
potentiels en prédisant les interactions entre molécules et protéines biologiques.
 Utilisés pour les logiciels de jeu de Go ou de jeu d’échecs auxquels ils sont capables
d’exceller. Une autre application est la détection d’anomalie sur une image en entrée
(input).

 Les CNN désignent une sous-catégorie de réseaux de neurones et sont à ce jour un


des modèles de classification d’images réputés être les plus performant.

168
CNN (Convolution Neural Network)
Architecture (1/7)
L’architecture du Convolutional Neural Network dispose deux parties bien distinctes :

Une partie convolutive : Son objectif final est d’extraire des caractéristiques propres à
chaque image en les compressant de façon à réduire leur taille initiale. En résumé, l’image
fournie en entrée passe à travers une succession de filtres, créant par la même occasion de
nouvelles images appelées cartes de convolutions. Enfin, les cartes de convolutions
obtenues sont concaténées dans un vecteur de caractéristiques appelé code CNN.
Une partie classification : Le code CNN obtenu en sortie de la partie convolutive
est fourni en entrée dans une deuxième partie, constituée de couches entièrement
connectées appelées perceptron multicouche (MLP pour Multi Layers Perceptron). Le rôle
de cette partie est de combiner les caractéristiques du code CNN afin de classer l’image.

169
CNN (Convolution Neural Network)
Architecture (2/7)

170
CNN (Convolution Neural Network)
Architecture (3/7)
Etapes de convolution:

[Link] un premier temps, on définit la taille de la fenêtre de filtre située en


haut à gauche.
[Link] fenêtre de filtre, représentant la feature, se déplace progressivement de
la gauche vers la droite d’un certain nombre de cases défini au préalable (le
pas) jusqu’à arriver au bout de l’image.
3.À chaque portion d’image rencontrée, un calcul de convolution s’effectue
permettant d’obtenir en sortie une carte d’activation ou feature map qui
indique où est localisées les features dans l’image : plus la feature map est
élevée, plus la portion de l’image balayée ressemble à la feature.

171
CNN (Convolution Neural Network)
Architecture (4/7)
Etapes de convolution:

172
CNN (Convolution Neural Network)
Architecture (5/7)
Pooling:

Outre sa fonction de filtrage, l’intérêt de la partie convolutive d’un CNN est


qu’elle permet d’extraire des caractéristiques propres à chaque image en les
compressant de façon à réduire leur taille initiale, via des méthodes de sous-
échantillonnage tel que le Max-Pooling et l’average pooling.
Le Max-Pooling est un processus de discrétisation basé sur des échantillons.
Son objectif est de sous-échantillonner une représentation d’entrée (image,
matrice de sortie de couche cachée, etc.) en réduisant sa dimension.
L’average pooling consiste à conserver à chaque pas, la valeur moyenne de la
fenêtre de filtre

173
CNN (Convolution Neural Network)
Architecture (6/7)
Pooling:

174
CNN (Convolution Neural Network)
Architecture (7/7)
Pooling:

Exemple d’effet du Max-Pooling


175
CNN (Convolution Neural Network)
Construction (1/2)

Généralement, l’architecture d’un Convolutional Neural Network est sensiblement la


même :
Couche de convolution (CONV) : permet d’analyser les images fournies en entrée et
de détecter la présence d’un ensemble de features.

Couche de Pooling (POOL) : une opération généralement appliquée entre deux couches
de convolution. Celle-ci reçoit en entrée les features maps formées en sortie de la couche
de convolution et son rôle est de réduire la taille des images, tout en préservant leurs
caractéristiques les plus essentielles.

176
CNN (Convolution Neural Network)
Construction (2/2)

 La couche d’activation ReLU (Rectified Linear Units) : remplace toutes les valeurs
négatives reçues en entrées par des zéros.

 Couche Fully Connected (FC) : Ces couches sont placées en fin d’architecture de
CNN et sont entièrement connectées à tous les neurones de sorties (d’où le terme
fully-connected).

 Après avoir reçu un vecteur en entrée, la couche FC applique successivement


une combinaison linéaire puis une fonction d’activation dans le but final de classifier
l’input image. 177
CNN (Convolution Neural Network)
Implémentation
Taille de l’image
Modèle séquentiel Nombre de filtre Taille de filtre
en entrée

model = [Link]([

layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 2


Partie
convolutive layers.MaxPooling2D((2, 2)),
Taille de
layers.Conv2D(64, (3, 3), activation='relu'), fenêtre
layers.MaxPooling2D((2, 2)),
Nombre de
layers.Conv2D(64, (3, 3), activation='relu'),
neurone dans
code CNN
Partie
classification [Link](), [Link](64, activation='relu'),
Nombre de neurones en
[Link](10, activation='softmax')sortie=
]) 178
nombre de classes

Vous aimerez peut-être aussi