Cours IA
Cours IA
M2 IoT & TD
A.U : 2023/2024
Explosion des données issues de
plusieurs sources :
Rym Besrour 3
Rym Besrour 4
La data science (science des données) et le machine learning
(ou apprentissage automatique) sont deux mots très en vogue lorsque l'on parle de
Introduction
1. Qu’est-ce que le Machine Learning?
2. Types de problème en ML
Apprentissage supervisé
Apprentissage non supervisé
3. Types de Données
4. Méthodologie de travail
Introduction
Le machine learning est un domaine captivant. Issu de nombreuses disciplines comme les statistiques,
l’optimisation, l’algorithmique ou le traitement du signal, c’est un champ d’études en mutation constante qui
s’est maintenant imposé dans notre société.
Rym Besrour 9
Objectifs
Rym Besrour 10
1. Qu’est-ce que le Machine Learning
Exemple
➢ Supposons qu’une entreprise veuille connaître le montant total dépensé par un client ou une cliente à
partir de ses factures. Il suffit d’appliquer un algorithme classique, à savoir une simple addition : un
algorithme d’apprentissage n’est pas nécessaire.
➢ Supposons maintenant que l’on veuille utiliser ces factures pour déterminer quels produits le client est
le plus susceptible d’acheter dans un mois. Bien que cela soit vraisemblablement lié, nous n’avons
manifestement pas toutes les informations nécessaires pour ce faire. Cependant, si nous disposons de
l’historique d’achat d’un grand nombre d’individus, il devient possible d’utiliser un algorithme de
machine learning pour qu’il en tire un modèle prédictif nous permettant d’apporter une réponse à
notre question.
1. Qu’est-ce que le Machine Learning
« Etant donné une tâche T et une mesure de performance P, on dit qu’un programme
informatique apprend à partir d’une expérience E si les résultats obtenus sur T,
mesurés par P, s’améliorent avec l’expérience E ».
Tom Mitchell, 1997
Rym Besrour 13
1. Qu’est-ce que le Machine Learning
Comment ça marche ?
o On donne à l’algorithme des données d’entrainement
o L’algorithme d’apprentissage machine apprend un modèle capable de
généraliser à de nouvelles données
Rym Besrour 15
1. Qu’est-ce que le Machine Learning
Ces deux piliers sont aussi importants l’un que l’autre. D’une part, aucun algorithme d’apprentissage ne
pourra créer un bon modèle à partir de données qui ne sont pas pertinentes – c’est le concept garbage in,
garbage out qui stipule qu’un algorithme d’apprentissage auquel on fournit des données de mauvaise qualité
ne pourra rien en faire d’autre que des prédictions de mauvaise qualité. D’autre part, un modèle appris avec
un algorithme inadapté sur des données pertinentes ne pourra pas être de bonne qualité.
Rym Besrour 17
1. Qu’est-ce que le Machine Learning
Exemples de reformulation de problèmes de machine learning sous la forme d’un problème d’optimisation.
• un vendeur en ligne peut chercher à modéliser des types représentatifs de clientèle, à partir des
transactions passées, en maximisant la proximité entre clients et clientes affectés à un même type
• une compagnie automobile peut chercher à modéliser la trajectoire d’un véhicule dans son
environnement, à partir d’enregistrements vidéo de voitures, en minimisant le nombre d’accidents
• des chercheurs en génétique peuvent vouloir modéliser l’impact d’une mutation sur une maladie, à
partir de données patient, en maximisant la cohérence de leur modèle avec les connaissances de
l’état de l’art ;
• une banque peut vouloir modéliser les comportements à risque, à partir de son historique, en
maximisant le taux de détection de non solvabilité.
Rym Besrour 18
2. Types de problèmes de Machine Learning
Rym Besrour 19
2. Types de problèmes de Machine Learning
Apprentissage supervisé
o On alimente l’algorithme avec des exemples tout en lui indiquant la catégorie à laquelle l’exemple
appartient.
o La phase de test consistera ensuite à lui présenter un élément et à mesurer son aptitude à « bien » le
catégoriser.
Rym Besrour 20
2. Types de problèmes de Machine Learning
Apprentissage supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , 𝑦1 , … , 𝑥𝑁 , 𝑦𝑁
Algorithme Modèle
Observations de ML prédictif
Etiquettes
𝑦𝑛 la cible correspondante
Rym Besrour 21
2. Types de problèmes de Machine Learning
Classification Régression
Rym Besrour 22
2. Types de problèmes de Machine Learning
Apprentissage supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , 𝑦1 , … , 𝑥𝑁 , 𝑦𝑁
Classification binaire
Un problème d’apprentissage supervisé dans lequel l’espace des étiquettes est binaire, autrement dit
𝑦 = 0,1 est appelé un problème de classification binaire.
Exemples :
Rym Besrour 23
2. Types de problèmes de Machine Learning
Apprentissage supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , 𝑦1 , … , 𝑥𝑁 , 𝑦𝑁
Classification multi-classe
Un problème d’apprentissage supervisé dans lequel l’espace des étiquettes est discret et fini, autrement dit
𝑦 = 1, 2, … , 𝐶 est appelé un problème de classification multi-classe.
Exemples :
• Identifier en quelle langue un texte est écrit.
• Identifier lequel des 10 chiffres arabes est un chiffre manuscrit.
• Identifier l’expression d’un visage parmi une liste prédéfinie de possibilités (colère, tristesse, joie,
etc.).
• Identifier à quelle espèce appartient une plante.
• Identifier les objets présents sur une photographie.
Rym Besrour 24
2. Types de problèmes de Machine Learning
Apprentissage supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , 𝑦1 , … , 𝑥𝑁 , 𝑦𝑁
Régression
Un problème d’apprentissage supervisé dans lequel l’espace des étiquettes est 𝑦 = ℝ est appelé un problème
de régression.
Exemples :
• Prédire le nombre de clics sur un lien.
• Prédire le prix d’une action en bourse.
• Prédire le nombre d’utilisateurs et utilisatrices d’un service en ligne à un moment donné.
Rym Besrour 25
2. Types de problèmes de Machine Learning
Apprentissage non supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , … , 𝑥𝑁
Algorithme Modèle
Observations de ML prédictif
Rym Besrour 26
2. Types de problèmes de Machine Learning
Apprentissage non supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , … , 𝑥𝑁
Clustering
Le clustering, ou partitionnement, consiste à identifier des groupes dans les données. Cela permet de
comprendre leurs caractéristiques générales, et éventuellement d’inférer les propriétés d’une observation en
fonction du groupe auquel elle appartient.
Exemples :
• La segmentation de marché consiste à identifier des groupes d’usagers ou de clients ayant un
comportement similaire. Cela permet de mieux comprendre leur profil, et cibler une campagne de
publicité, des contenus ou des actions spécifiquement vers certains groupes.
• Identifier des groupes de documents ayant un sujet similaire, sans les avoir au préalable étiquetés par
sujet.
• Identifier des groupes parmi les patients présentant les mêmes symptômes permet d’identifier des
sous-types d’une maladie, qui pourront être traités déféremment.
Rym Besrour 27
2. Types de problèmes de Machine Learning
Apprentissage non supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , … , 𝑥𝑁
Algorithme
Observations de ML
Rym Besrour 28
2. Types de problèmes de Machine Learning
Apprentissage non supervisé : 𝔻𝑡𝑟𝑎𝑖𝑛 = 𝑥1 , … , 𝑥𝑁
Réduction de dimension-PCA
Il s’agit de trouver une représentation des données dans un espace de dimension plus faible que celle de
l’espace dans lequel elles sont représentées à l’origine.
Cela permet de réduire les temps de calcul et l’espace mémoire nécessaire au stockage des données, mais
aussi souvent d’améliorer les performances d’un algorithme d’apprentissage supervisé entrainé par la suite sur
ces données.
Algorithme Observations
Observations de ML réduites
Rym Besrour 29
3. Types de données
Rym Besrour 30
3. Types de données Variable Field dimension Feature
Sample
➢ Un attribut est une propriété et ou une
caractéristique de l’objet
Observation
➢ Un ensemble d’attributs décrit un objet.
Instance
example
Rym Besrour
entity
3. Types de données
Rym Besrour 33
4. Méthodologies de travail
— Prétraitement : Cette étape est dédiée au nettoyage et au prétraitement des données cibles afin d’obtenir
des données cohérentes.
— Transformation : Cette étape est dédiée pour la transformation des données à l’aide de méthodes de
réduction ou de transformation de dimensionnalité.
— Exploration des données : Durant cette étape, les analystes choisissent et implémentent les algorithmes
qui sont adaptés au problème : Régression, Classification etc..
— Evaluation : Cette étape consiste à interpréter et évaluer les résultats provenant de l’étape précédente et
évaluer les modèles.
Rym Besrour 34
4. Méthodologies de travail
Rym Besrour 35
4. Méthodologies de travail
— Explore : Cette étape est dédiée à l’exploration des données et l’étude des anomalies imprévues afin de les
mieux comprendre.
— Modify : Cette étape englobe la modification des données à travers la création, sélection et transformation
des variables pour faciliter la phase du choix de modèle.
— Model : Cette étape consiste à modéliser les données en permettant à la machine la recherche
automatique d’une combinaison de données et des mécanismes en vue d’assurer une prédiction fiable.
— Assess : C’est une étape dédiée a l’évaluation des données, de l’utilité ainsi que la fiabilité des résultats du
mécanisme d’exploration et l’estimation des performances du modèle.
Rym Besrour 36
4. Méthodologies de travail
Rym Besrour 37
4. Méthodologies de travail
— Compréhension du métier : Tout d’abord, une analyse approfondie des objectifs et des besoins de l’entreprise
doit être effectuée en se posant les questions métiers et comprenant la problématique à résoudre par la science
des données.
— Compréhension des données : Cette phase implique l’étude et l’exploration des données collectées dans le but
de vérifier leur qualité et dégager les informations cachées pour construire un échantillon spécifique et
représentatif permettant d’éviter les problèmes qui peuvent survenir dans les prochaines étapes.
— Préparation des données : Cette phase est généralement la plus longue du projet. Elle contient toutes les
opérations nécessaires pour construire l’ensemble de données final. Parmi ces opérations nous citons le
nettoyage, l’intégration et la transformation pour rendre ces données compatibles avec les algorithmes
d’apprentissage à utiliser dans la prochaine étape.
— Modélisation : C’est la phase de sélection et de l’entrainement des modèles sur les données générées depuis la
phase précédente afin de trouver les valeurs optimales. En général, le retour à l’étape préparation des données
est jugée indispensable en vue d’améliorer la performance des algorithmes.
— Evaluation : Dans cette étape, les résultats des modèles sont évalués tout en assurant que le projet continu à
respecter les objectifs métiers.
— Déploiement : A ce niveau, les résultats sont organisés et intégrés afin de les présenter au client final et le
modèle est déployé pour le mettre en mode production.
Rym Besrour 38
Chapitre 2
Exploration, Prétraitement et Transformation
des Données
1. Types de variables
2. Exploration des Données
3. Nettoyage des données (Data Cleaning)
4. Feature engineering
5. Imbalanced Dataset
1. Les 4 types de variables
Rym Besrour 40
1. Les 4 types de variables
1. Les variables quantitatives
Ce sont les variables qui prennent des valeurs numériques, à condition que ces valeurs expriment une quantité
et aient un sens lorsque l’on y applique des opérations arithmétiques.
Une variable quantitative est soit discrète, soit continue.
Si le nombre de valeurs possibles d'une variable est très grand, alors on peut la considérer comme continue.
Sinon, on la considère comme discrète.
Rym Besrour 41
2. Exploration des Données (c’est quoi ??)
➢ Mesures Statistiques
• mean,
• median,
• mode,
• range,
• quantiles,
• variance
Rym Besrour 43
2. Exploration des Données (Outils)
1. La moyenne
En Python, à l’aide du module numpy, on peut calculer la moyenne de température à Milan :
Rym Besrour 44
2. Exploration des Données (Outils)
2. La médiane
La médiane est une valeur réelle m telle qu’il y ait au moins autant d’observations xi inférieures ou égales
à m que supérieure ou égales à m. En d’autres termes, il s’agit de trouver “le point central” des valeurs d’une
feature donnée.
La médiane a une propriété statistique intéressante. En effet, elle est moins sensible aux outliers que la
moyenne. Par ailleurs, il ne faut pas se baser seulement sur la moyenne mais prendre aussi en compte la
valeur médiane de la feature.
Rym Besrour 45
2. Exploration des Données (Outils)
3. Les quartiles
Un quantile d’ordre α (avec 0 < 𝛼 < 1) est la plus petite valeur de 𝑄𝛼 de la série de données (de la feature), tel
qu’au moins 𝛼% des autres valeurs lui sont inférieures.
On reconnait deux quantiles particuliers le 𝑄0.25 𝑒𝑡𝑄0.75 qu’on appelle respectivement des quartiles. Le quartile 𝑄1
correspond au quantile 𝑄0.25 et le quartile 𝑄3 correspond au quantile 𝑄0.75 .
Le quantile 𝑄0.5 est la médiane.
Rym Besrour 46
2. Exploration des Données (Outils)
Rym Besrour 47
2. Exploration des Données (Outils)
Rym Besrour 48
2. Exploration des Données (Outils)
6. Corrélation
Rym Besrour 49
2. Exploration des Données (Outils)
Pour des variables catégoriques, les mesures statistiques décrivent le nombre de catégories et la fréquence
de chaque catégorie : Tableau de contingence
Rym Besrour 50
2. Exploration des Données (Outils)
Rym Besrour 51
2. Exploration des Données (Outils)
Rym Besrour 52
2. Exploration des Données (Outils)
Rym Besrour 53
2. Exploration des Données (Outils)
• Les histogrammes donnent des informations plus détaillées: fréquences des valeurs.
• Les boxplots sont plus précis: ils indiquent l'emplacement exact des quartiles et des valeurs
aberrantes.
• Les variables discrètes numériques qui ont un petit nombre de valeurs uniques peuvent être
traitées comme des variables catégorielles à des fins de visualisation.
• Les nuages de point (scatter plots): Utile pour détecter rapidement les relations entre les attributs,
identifier les attributs non pertinents et parfois pour détecter les valeurs aberrantes.
Rym Besrour 54
2. Exploration des Données (Outils)
une représentation graphique permettant de Une valeur aberrante est une observation qui se
représenter la répartition d'une variable continue situe à une distance anormale des autres valeurs
dans un échantillon aléatoire d'une population.
Rym Besrour 55
2. Exploration des Données (Outils)
Rym Besrour 56
2. Exploration des Données (Outils)
Line plots
Line plots
Modèle cyclique
Ligne de tendance
(cyclical pattern)
Rym Besrour (Trend) 58
2. Exploration des Données (Outils)
Nuage de points
(Scatter Plot)
Rym Besrour 59
2. Exploration des Données (Outils)
Rym Besrour 60
2. Exploration des Données (Outils)
Bar plots
Rym Besrour 61
2. Exploration des Données (Outils)
Bar plots
Un diagramme à Un diagramme à
barres groupées barres empilées
Rym Besrour 62
2. Exploration des Données (Outils)
Box plots
Rym Besrour 63
Q2= Median
Q1 (lower quartile) = Median of the left set of data
Q3 (upper quartile)= Median of the right set of data
IQR(Inter-quartile range )= Q3-Q1
Rym Besrour 64
2. Exploration des Données (Outils)
Box plots
La plupart des algorithmes d’apprentissage automatique exigent que les données soient formatées d’une
manière très spécifique, de sorte que les ensembles de données nécessitent généralement une certaine
préparation avant de pouvoir fournir des informations utiles.
Certains ensembles de données comportent des valeurs manquantes, invalides ou difficiles à traiter par un
algorithme. Si les données sont manquantes, l’algorithme ne peut pas les utiliser et dans le cas où les données
sont invalides, l’algorithme produit des résultats moins précis, voire trompeurs.
Une bonne préparation des données permet d’obtenir des données propres et bien structurées, ce qui se
traduit par des résultats de modèles plus pratiques et plus précis.
Le nettoyage des données désigne le processus d’identification des parties incorrectes, incomplètes,
inexactes, non pertinentes ou manquantes des données, puis leur modification, leur remplacement ou leur
suppression en fonction de la nécessité.
Rym Besrour 66
3. Nettoyage des données « Data cleaning »
Documentation
(lire la Exploration des Visualisation des
description des données données
données
Rym Besrour 67
3. Nettoyage des données « Data cleaning »
Rym Besrour 68
3. Nettoyage des données « Data cleaning »
Problèmes communs :
Rym Besrour 69
3. Nettoyage des données « Data cleaning »
— Colonne incohérente : Cette étape consiste à supprimer les colonnes qui présentent des informations non
pertinentes afin de se concentrer sur les colonnes qui sont fortement corrélées et significatives.
— Données manquantes : Il est rare de disposer d’un ensemble de données du monde réel ne comportant
aucune valeur manquante. La gestion des valeurs manquantes est très importante, car la présence des valeurs
manquantes peut affecter l’analyse et les modèles d’apprentissage automatique.
— Lignes dupliquées : Les ensembles de données peuvent contenir des entrées en double.
La suppression des lignes en double est l’une des tâches les plus importantes.
Rym Besrour 70
3. Nettoyage des données « Data cleaning »
Rym Besrour 71
3. Nettoyage des données « Data cleaning »
Noise
Rym Besrour 72
3. Nettoyage des données « Data cleaning »
Rym Besrour 73
3. Nettoyage des données « Data cleaning »
Rym Besrour 74
3. Nettoyage des données « Data cleaning »
Traitement des mauvaises valeurs: 3 approches principales pour traiter tous les types de mauvaises
valeurs (manquantes, invalides, aberrantes):
- Pour les attributs numériques, utilisez généralement la moyenne (mean) ou la médiane (median)
- Pour l'attribut catégoriel, utilisez le mode (valeur la plus fréquente)
2. Supprimer l’observation
Rym Besrour 76
3. Nettoyage des données « Data cleaning »
1.[Link]
2.[Link]
3.[Link]
Rym Besrour 77
4. Feature engineering
Le Feature Engineering est un processus qui consiste à transformer les données brutes en
caractéristiques représentant plus précisément le problème sous-jacent au modèle prédictif ➔ il s’agit
d’appliquer une connaissance du domaine pour extraire des représentations analytiques à partir des
données brutes et de les préparer pour le Machine Learning.
Le Feature Engineering permet de déterminer quelle est la meilleure représentation des données
d’échantillon pour apprendre la solution au problème.
Le Feature Engineering repose sur un ensemble de procédures et de méthodes bien définies. Les
procédures à utiliser varient en fonction des données, et c’est avec l’expérience et la pratique que l’on
apprend lesquelles utiliser en fonction du contexte.
Rym Besrour 78
4. Feature engineering
1. La Feature Importance consiste à estimer de manière objective l’utilité d’une caractéristique. Cette
démarche peut s’avérer utile pour sélectionner les caractéristiques. Chacune d’entre elles reçoit un score,
et elles peuvent ainsi être classées en fonction de leurs scores. Celles avec le plus haut score peuvent être
choisies pour être incluses dans l’ensemble de données.
De manière générale, une caractéristique peut être considérée importante si elle est hautement corrélée
avec la variable dépendante, à savoir l’élément à prédire.
Rym Besrour 79
4. Feature engineering
2. La Feature Selection est une autre méthode, permettant de supprimer les attributs des données inutiles ou
redondantes dans le contexte du problème à résoudre. Cette approche consiste à sélectionner
automatiquement le sous-ensemble le plus utile pour la résolution du dit problème.
Les algorithmes peuvent utiliser une méthode comme la corrélation ou d’autres méthodes de Feature
Importance pour classer les caractéristiques et les sélectionner.
3. Les méthodes de Deep Learning les plus modernes permettent d’y parvenir. On peut citer les auto-
encodeurs ou les machines Boltzmann restreintes. Ces techniques parviennent à apprendre
automatiquement des représentations abstraites de caractéristiques de façon non supervisée ou semi-
supervisée. Ces représentations de caractéristiques compressées peuvent ensuite être utilisées pour la
reconnaissance de discours, la classification d’images, ou encore la reconnaissance d’objets.
Rym Besrour 80
4. Feature engineering
• Mappez les valeurs d'un attribut numérique dans une plage uniforme de sorte que tous les attributs aient
une plage de valeurs similaire, par exemple [0,1] ou [-1,1]
• La normalisation des données est nécessaire lors de l'utilisation d'une méthode de modélisation sensible à
l'échelle (Cela signifie que la méthode donne plus de poids aux valeurs d'attribut plus grandes dans le
modèle construit)
Rym Besrour 81
4. Feature engineering
[Link] [Link]
Rym Besrour 82
4. Feature engineering
Log Normalization
Rym Besrour 83
4. Feature engineering
Rym Besrour 84
4. Feature engineering
Label encoding
Un attribut catégoriel est transformé en un seul attribut numérique avec
des valeurs comprises entre 0, 1, ..., K-1
Rym Besrour 85
4. Feature engineering
One-hot encoding
Remplace un attribut catégoriel par K attributs binaires numériques, où K = nombre de catégories dans la variable.
Rym Besrour 86
4. Feature engineering
Label encoding
● C'est une autre façon de transformer des attributs catégoriels en attributs numériques.
● Un attribut catégoriel est transformé en un seul attribut numérique avec des valeurs comprises entre 0, 1, ...,
K-1
● Remarque: label encoding et One-Hot sont équivalents lorsque la variable catégorielle est binaire
Rym Besrour 87
4. Feature engineering
Rym Besrour 88
4. Feature engineering
Exemple : Considérez un attribut shirt_size qui a 6 possibles valeurs (catégories): XS, S, M, L, XL, XXL
- Nous pouvons regrouper (combiner) XL et XXL dans une seule catégorie
- Mais nous ne pouvons pas regrouper XS et XXL
Rym Besrour 89
4. Feature engineering
● Wood Siding', 'Wood Shingle', and 'Wood' were grouped into a single category called 'Wood'
● 'Concrete Block', 'Stucco', 'Masonry', 'Other', and 'Asbestos shingle' were grouped into a new category
called 'Other'
Rym Besrour 90
4. Feature engineering
Rym Besrour 91
4. Feature engineering
Rym Besrour 92
4. Feature engineering
Rym Besrour 93
4. Feature engineering
[Link]
[Link]
[Link]
[Link]
Rym Besrour 94
5. Imbalanced Dataset
• L’un des défis les plus importants que nous devons relever est le problème du déséquilibre des classes.
Ce dernier est couramment rencontré dans les systèmes de détection des fraudes.
• Dans un cadre d’apprentissage supervisé, ce problème se produit lorsqu’une classe est très rare par
rapport à l’autre. Ainsi, il est difficile de découvrir des modèles robustes pour la classe minoritaire.
• Une technique largement adoptée pour traiter les ensembles de données fortement déséquilibrés
est appelée rééchantillonnage. Elle consiste à supprimer des échantillons de la classe majoritaire (sous-
échantillonnage) ou bien à ajouter davantage des exemples de la classe minoritaire (sur-échantillonnage).
Rym Besrour 95
5. Imbalanced Dataset
• Dans les applications de détection de fraude, comme dans de nombreux domaines avec des distributions
de classes déséquilibrées, une classification correcte de la classe rare est considérée beaucoup plus
importante qu’une classification correcte de la classe majoritaire.
• L’un des principaux problèmes posés par les ensembles de données de classification déséquilibrée est que
les algorithmes d’apprentissage automatique standard ne sont pas performants sur ces ensembles.
• De nombreux algorithmes d’apprentissage automatique reposent sur la distribution des classes dans
l’ensemble de données d’apprentissage pour évaluer la probabilité d’observer des exemples dans chaque
classe lorsque le modèle sera utilisé pour faire des prédictions.
• Ainsi, de nombreux algorithmes d’apprentissage automatique, comme les arbres de décision, les k-voisins
les plus proches et les réseaux de neurones, apprendront que la classe minoritaire n’est pas aussi
importante que la classe majoritaire et accorderont plus d’attention et de meilleures performances à la
classe majoritaire.
Rym Besrour 96
5. Imbalanced Dataset
Le problème des ensembles de données déséquilibrés est que les algorithmes d’apprentissage de la
classification standard sont souvent biaisés en faveur des classes majoritaires et que, par conséquent, le taux
d’erreurs de classification est plus élevé dans les instances de la classe minoritaire.
➔ C’est un problème car la classe minoritaire est exactement la classe dont nous nous soucions le plus dans
les problèmes de classification déséquilibrée.
Rym Besrour 97
5. Imbalanced Dataset
Rym Besrour 98
5. Imbalanced Dataset
- SMOTE : Cet algorithme fonctionne en sélectionnant des exemples proches dans l’espace des
caractéristiques, en traçant une ligne entre ces exemples et en dessinant un nouvel échantillon comme un
point le long de cette ligne. Il existe de nombreuses extensions de la méthode SMOTE qui visent à être plus
sélectives pour les types d’exemples de la classe majoritaire qui sont synthétisés.
• La méthode Borderline-SMOTE : consiste à sélectionner les instances de la classe minoritaire qui sont mal
classées, par exemple avec un modèle de classification k-voisin le plus proche, et à ne générer que des
échantillons synthétiques qui sont "difficiles" à classer.
• Borderline Oversampling : est une extension de SMOTE qui adapte un SVM à l’ensemble de données et
utilise la limite de décision définie par les vecteurs de support comme base pour générer des exemples
synthétiques, toujours selon l’idée que la limite de décision est la zone où davantage d’exemples
minoritaires sont nécessaires.
• Adaptive Synthetic Sampling (ADASYN) est une autre extension de SMOTE qui génère des échantillons
synthétiques inversement proportionnels à la densité des exemples dans la classe minoritaire. Il est conçu
pour créer des exemples synthétiques dans les régions de l’espace des caractéristiques où la densité des
exemples minoritaires est faible, et moins ou pas du tout là où la densité est élevée.
Rym Besrour 99
5. Imbalanced Dataset
Parmi les méthodes de sous-échantillonnage les plus utilisées et mises en œuvre nous trouverons :
- Sous-échantillonnage aléatoire : c’est la méthode la plus simple qui consiste à supprimer de manière
aléatoire des exemples de la classe majoritaire dans l’ensemble de données d’apprentissage.
- Règle du plus proche voisin condensé (CNN) : Cette règle a été conçue pour réduire la mémoire requise par
l’algorithme des k plus proches voisins. Elle fonctionne en énumérant les exemples de l’ensemble de
données et en les ajoutant au magasin uniquement s’ils ne peuvent pas être classés correctement par le
contenu actuel du magasin, et peut être appliquée pour réduire le nombre d’exemples de la classe
majoritaire après que tous les exemples de la classe minoritaire aient été ajoutés au magasin.
généralisation
2. Sélection de modèle
3. Critères de performance
L’entrainement du modèle consiste à identifier les meilleurs paramètres pour le modèle choisi, ces
paramètres peuvent être des coefficients ou des fonctions mathématiques selon le modèle.
Le principe d’apprentissage est toujours le même : minimiser une mesure d’erreur du modèle.
Une fois le modèle entrainé, il est évalué avec des données d’évaluation. Le modèle entrainé reçoit des
données qu’il n’a pas utilisées pendant son entrainement, afin de juger sa capacité de généralisation ➔
établir une mesure de performance du modèle.
Dans scikit-learn, la méthode model_selection.KFold permet de créer les folds d’une validation croisée.
108
1. Estimation empirique de l’erreur de
généralisation
Leave-one-out
Comment choisir le nombre de folds, k ?
Moins il y a de données disponibles pour l’entraînement, moins on est capable de bien apprendre. Or chaque
𝑘−1 𝑛
fold contient 𝑘 points (si n est la taille du jeu complet). Si on pousse ce raisonnement, on fait autant de
folds que de points dans le jeu complet (c’est à dire n) , et les jeux d’entraînement font quasiment la même
taille que le jeu complet ! C’est ce qu’on appelle le leave-one-out (on ne laisse de côté qu’un seul exemple pour
chaque jeu d’entraînement).
MAIS :
• on augmente fortement le temps de calcul. Par exemple, sur une base de données de 100 000 images !
Il faudrait entraîner 100 000 modèles sur 99 999 images chacun.
• on forme ainsi des jeux d’entraînements très similaires entre eux, et des jeux de test très différents les
uns des autres. On va avoir quasiment le même modèle sur chaque fold, et la qualité de ses prédictions
risque de beaucoup varier. Il sera difficile de tirer des conclusions.
EnRym
pratique,
Besrour on choisit le plus souvent k=5 ou k=10. 109
1. Estimation empirique de l’erreur de
généralisation
2. Bootstrap
• Pour identifier le meilleur modèle pour un problème, les étapes d’entrainement et d’évaluation sont
réalisées pour différents modèles, ensuite le plus performant est retenu en fonction du critère choisi.
Le résultat de l’entrainement dépend des paramètres d’entrainement et des paramètres
topologiques des modèles : « hyper paramètres ».
• Il est important de faire la différence entre les paramètres de l’algorithme, qui sont obtenus
automatiquement après l’entrainement, et les hyper paramètres qui sont choisis a priori par le
concepteur du modèle.
• Par exemple, les valeurs des variables à l’intérieur d’un modèle sont des paramètres, et elles sont
calculées par l’algorithme d’apprentissage, mais le nombre d’itérations d’apprentissage est un hyper
paramètre, choisi par le concepteur du modèle.
➢ Tester plusieurs modèles et plusieurs paramètres avant de choisir celui qui sera
implémenté.
➢ La sélection du bon algorithme peut être opérée en automatisant l’exploration de
tous les algorithmes disponibles et leurs diverses combinaisons d’hyper paramètres
3. Exploration de l’espace des hyperparamètres suivant la procédure choisie. Pour chaque tuple de
valeurs (une valeur pour chaque hyperparamètre), apprentissage et évaluation des modèles
résultants par application de la validation croisée.
4. Comparaison des résultats de validation croisée, sélection des valeurs des hyperparamètres qui
mènent aux meilleures performances (à l’erreur de généralisation estimée la plus faible).
Par exemple pour un Random Forest, on doit choisir le nombre d’arbres à créer et le nombre de variables à
utiliser à chaque division d’un noeud.
Pour chaque paramètre, on détermine un ensemble de valeurs que l’on souhaite tester.
Par exemple, dans le cas d’un Random Forest on pourrait tester :
• Nombre d’arbres : {100, 150, 200, 250}
• Nombre de variables sélectionnées : {8, 10, 12, 14, 16}
Comment tester intelligemment ces 20 modèles sur le même dataset. Nous allons utiliser une méthode de
validation croisée : le k-fold.
La matrice de confusion est un outils pour mesurer la qualité d’un système de classification en
apprentissage supervisé. Chaque ligne de la matrice indique le nombre d’occurrences réelles de chaque
classe et chaque colonne indique le nombre d’occurrences prédites de chaque classe.
Classe réelle
0 1
Classe Prédite 0 Vrais Négatifs (TN) Faux Négatifs (FN)
1 Faux Positifs (FP) Vrais Positifs (TP)
119
3. Critères de performance
• faux positifs (False Positives) les exemples négatifs étiquetés positifs par le modèle ;
On note généralement par TP le nombre de vrais positifs, FP le nombre de faux positifs, TN le nombre de
vrais négatifs et FN le nombre de faux négatifs.
Les faux positifs sont aussi appelés fausses alarmes ou erreurs de type I, par opposition aux erreurs de
type II qui sont les faux négatifs.
• La précision ou valeur positive prédictive (PPV) : la proportion de prédictions correctes parmi les
prédictions positives.
« Quelle est la fiabilité d’un classement proposé? »
𝑇𝑃
𝑝𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑇𝑃 + 𝐹𝑃
Exemple : Cas d’un modèle classificateur qui cherche à identifier des pièces de mauvaise qualité.
Supposons une série de production de 100 pièces où 20 sont de mauvaise qualité et 80 sont de bonne qualité.
Suite à l’analyse des données des 100 pièces, le modèle prédit que 10 sont défectueuse, mais parmi elles,
seulement 5 correspondent véritablement à des pièces de mauvaise qualité. Cela veut dire également que le
modèle prédit que 90 pièces sont de bonne qualité, mais sur ces 90 seulement 75 correspondent
véritablement à des pièces de bonne qualité.
▪ Les pièces de mauvaise qualité :
5 5
𝑟𝑎𝑝𝑝𝑒𝑙 = 20 = 25% 𝑝𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 = 10 = 50%
▪ Les pièces de bonne qualité :
75 75 Bonne Mauvaise
𝑟𝑎𝑝𝑝𝑒𝑙 = = 93,8% 𝑝𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 = = 83,3%
80 90 qualité qualité
Classe Bonne 75 5
➢ D’une part le modèle est capable de « détecter » une proportion faible des pièces de réelle qualité
mauvaise qualité (r=25%), et une proportion élevée des pièces de bonne qualité
(r=93,8%) Mauvaise 15 5
qualité
➢ D’autre part, le modèle est peu fiable quand il fait une prévision de type « mauvaise
qualité » (p=50%) et qu’il est un peu plus fiable quand il fait une prévision de type
« bonne qualité » (p=83,3%)
3. Critères de performance
Courbes ROC
Exemple : Pour illustrer la construction d’une courbe ROC, prenons l’exemple décrit sur le tableau suivant
Étiquette + - + + - -
score 0.9 0.8 0.6 0.4 0.3 0.1
Seuil > 0.9 0.8 – 0.9 0.6 – 0.8 0.4 – 0.6 0.3 – 0.4 0.1 – 0.3 < 0.1
TP/P 0 1/3 1/3 2/3 1 1 1
FP/P 0 0 1/3 1/3 1/3 2/3 1
124
3. Critères de performance
Courbes précision-rappel
Pour synthétiser cette courbe, on peut utiliser l’aire sous celle-ci, souvent
abrégée AUPR pour Area Under the Precision-Recall curve
125
3. Critères de performance
Reprenons l’exemple précédent
Seuil > 0.9 0.8 – 0.9 0.6 – 0.8 0.4 – 0.6 0.3 – 0.4 0.1 – 0.3 < 0.1
Rappel 0 1/3 1/3 2/3 1 1 1
Précision - 1 1/2 2/3 3/4 3/5 3/6
Erreurs de régression
• Ecart Absolu Moyen (MAE : Mean Absolute Error) : la moyenne des écarts entre les prévisions et les résultats
attendus sur un ensemble d’observations.
𝑛
1
𝑀𝐴𝐸 = 𝑦𝑖 − 𝑦ො𝑖
𝑛
𝑖=1
𝑦𝑖 : la valeur réelle , 𝑦ො𝑖 : la valeur prédite 𝑛 : nombre d’observations
• Ecart Quadratique Moyen (MSE : Mean Squared Error) : la moyenne des carrés des écarts entre les prévisions
et les valeurs réelles sur un ensemble d’observations.
𝑛
1
𝑀𝑆𝐸 = 𝑦𝑖 − 𝑦ො𝑖 2
𝑛
𝑖=1
• Coefficient de détermination R² : mesure de la probabilité de prédiction des futures observations par le
modèle.
𝑛 𝑛
σ 𝑦 − 𝑦
ො 2 1
𝑖=1 𝑖 𝑖
𝑅2 = 1 − 𝑛 𝑎𝑣𝑒𝑐 𝑦ത = 𝑦𝑖
σ𝑖=1 𝑦𝑖 − 𝑦ത 2 𝑛
𝑖=1
127
3. Critères de performance
Segmentation
• Distance intra-classe mesure la dispersion des éléments d’une même classe en calculant la moyenne de la
distance entre les éléments entre les éléments de la classe et le centre de la classe.
L’algorithme de clustering devra faire en sorte que cette distance soit minimale.
• Distance inter-classe mesure la distance entre les centres des différentes classes.
L’algorithme de clustering devra faire de sorte que cette distance soit maximale.
• Densité : pour chaque éléments, la densité est définie par le nombre d’éléments distant de moins d’un
certain seuil.
Si l’élément a plusieurs voisins, il aura une forte densité.
S’il a peu de voisins dans un rayon inférieur au seuil demandé, il aura une densité faible.
Ce type de mesure est utilisé pour la détection des valeurs aberrantes (outliers).
128
4. Généralisation
Ces questions sont importantes car le but du Machine Learning est de prédire
des résultats sur des données non vues par la fonction prédictive.
L’Overfitting désigne le fait que le modèle prédictif produit par l’algorithme de Machine Learning s’adapte
trop bien au Training Set.
➢ Le modèle prédictif capturera tous les “aspects” et détails qui caractérisent les données du Training
Set.
➢ Il capturera toutes les fluctuations et variations aléatoires des données du Training Set.
➢ Le modèle prédictif capturera les corrélations généralisables ET le bruit produit par les données.
Quand un tel événement se produit, le modèle prédictif pourra donner de très bonnes prédictions sur les
données du Training Set, mais il prédira mal sur des données qu’il n’a pas encore vues lors de sa phase
d’apprentissage.
L’Underfitting : le modèle prédictif généré lors de la phase d’apprentissage, s’adapte mal au Training Set,
il n’arrive même pas à capturer les corrélations du Training Set.
Quand l’algorithme de Machine Learning apprend depuis le Training Set, les paramètres du modèle
prédictif vont s’affiner au fil du temps.
✓ Le coût d’erreur sur le Training Set continuera à se réduire.
✓ Parallèlement, le coût d’erreur des prédictions sur les données de test se réduira également.
coût d’erreur
Mais si on continue à entrainer longuement le
dans le Test Set
modèle, le coût d’erreur sur le Training Set continuera
à se réduire MAIS celui du Test Set pourra
commencer à augmenter : le modèle prédictif s’est
trop spécialisé sur les données d’apprentissage.
coût d’erreur
dans le Training
Set
Underfitting Overfitting 135
Le concept de compromis biais-variance nous permet de bien résumer la situation :
1. Objectifs
2. Qu’est-ce qu’un modèle paramétrique
3. Régression linéaire
4. Régularisation
5. Régression Ridge
6. Régression Lasso
7. Régression Elastic Net
8. Régression logistique
9. Régression Softmax
1. Objectifs
• On parle de modèle paramétrique quand on utilise un algorithme d’apprentissage dont le but est de
trouver les valeurs optimales des paramètres d’un modèle dont on a défini la forme analytique en
fonction des descripteurs.
• La complexité d’un modèle paramétrique grandit avec le nombre de paramètres à apprendre,
autrement dit avec le nombre de variables.
• À l’inverse, la complexité d’un modèle non paramétrique aura tendance à grandir avec le nombre
d’observations.
Exemple:
On cherche à modéliser la relation entre poids des bébés à naissance et l'âge, le poids et le statut tabagique
de la mère durant la grossesse. On pose :
• y = poids de naissance en grammes,
• x1 = âge de la mère,
• x2 = poids de la mère en kilos,
• x3 = statut tabagique de la mère pendant la grossesse codée 1=oui et 0=non.
La régression linéaire est le modèle le plus simple d’apprentissage supervisé. Elle cherche à établir une
relation linéaire entre une variable de sortie 𝒚 et plusieurs variables d’entrée 𝒙.
Il s’agit d’un modèle de régression, où la valeur cible est supposée être une combinaison linéaire des variables
d’entrée, décrite par la fonction suivante :
𝑦
ෞ𝜃 (𝑥) = 𝜃0 + 𝜃1 𝑥1 + 𝜃2 𝑥2 + ⋯ + 𝜃𝑛 𝑥𝑛 ෞ𝜃 (𝑥) = ℎ𝜃 𝑋 = 𝜃 𝑇 . 𝑋
𝑦
Forme vectorielle de la prédiction d’un modèle de
Prédiction d’un modèle de régression linéaire régression linéaire
Entrainer un modèle de régression linéaire consiste à trouver le vecteur 𝜃 qui minimise la racine carré de
l’erreur quadratique moyenne (RMSE : Root Mean Square Error).
𝑚
1 2
𝑀𝑆𝐸 𝑋, ℎ𝜃 = 𝜃 𝑇 . 𝑥 (𝑖) − 𝑦 (𝑖)
𝑚
𝑖=1
Fonction de coût pour le modèle de régression linéaire
Equation normale
« Descente de Gradient »
Son principe est de corriger petit à petit les paramètres dans le but de
minimiser la fonction de coût.
La descente de gradient calcule le gradient de la fonction de coût au point
𝜃, puis progresse en direction du gradient descendant.
Lorsque le gradient est nul ➔ un minimum est atteint
En pratique, on initialise 𝜃 avec des valeurs aléatoires, initialisation aléatoire, puis on l’améliore
progressivement, pas à pas, en tentant à chaque étape de faire décroitre la fonction de coût (la MSE),
jusqu'à ce que l’algorithme converge vers un minimum.
Un hyperparamètre important dans l’algorithme de descente de gradient est la dimension des pas : learning
rate (taux d’apprentissage).
Pour implémenter une descente de gradient, on doit calculer le gradient de la fonction de coût par rapport
à chaque paramètre 𝜃𝑗 du modèle.
𝜕
𝑀𝑆𝐸(𝜃)
𝑚
𝜕𝜃0
𝜕 2 (𝑖) 𝜕
𝑀𝑆𝐸(𝜃) = 𝜃 𝑇 . 𝑥 (𝑖) − 𝑦 (𝑖) 𝑥𝑗 𝜕𝜃1
𝑀𝑆𝐸(𝜃)
2 𝑇
𝜕𝜃𝑗 𝑚 .
𝑖=1 𝛻𝜃 𝑀𝑆𝐸 𝜃 = = 𝑋 . 𝑋. 𝜃 − 𝑦
. 𝑚
Dérivées partielles de la fonction de coût
.
𝜕
𝑀𝑆𝐸(𝜃)
𝜕𝜃𝑛
Vecteur gradient de la fonction de coût
Cette formule implique des calculs sur l’ensemble du jeu d’entrainement 𝑋, à chaque étape de la descente
de gradient ➔ extrêmement lent sur les jeux d’entrainement très volumineux.
Une fois qu’on a calculé le vecteur gradient, il suffit d’aller dans la direction opposée pour descendre ➔
soustraire 𝛻𝜃 𝑀𝑆𝐸 𝜃 de 𝜃, et multiplier le vecteur gradient par le taux d’apprentissage 𝜂 pour déterminer le
pas de la progression vers le bas.
La descente de gradient stochastique ne choisit à chaque étape qu’une observation prise au hasard dans
l’ensemble d’entrainement et calcule les gradients en se basant uniquement sur cette seule observation ➔
Algorithme beaucoup plus rapide.
Au lieu de calculer les dérivées partielles sur l’ensemble du jeu d’entrainement (DG ordinaire) ou sur une
seule observation (DG stochastique), la descente de gradient par mini-lots calcule le gradient sur de
petits sous-ensembles d’observations sélectionnées aléatoirement.
𝐸 (𝑦 ∗ − 𝑦ො ∗ )2 = 𝜎 2 + 𝑩𝒊𝒂𝒊𝒔𝟐 + 𝑽𝒂𝒓𝒊𝒂𝒏𝒄𝒆
Quel principe ? Accepter une légère augmentation du biais pour obtenir une réduction plus que
proportionnelle de la variance.
Comment ? Diriger (réguler) un peu plus fermement la modélisation en imposant des contraintes sur
les paramètres estimés de la régression (contraintes sur les valeurs que pourront prendre les 𝑎ො𝑗 dans
leur ensemble pour éviter qu’elles soient totalement erratiques)
Ajouter une contrainte sur les coefficients lors de la modélisation pour maitriser l’amplitude de leurs valeurs
(pour éviter qu’elles partent dans tous les sens)
𝑛
𝐽 𝜃 = 𝑀𝑆𝐸 𝜃 + 𝛼 𝜃𝑖2
𝑖=1
Le terme de régularisation force l’algorithme d’apprentissage à ajuster les données, et à maintenir les
coefficients de pondération du modèle aussi petits que possible.
L’hyperparamètre 𝛼 contrôle la quantité de régularisation qu’on veut imposer au modèle.
𝐽 𝜃 = 𝑀𝑆𝐸 𝜃 + 𝛼 𝜃𝑖
𝑖=1
Terme de régularisation ou
Fonction de pénalité
La régression Lasso tend à éliminer complètement les poids des variables les moins importantes (elle leur
donne la valeur zéro) ➔ elle effectue automatiquement une sélection des variables et produit un modèle
creux avec seulement quelques coefficients de pondération non nuls.
𝑛 𝑛
𝐽 𝜃 = 𝑀𝑆𝐸 𝜃 + 𝛼 1 − 𝑟 𝜃𝑖2 + 𝑟𝛼 𝜃𝑖
𝑖=1 𝑖=1
• Un modèle avec un peu de régularisation donne en général de meilleurs résultats qu’un modèle sans
aucune régularisation, c’est pourquoi on préfère en général la régression ridge à la régression linéaire
ordinaire.
• La régression Lasso utilise une pénalité 𝓁1 qui tend à ramener les coefficients de pondération à zéro
exactement. Ceci conduit à des modèles creux, où tous les poids sont nuls sauf les plus importants. C’est
une façon de sélectionner automatiquement des variables, ce qui est judicieux si on soupçonne que
seules certaines d’entre elles ont de l’importance. Si on n’est pas sûr, on préfère alors la régression ridge.
• Elastic net est préférée en général à lasso, car cette dernière méthode peut se comporter de manière
désordonnée dans certains cas (lorsque plusieurs variables sont fortement corrélées ou lorsqu’il y a plus
de variables que d’observations d’entrainement). Cependant, cela fait un hyperparamètre
supplémentaire à ajuster.
La régression logistique est utilisée pour estimer la probabilité qu’une observation appartienne à une classe
particulière ➔ Classification.
Si la probabilité estimée est supérieure à 0,5 alors le modèle prédit que l’observation appartient à cette classe
(classe positive, étiquette « 1 »), sinon il prédit qu’elle appartient à l’autre classe (classe négative, étiquette
«0»
un classificateur binaire
Un modèle de régression logistique calcule une somme pondérée des caractéristiques d’entrée (+ bias), mais
au lieu de fournir le résultat directement comme le fait le modèle de régression linéaire, il fournit la logistique
du résultat.
𝑝Ƹ = ℎ𝜃 𝑥 = 𝜎 𝜃 𝑇 , 𝑥
Probabilité estimée par le modèle de régression logistique
Rym Besrour 155
8. Régression logistique
𝟎, ෝ < 𝟎, 𝟓
𝒔𝒊 𝒑
Prédiction du modèle ෝ=ቊ
𝒚
𝟏, ෝ ≥ 𝟎, 𝟓
𝒔𝒊 𝒑
• L’objectif de l’entrainement consiste à définir le vecteur des paramètres 𝜃 afin que le modèle estime des
probabilités élevées pour les observations positives 𝑦 = 1 et des probabilités basses pour les
observations négatives 𝑦 = 0 .
• La fonction de coût suivante traduit cette idée dans le cas d’une unique observation d’entrainement 𝑥 :
−𝑙𝑜𝑔 𝑝Ƹ , 𝑠𝑖 𝑦 = 1
𝑐 𝜃 =ቊ
−𝑙𝑜𝑔 1 − 𝑝Ƹ , 𝑠𝑖 𝑦 = 0
Rym Besrour 156
Fonction de coût pour une seule observation d’entraînement
La fonction de coût sur l’ensemble du jeu d’entrainement est déterminée par le coût moyen sur l’ensemble
de ses observations.
𝑚
1
𝐽 𝜃 = − 𝑦 (𝑖) 𝑙𝑜𝑔 𝑝Ƹ (𝑖) + 1 − 𝑦 (𝑖) 𝑙𝑜𝑔 1 − 𝑝Ƹ (𝑖)
𝑚
𝑖=1
La dérivée partielle de la fonction de coût par rapport au jième paramètre du modèle 𝜃𝑗 se calcule comme
suit :
𝑚
𝜕𝐽 𝜃 1 (𝑖)
= 𝜎 𝜃 𝑇 . 𝑥 (𝑖) − 𝑦 (𝑖) . 𝑥𝑗
𝜕𝜃𝑗 𝑚
𝑖=1
Dérivée partielle de la fonction de coût logistique
Le modèle de régression logistique peut être généralisé de manière à prendre en compte plusieurs classes
directement, sans avoir à entrainer plusieurs classificateurs binaires puis à les combiner ➔ régression
softmax.
Principe : étant donné une observation 𝑥, le modèle de régression Softmax calcule un score 𝑠𝑘 (𝑥) pour
chaque classe 𝑘 selon la formule suivante :
𝑘 𝑇
𝑠𝑘 𝑥 = 𝜃 .𝑥
Puis estime la probabilité 𝑝Ƹ 𝑘 que cette observation appartienne à la classe 𝑘 en transformant ces scores par
la fonction Softmax
𝑒𝑥𝑝 𝑠𝑘 𝑥
𝑝Ƹ 𝑘 = 𝜎 𝑠 𝑥 𝑘
=
σ𝐾
𝑗=1 𝑒𝑥𝑝 𝑠𝑗 𝑥
Le classificateur de régression Softmax prédit la classe ayant la plus forte probabilité estimée
T
yො = argmaxk σ s x k
= argmaxk sk x = argmaxk θ(k) .x
Rym Besrour 159
9. Régression Softmax
L’objectif est d’avoir un modèle qui estime une forte probabilité pour la classe ciblée
➔ minimiser la fonction de coût appelée entropie croisée (cross entropy).
𝑚 𝐾
1 (𝑖) (𝑖)
𝐽 𝜃 =− 𝑦𝑘 𝑙𝑜𝑔 𝑝Ƹ𝑘
𝑚
𝑖=1 𝑘=1
(i)
yk est égal à 1 si la classe cible pour la ième observation est k, et 0 sinon
Le vecteur gradient par rapport à 𝜃 (𝑘) de cette fonction de coût se définit comme suit :
𝑚
1 (𝑖) (𝑖)
𝛻𝜃(𝑘) 𝐽 𝜃 = 𝑝Ƹ𝑘 − 𝑦𝑘 𝑥 (𝑖)
𝑚
𝑖=1
➔ Calculer le vecteur gradient de chaque classe, puis utiliser une descente de gradient pour trouver la
matrice des paramètres 𝜃 qui minimise la fonction de coût.
1. Objectifs
2. Introduction
3. Méthode du plus proche voisin
4. Méthode des plus proches voisins
5. Notion de distance
6. Distance et similarité
1. Objectifs
• kNN est un algorithme de prédiction non paramétrique conceptuellement très simple, puisqu'aucune
estimation de paramètres n'est nécessaire comme pour la régression linéaire.
• Cet algorithme, dit des plus proches voisins, se base sur le principe de « qui se ressemble s’assemble », et
utilise les étiquettes des exemples les plus proches pour prendre une décision.
• On dispose de données d'apprentissage (training data) pour lesquelles chaque observation dispose d'une
classe y.
• L'idée de l'algorithme des kNN est pour une nouvelle observation de prédire les k observations lui étant les
plus similaires dans les données d'apprentissage.
• ...et utiliser ces observations pour classer l'observation dans une classe
Etant donné un jeu 𝒟 = 𝑥𝑖 , 𝑦𝑖 𝑖=1,…,𝑛 de 𝑛 observations étiquetées, et une distance 𝑑 sur 𝒳, on appelle
algorithme du plus proche voisin l’algorithme consistant à étiqueter une nouvelle observation 𝑥 par
l’étiquette du point du jeu d’entrainement qui en est la plus proche.
Cet algorithme s’applique aussi bien à un problème de classification qu’à un problème de régression.
• Pour un problème de régression, 𝑥 prend comme étiquette la moyenne des étiquettes de ses 𝑘 plus
proches voisins :
𝟏
𝒇 𝒙 = 𝒌 σ𝒊:𝒙𝒊 ∈𝓝𝒌(𝒙) 𝒚𝒊
Début Algorithme
Données en entrée :
• Un ensemble de données 𝐷
• Une fonction de définition distance 𝑑
• Un nombre entier 𝐾
Pour une nouvelle observation 𝑋 dont on veut prédire sa variable de sortie 𝑦 Faire :
1. Calculer toutes les distances de cette observation 𝑋 avec les autres observations du
jeu de données 𝐷
4. Retourner la valeur calculée dans l’étape 3 comme étant la valeur qui a été prédite
par K-NN pour l’observation 𝑋.
Fin Algorithme
167
4. Méthode des plus proches voisins
Pour sélectionner la valeur de k, nous exécutons plusieurs fois l’algorithme KNN avec différentes valeurs de k.
Puis nous choisissons le k qui réduit le nombre d’erreurs rencontrées tout en maintenant la capacité de
l’algorithme à effectuer des prédictions avec précision lorsqu’il reçoit des données nouvelles (non vues
auparavant).
168
4. Méthode des plus proches voisins
Avantages :
Inconvénients :
169
5. Distances et similarités
Distance
Définition d’une distance : Etant donné un ensemble 𝜒, on appelle distance sur 𝜒 toute fonction 𝑑 :
𝜒 × 𝜒 ⟶ ℝ vérifiant les trois propriétés suivantes :
1. Séparation : ∀ 𝑢, 𝑣Ԧ ∈ 𝜒 × 𝜒, 𝑑 𝑢, 𝑣Ԧ = 0 ⇔ 𝑢 = 𝑣Ԧ
2. Symétrie : ∀ 𝑢, 𝑣Ԧ ∈ 𝜒 × 𝜒, 𝑑 𝑢, 𝑣Ԧ = 𝑑 𝑣,
Ԧ 𝑢
Ԧ 𝑡Ԧ ∈ 𝜒 3 , 𝑑 𝑢, 𝑣Ԧ ≤ 𝑑 𝑢, 𝑡Ԧ + 𝑑 𝑡Ԧ, 𝑣Ԧ
3. Inégalité triangulaire : ∀ 𝑢, 𝑣,
170
5. Distances et similarités
𝑑 𝑋6 , 𝑋2 = 11.18 𝑑 𝑋6 , 𝑋4 = 11.91
𝑑 𝑋6 , 𝑋5 = 8.25
1. Introduction
4. Régression SVM
1. Introduction
Les Support Vector Machines, Séparateur à Vaste Marge (SVM), sont une classe d’algorithmes d’apprentissage
initialement définis pour la discrimination c’est-à-dire la prévision d’une variable qualitative binaire. Ils ont été
ensuite généralisés à la prévision d’une variable quantitative.
Dans le cas de la discrimination d’une variable dichotomique, ils sont basés sur la recherche de l’hyperplan de
marge optimale qui, lorsque c’est possible, classe ou sépare correctement les données tout en étant le plus
éloigné possible de toutes les observations.
Le principe est donc de trouver un classifieur, ou une fonction de discrimination, dont la capacité de
généralisation (qualité de prévision) est la plus grande possible. Cette approche découle directement des
travaux de Vapnik en théorie de l’apprentissage à partir de 1995. Elle s’est focalisée sur les propriétés de
généralisation (ou prévision) d’un modèle en contrôlant sa complexité.
Cet outil devient largement utilisé dans de nombreux types d’applications et s’avère un concurrent sérieux des
algorithmes les plus performants (agrégation de modèles). L’introduction de noyaux, spécifiquement adaptés
à une problématique donnée, lui confère une grande flexibilité pour s’adapter à des situations très diverses
(reconnaissance de formes, de séquences génomiques, de caractères, détection de spams, diagnostics...).
Pour un problème de classification linéaire, on suppose que les deux classes −1 𝑒𝑡 + 1 sont séparables par un
hyperplan, la fonction 𝑓 a donc la forme :
𝑓 𝑥 = σ𝑛𝑖=1 𝜔𝑖 𝑥𝑖 + 𝑏 = 𝜔, 𝑥 + 𝑏
Pour juger la qualité d’un hyperplan en tant que séparateur on utilise la distance entre les exemples
d’apprentissage et ce séparateur. Plus précisément, la « marge » d’un problème d’apprentissage est définie
comme la distance entre le plus proche exemple d’apprentissage et l’hyperplan de séparation.
Pour un hyperplan 𝐻 on a :
𝑀𝑎𝑟𝑔𝑒 𝐻 = min 𝑑 𝑥𝑖 , 𝐻
𝑥𝑖
Les éléments de la classe 1 les plus proches de ce séparateur se trouvent à la même distance du séparateur
que les éléments les plus proches de la classe 2 (cette distance est égale à la marge). Ces éléments, soit d’une
classe soit de l’autre, s’appellent « vecteurs de support ».
On suppose d’abord que les données d’apprentissage sont linéairement séparables, c’est à dire qu’il existe un
hyperplan qui sépare les données sans erreur. Dans ce cas, on cherche l’hyperplan de marge maximale :
𝑓 𝑥 = 𝑤, 𝑥 + 𝑏 = 𝑤 𝑇 𝑥 + 𝑏
𝑤 𝑇 𝑥𝑠 + 𝑏
𝑀𝑎𝑟𝑔𝑒 = 2𝑑 𝑥, 𝐻 = 2
𝑤
𝑘𝑤 𝑇 𝑥 + 𝑘𝑏 = 0
Rym Besrour 180
3. SVM linéaire
On impose alors la condition de normalisation 𝑤 𝑇 𝑥 + 𝑏 = 1 pour les vecteurs de support 𝑥𝑠 , ce qui conduit à :
2
𝑀𝑎𝑟𝑔𝑒 = .
𝑤
La résolution de ce problème peut se faire directement par des méthodes stochastique de type Gauss-Seidel,
algorithmes de point intérieur, de type Newton ou de type gradient conjugué.
Il est toutefois mieux de passer à la formulation duale de ce problème :
• Le dual est un problème quadratique de taille 𝑛 (égal au nombre d’observations)
• Pour ce type de problème (optimisation quadratique) il existe des algorithmes bien étudiés et très
performants.
• La formulation duale fait apparaitre la matrice de Gram 𝑋𝑋 𝑇 , ce qui permet de gérer le cas non linéaire à
travers des algorithmes à noyaux.
Pour obtenir la formulation duale, on introduit les multiplicateurs 𝛼𝑖 de Lagrange. Le lagrangien est donné par :
𝑛
𝜕𝐿
𝐿 𝑤, 𝑏, 𝛼 = 0 ⟹ 𝛼𝑖 𝑦𝑖 = 0
𝜕𝑏
𝑖=1
𝑛
𝜕𝐿
𝐿 𝑤, 𝑏, 𝛼 = 0 ⟹ 𝑤 = 𝛼𝑖 𝑦𝑖 𝑥𝑖
𝜕𝑤
Rym Besrour 𝑖=1 182
3. SVM linéaire
Par substitution dans l’équation du lagrangien, on obtient le problème dual :
𝑛 𝑛
1
max 𝛼𝑖 − 𝛼𝑖 𝛼𝑗 𝑦𝑖 𝑦𝑗 𝑥𝑖𝑇 𝑥𝑗
𝛼 2
𝑖=1 𝑖,𝑗=1
𝑡𝑒𝑙 𝑞𝑢𝑒 𝛼𝑖 ≥ 0, 𝑖 = 1, … , 𝑛 (𝑎𝑑𝑚𝑖𝑠𝑠𝑖𝑏𝑖𝑙𝑖𝑡é 𝑑𝑢𝑎𝑙𝑒)
𝑛
𝛼𝑖 𝑦𝑖 = 0 (𝑠𝑡𝑎𝑡𝑖𝑜𝑛𝑛𝑎𝑟𝑖𝑡é)
𝑖=1
La solution du problème dual donne les multiplicateurs de Lagrange optimaux 𝛼𝑖 . A partir de 𝛼𝑖 on obtient 𝑤.
Le paramètre 𝑏 est obtenu à partir de la relation 𝑥𝑠𝑇 𝑤 + 𝑏 = 1 valable pour tous les vecteurs de support 𝑥𝑠 .
Les vecteurs de support sont ceux pour lesquels 𝛼𝑖 > 0.
En général leur nombre est beaucoup plus petit que le nombre total d’éléments dans la base d’apprentissage.
Ajouter des échantillons qui ne sont pas des vecteurs supports à l’ensemble d’apprentissage n’a aucune
influence sur la solution finale, c’est à dire seulement les vecteurs de support interviennent dans la fonction de
décision (l’expression de la surface séparatrice entre les deux classes). Cette fonction de décision permettant
de classer une nouvelle observation 𝑥 est donnée par :
𝑛
Rym Besrour
𝑓 𝑥 = 𝛼𝑖 𝑦𝑖 𝑥𝑖𝑇 𝑥 + 𝑏 183
𝑖=1
3. SVM linéaire
Le modèle de classificateur SVM linéaire prédit la classe d’une nouvelle instance 𝒙 en calculant
simplement la fonction de décision 𝒘𝑻 . 𝒙 + 𝒃 = 𝒘𝟏 𝒙𝟏 + ⋯ + 𝒘𝒏 𝒙𝒏 + 𝒃
0, 𝑠𝑖 𝒘𝑻 . 𝒙 + 𝒃 < 0
𝑦ො = ቊ
1, 𝑠𝑖 𝒘𝑻 . 𝒙 + 𝒃 ≥ 0
Prédiction de classificateur SVM linéaire
Objectif 2 : éviter tout empiètement de marge (marge rigide) ➔ avoir une fonction de décision qui
soit supérieure à 1 pour toutes les observations d’entrainement positives, et inférieure à -1 pour toutes les
observations d’entrainement négatives.
Deux objectifs contradictoires : diminuer autant que possible les variables ressort pour réduire
les empiètements de marge, et minimiser 1Τ2 𝑤 𝑇 . 𝑤 pour accroitre la marge
• Pour surmonter les inconvénients des cas non linéairement séparable, l’idée des SVM est de changer
l’espace des données.
• La transformation non linéaire des données peut permettre une séparation linéaire des exemples dans un
nouvel espace ➔ un changement de dimension.
Cette nouvelle dimension est appelé « espace de re-description »
• Plus la dimension de l’espace de re-description est grande, plus la probabilité de pouvoir trouver un
hyperplan séparateur entre les exemples est élevée.
Définition : une fonction 𝑠: 𝒳 × 𝒳 → ℝ est une mesure de similarité si les conditions suivantes sont satisfaites :
• 𝑥, 𝑦 ∈ 𝒳 𝑠 𝑥, 𝑦 ≥ 0 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑖𝑡é ,
• 𝑥, 𝑦 ∈ 𝒳 𝑠 𝑥, 𝑦 = 𝑠(𝑦, 𝑥) 𝑠𝑦𝑚é𝑡𝑟𝑖𝑒 ,
• ∀ 𝑦 ∈ 𝒳, 𝑦 ≠ 𝑥 𝑠 𝑥, 𝑦 > 𝑠 𝑥, 𝑥 𝑢𝑛𝑖𝑓𝑜𝑟𝑚𝑖𝑡é ,
• 𝑠 𝑥, 𝑦 = 𝑠 𝑥, 𝑥 ⇔ 𝑥 = 𝑦 𝑖𝑑𝑒𝑛𝑡𝑖𝑡é .
A comparer avec la distance 𝑑(𝑥, 𝑦) qui a des valeurs élevées si 𝑥 𝑒𝑡 𝑦 sont très différents et des valeurs faibles si
𝑥 𝑒𝑡 𝑦 sont proches. Cette intuition concernant la notion de similarité correspond à ce qu’on connaît du produit
scalaire : deux vecteurs proches (directions presque parallèles) ont une valeur élevée pour le produit scalaire.
Par contre, pour deux vecteurs très différents (orthogonaux) le produit scalaire est proche de zéro.
Rym Besrour 189
4. SVM non linéaire
L’astuce à noyau
Principe : transposer les données dans un autre espace (en général de plus grande dimension) dans lequel elles
sont linéairement séparables (ou presque) et ensuite appliquer l’algorithme SVM sur les données transposées.
Exemple de noyaux
L’ajout des variables polynomiales est simple à réaliser et peut donner de bons résultats avec toutes sortes
d’algorithmes d’apprentissage automatique
• Avec un degré polynomial faible, on ne peut pas tirer parti de jeux de données très complexes
• Avec un degré polynomial élevé, on obtient un très grand nombre de variables ➔ traitement trop
lent.
Noyau (Kernel)
obtenir le même résultat que si on avait de nombreuses
variables polynomiales, même de degré élevé, sans avoir à les
ajouter effectivement.
𝛾 : hyperparamètre de régularisation
Sur-ajustement ➔ réduire 𝛾
Sous-ajustement ➔ augmenter 𝛾
➢ Si le jeu d’entrainement n’est pas trop grand, on peut aussi tester le noyau Radial gaussien
(RBF) (il donne généralement de bons résultats)
➢ On peut aussi tester d’autres noyaux en effectuant une validation croisée et une recherche par
quadrillage.
Il permet non seulement la classification linéaire et non linéaire, mais aussi la régression linéaire et
Objectif : au lieu d’essayer d’ajuster le chemin le plus large possible entre deux classes en
limitant les empiètements de marge, la régression SVM s’efforce d’ajuster autant
d’observations que possible sur le chemin tout en limitant les empiètements de marge.
1. Définitions
2. Apprentissage avec les arbres de décision
3. Algorithme : ID3 (Iterative Dichotomiser 3)
4. CART : Arbres de classification et régression
5. Exemple d’application
6. Extensions
1. Définitions
En théorie des graphes, un arbre est un graphe non orienté, acyclique et connexe. L’ensemble des nœuds se
divise en trois catégories :
• Nœud racine (l’accès à l’arbre se fait par ce nœud),
• Nœuds internes : les nœuds qui ont des descendants (ou enfants), qui sont à leur tour des nœuds,
• Nœuds terminaux (ou feuilles) : nœuds qui n’ont pas de descendant.
Les arbres de décision (AD) sont une catégorie d’arbres utilisée dans l’exploration de données et en
informatique décisionnelle. Ils emploient une représentation hiérarchique de la structure des données sous
forme des séquences de décisions (tests) en vue de la prédiction d’un résultat ou d’une classe.
Chaque observation, qui doit être attribuée à une classe, est décrite par un ensemble de variables qui sont
testées dans les nœuds de l’arbre.
Les tests s’effectuent dans les nœuds internes et les décisions sont prise dans les nœuds feuille.
Exemples
On considère d’abord le problème de classification. Chaque élément 𝑥 de la base de données est représenté
par un vecteur multidimensionnel 𝑥1 , 𝑥2 , … , 𝑥𝑛 correspondant à l’ensemble de variables descriptives du
point. Chaque nœud interne de l’arbre correspond à un test sur une des variables 𝑥𝑖 ∶
• Variable catégorielle : génère une branche (un descendant) par valeur de l’attribut,
• Variable numérique : test par intervalles (tranches) de valeurs.
Une fois l’arbre construit, classer un nouvel candidat se fait par une descente dans l’arbre, de la racine vers
une des feuilles (qui encode la décision ou la classe). A chaque niveau de la descente on passe un nœud
intermédiaire où une variable 𝑥𝑖 est testée pour décider du chemin (ou sous-arbre) à choisir pour continuer la
descente.
Principe de la construction
• Au départ, les points de la base d’apprentissage sont tous placés dans le nœud racine. Une des variables de
description des points est la classe du point (la « vérité terrain ») ; cette variable est dite « variable cible ».
• La variable cible peut être catégorielle (problème de classement) ou valeur réelle (problème de régression).
• Chaque nœud est coupé (opération split) donnant naissance à plusieurs nœuds descendants. Un élément
de la base d’apprentissage situé dans un nœud se retrouvera dans un seul de ses descendants.
• L’arbre est construit par partition récursive de chaque nœud en fonction de la valeur de l’attribut testé à
chaque itération (top-down induction). Le critère optimisé est la homogénéité des descendants par rapport
à la variable cible. La variable qui est testée dans un nœud sera celle qui maximise cette homogénéité.
• Le processus s’arrête quand les éléments d’un nœud ont la même valeur pour la variable cible
(homogénéité).
Rym Besrour 202
3. Algorithme ID3
L’algorithme commence par le placement de tous les exemples d’apprentissage dans le nœud racine. Ensuite,
chaque nœud est coupé sur un des attributs restants (qui n’a pas encore été testé). Le choix de cet attribut se
fait à travers une mesure d’homogénéité par rapport à la variable cible. Cette mesure est le gain
d’information obtenu par le découpage.
On suppose que la variable cible a 𝑚 valeurs distinctes (les étiquettes de classe). Pour un nœud 𝑆 (interne ou
feuille) on calcule son entropie par rapport à la cible comme suit :
▪ Partitionner 𝑆 sur les valeurs de la cible en 𝑚 groupes : 𝐶1 , … , 𝐶𝑚 .
▪ Calculer 𝑝𝑖 , 𝑖 = 1 … 𝑚, la probabilité qu’un élément de 𝑆 se trouve dans 𝐶𝑖 (𝑝𝑖 ≈ 𝐶𝑖 / 𝑆 ou 𝐶𝑖 est la
taille du groupe 𝐶𝑖 ).
▪ 𝐻 𝑆 = − σ𝑚
𝑖=1 𝑝𝑖 log(𝑝𝑖 ) est l’entropie de 𝑆.
Avec ces précisions, l’algorithme ID3 commence par la racine. Ensuite pour le nœud 𝑆 en train d’être testé :
▪ Calculer le gain d’information pour chaque attribut par encore utilisé,
▪ Choisir l’attribut 𝑎 de gain d’information maximal,
▪ Créer un test (décision) sur cet attribut dans le nœud 𝑆 et générer les sous-nœuds 𝑆1 , … , 𝑆𝑘
correspondant à la partition sur l’attribut choisi 𝑎,
▪ Récurrence sur les nœuds qui viennent d’être crées.
Sortie de la récursivité
• Tous les éléments de 𝑆 sont dans la meme classe (𝐻 𝑆 = 0) ∶ 𝑆 devient nœud feuille,
• Pas d’attributs non utilisés : nœud feuille sur la classe majoritaire,
• 𝑆 = ∅ : nœud feuille sur la classe majoritaire du parent (ce cas est nécessaire pour le classement de
nouveaux échantillons)
Rym Besrour 205
3. Algorithme ID3
• L’acronyme CART correspond à deux situations bien distinctes selon que la variable à expliquer, modéliser
ou prévoir est qualitative (classification) ou quantitative (régression).
• Très complémentaires des méthodes statistiques plus classiques : analyse discriminante, régression
linéaire, les solutions obtenues sont présentées sous une forme graphique simple à interpréter, même
pour des néophytes, et constituent une aide efficace pour l’aide à la décision. Elles sont basées sur une
séquence récursive de règles de division, coupes ou splits.
▪ Sous-nœud gauche 𝑆𝑔 (𝑝𝑔 ≈ 𝑆𝑔 / 𝑆 ) qui contient tous les éléments qui ont les valeurs de l’attribut
𝑣𝑗 ≤ 𝑎𝑗 ,
▪ Sous-nœud droit 𝑆𝑑 (𝑝𝑑 ≈ 𝑆𝑑 / 𝑆 ) qui contient tous les éléments qui ont les valeurs de l’attribut
𝑣𝑗 ≥ 𝑎𝑗 .
Fonction de gain
𝑛
𝐺𝑎𝑖𝑛 𝑝, 𝑡 = 𝑖 𝑝 − 𝑃𝑗 𝑖(𝑝𝑗 )
𝑗=1
Avantages CART :
▪ Forme non paramétrique.
▪ Pas de sélection de variables nécessaire.
▪ Invariable aux transformations monotones des attributs.
▪ Bonne gestion des ouliers.
En l’absence de contraintes, la structure de l’arbre s’adaptera aux données d’entrainement en les ajustant
le mieux possible, voire en les sur-ajustant.
▪ Pour éviter de sur-ajuster les données d’entrainement, on doit restreindre la liberté de l’arbre de
décision durant l’entrainement.
▪ Dans Scikit-Learn, c’est l’hyperparamètre max_depth qui permet de contrôler cette profondeur. La
valeur par défaut est None, qui signifie qu’il n’y a pas de limite.
La classe DecisionTreeClassifier possède quelques autres paramètres qui restreignent de manière similaire la
forme de l’arbre de décision :
• Min_samples_split : nombre minimum d’observations que doit comporter un nœud avant qu’il puisse
être divisé.
On constate que le plus grand gain est obtenu sur l'attribut "Age". C'est donc cet attribut qui est choisi
comme test à la racine de l'arbre. Nous obtenons l'arbre partiel suivant :
• Bagging decision trees : construction de plusieurs arbres par re-échantillonnage avec remise ;
prise de décision par vote consensuel.
• Forêts d’arbres décisionnels (ou forêts aléatoires) : apprentissage sur de multiples arbres de
décision entraînés sur des sous-ensembles de données légèrement différents.
1. Objectifs
2. Estimateurs de variance élevée
3. Classificateur par vote
4. Bagging
5. Forêts aléatoires
6. Boosting
1. Objectifs
Méthodes d’agrégations :
1. Bagging
2. Forets Aléatoires
3. Boosting
Les arbres de décision ont un nombre de propriétés qui font d’eux un outil précieux, surtout quand il s’agit
de faire l’analyse rapide d’un jeu de données ou d’élaborer un prototype de classifieur :
• Modèle white box : le résultat est facile à conceptualiser, à visualiser et à interpréter.
• Ils nécessitent peu de préparation de données (e.g. normalisation, etc.).
• Le coût d’utilisation des arbres est logarithmique (classification d’une nouvelle donnée très rapide).
• Ils sont capables d’utiliser des données catégorielles et continues.
• Ils sont capables de gérer des problèmes multi-classes.
• Ils ont un bon comportement par rapport aux valeurs extrêmes (outliers).
• Ils gèrent bien les données manquantes.
• Des arbres générés non équilibrés ➔ Il est donc recommandé d’équilibrer la base de données avant la
construction, pour éviter qu’une classe domine (en termes de nombre d’exemples d’apprentissage).
• Sur-apprentissage : parfois les arbres générés sont trop complexes et généralisent mal (solution : élagage,
le contrôle de la profondeur de l’arbre et de la taille des feuilles).
• Ils sont instables : des changements légers dans les données produisent des arbres très différents. Les
changements des nœuds proches de la racine affectent beaucoup l’arbre résultant. On dit que les arbres
produisent des estimateurs de variance élevée.
Imaginons que vous posiez une question complexe à des milliers de personnes choisies au hasard, et que vous
combiniez leurs réponses
➔ souvent la synthèse de ces réponses est meilleurs !!!
Supposons qu’on a entrainé quelques classificateurs, chacun d’entre eux atteignant une exactitude de 80%
environ : il peut s’agir de classificateurs de type régression logistique, SVM, foret aléatoire, k plus proches
voisins et …
Un moyen très simple de créer un classificateur encore meilleur consiste à agréger les prédictions de chacun
des classificateurs et de prédire la classe qui obtient le plus grand nombre de votes : classificateur à vote
majoritaire.
Même si chaque classificateur est un mauvais élève « weak learner », càd qu’il fait à peine mieux que de
répondre au hasard, l’ensemble peut néanmoins être un bon élève « strong learner » et obtenir une exactitude
élevée, à condition qu’il y ait un nombre suffisant de mauvais élèves et qu’ils soient suffisamment différents.
Supposons qu’on a un ensemble de 1000 classificateurs dont chacun n’est correct qu’environ 51% du temps.
Si on prédit la classe ayant obtenu la majorité des votes, on peut espérer une exactitude allant jusqu’à 75% !!
À condition que :
• les classificateurs sont parfaitement indépendants
• leurs erreurs ne sont pas corrélés ➔ c’est pas le cas puisqu’ils sont entrainés sur les mêmes données
Si tous les classificateurs sont capables d’estimer les probabilités des classes, alors on peut prédire la classe
ayant la plus grande moyenne des probabilités sur l’ensembles des classificateurs : Soft Voting ➔ on obtient
souvent de meilleurs résultats que le vote rigide.
Une autre solution pour obtenir un ensemble de classificateurs diversifiés, consiste à utiliser le même
algorithme d’entrainement pour chaque prédicteur, mais à l’entrainer sur des sous-ensembles différents
extraits aléatoirement du jeu d’entrainement.
• Tirage avec remise : Bagging (Bootstrapping)
• Tirage sans remise : Pasting
Une fois que tous les prédicteurs ont été entrainés, l’ensemble peut effectuer une prédiction pour une
nouvelle observation en agrégeant simplement les prédictions de tous les prédicteurs.
En général, l’ensemble a un biais similaire mais une variance inférieure à celle d’un unique prédicteur entrainé
sur le jeu d’entrainement d’origine.
Bootstrap Agregating
Soit la base d’apprentissage décrite comme suit :
• Les données sont décrites par les attributs : 𝐴1 , … , 𝐴𝑝 , classe : 𝐶
• Données d’apprentissage : 𝑥𝑖 , 𝑦𝑖 , 𝑥𝑖 ∈ ℝ𝑝 , 𝑦𝑖 ∈ ℝ, 𝑖 = 1, … , 𝑁
• 𝑦𝑖 peuvent être des valeurs continues ou discrètes (étiquettes des classes)
(𝑖) (𝑖)
• 𝑥𝑖 = 𝑎1 , … , 𝑎𝑝
𝑛
On considère 𝐺(𝑥) un modèle de prédiction appris sur un échantillon de données 𝑧 = 𝑥𝑖 , 𝑦𝑖 𝑖=1
Algorithme Bagging
• On tire au hasard dans la base d’apprentissage, 𝐵 échantillons avec remise 𝑧𝑖 , 𝑖 = 1, … , 𝐵 (chaque
échantillon ayant 𝑛 points) : appelé échantillons bootstrap
• Pour chaque échantillon 𝑖 on calcule le modèle 𝐺𝑖 (𝑥) ;
1
▪ Régression : agrégation par la moyenne 𝐺 𝑥 = 𝐵 σ𝐵𝑖=1 𝐺𝑖 (𝑥) ;
▪ Classement : agrégation par vote 𝐺 𝑥 = 𝑉𝑜𝑡𝑒𝑚𝑎𝑗𝑜𝑟𝑖𝑡𝑎𝑖𝑟𝑒 𝐺1 𝑥 , … , 𝐺𝐵 (𝑥)
Rym Besrour 237
4. Bagging
• Étant donné qu’un prédicteur ne voit jamais ces observations oob durant l’entrainement, il peut être évaluer
sur celles-ci sans qu’il soit besoin d’un jeu de validation séparé ou d’une validation croisée.
• Dans Scikit-Learn, on peut spécifier oob_score=True lors de la création d’un BaggingClassifier pour avoir une
évaluation oob automatiquement après l’entrainement.
Si X1 , … , XB sont issus de variables aléatoires identiquement distribués (mais pas indépendantes) de moyenne
𝜇, variance 𝜎 2 et corrélation 𝜌 = 𝐶𝑜𝑟𝑟 𝑋𝑖, 𝑋𝑗 , ∀𝑖 ≠ 𝑗 ,
1 1−𝜌 2
alors 𝑌 = 𝐵 𝑋1 + ⋯ + 𝑋𝐵 est de variance 𝑉𝑎𝑟 𝑌 = 𝜌𝜎 2 + 𝜎
𝐵
Quand 𝐵 est grand, le 2ème terme est négligeable mais le 1er non.
Les forêts aléatoires (Random Forests » sont une amélioration du bagging pour les arbres de décision CART dans
le but de rendre les arbres utilisés plus indépendants (moins corrélés).
Caractéristiques :
• Elles donnent de bons résultats surtout en
grande dimension.
• Elles sont très simples à mettre en œuvre.
• Elles ont peu de paramètres.
• Au lieu de rechercher la meilleure variable pour partager un nœud, l’algorithme de forêt aléatoire recherche
la meilleure variable au sein d’un sous-ensemble de variables choisies au hasard.
Il en résulte une plus grande diversité des arbres, avec le compromis d’un biais plus élevé en échange d’une
variance plus faible, ce qui aboutit en général à un meilleur modèle global.
Algorithme
• On tire au hasard dans la base d’apprentissage 𝐵 échantillons avec remise 𝑧𝑖 = 1, … , 𝐵 (chaque
échantillon ayant 𝑛 points)
• Pour chaque échantillon 𝑖 on construit un arbre CART 𝐺𝑖 (𝑥) selon un algorithme légèrement modifié : à
chaque fois qu’un nœud doit être coupé, on tire au hasard une partie des attributs (𝑞 parmi les 𝑝
attributs) et on choisit le meilleur découpage dans ce sous-ensemble.
1
Régression : agrégation par la moyenne 𝐺 𝑥 = 𝐵 σ𝐵𝑖=1 𝐺𝑖 (𝑥)
Classification : agrégation par vote 𝐺 𝑥 = 𝑉𝑜𝑡𝑒𝑚𝑎𝑗𝑜𝑟𝑖𝑡𝑎𝑖𝑟𝑒 𝐺1 𝑥 , … , 𝐺𝐵 (𝑥)
Les arbres sont moins corrélés car :
▪ Ils ont appris sur un ensemble différent d’attributs.
▪ Ils sont construits sur des échantillons différents.
Rym Besrour 242
5. Forêts aléatoires
En pratique, les valeurs « idéales » dépendent beaucoup de la base, il faut les trouver par validation croisée.
Lors de la construction d’un arbre dans une foret aléatoire, le partage de chacun des nœuds ne s’effectue que
sur un sous-ensemble aléatoire des variables.
Il est possible de rendre les arbres plus aléatoires en utilisant également un seuil aléatoire pour chaque
variable plutôt que de rechercher les meilleurs seuils possibles
Arbres extrêmement randomisés
(Extremely Randomized Trees)
Ces extra-trees sont plus rapides à entraîner que les forêts aléatoires ordinaires, car la recherche à chaque
nœud du meilleur seuil possible pour chaque variable est une des tâches les plus chronophages lors de la
construction d’un arbre.
Scikit-Learn
Classe : ExtraTreesClassifier
Son API est identique à celle de la classe RandomForestClassifier
Classe : ExtraTreesRegressor
Son API est identique à celle de la classe RandomForestRegressor
Feature importance
Une autre grande qualité des forets aléatoires est qu’elles permettent de mesurer l’importance relative des
variables. Une variable importante a tendance, en moyenne, à réduire davantage l’impureté Gini qu’une
variable moins importante.
Adaboost
Pour un nouveau prédicteur, l’un des moyens de corriger sont prédécesseur consiste à prêter plus
d’attention aux observations d’entrainement que ce prédécesseur a sous-ajustés. De cette façon, les
nouveaux prédicteurs se concentrent de plus en plus sur les cas difficiles.
Adaboost
• Une fois que tous les prédicteurs entrainés, l’ensemble effectue des prédictions de manière similaire
au bagging ou au pasting, à ceci près que les prédicteurs sont des poids différents compte tenu de
leur exactitude globale sur le jeu d’entrainement pondéré.
• L’inconvénient de cette technique d’apprentissage séquentiel est de ne pas être parallélisable car
chaque prédicteur ne peut être entrainé qu’après que le prédicteur précédent a été entrainé et
évalué. Par conséquent, elle ne s’adapte pas si facilement aux données de grande taille que le bagging
et le pasting.
Adaboost
Scikit-Learn utilise une version multi-classes s’AdaBoost appelée SAMME (Stagewise Additive Modeling
using a Multi-class exponential loss function)
Lorsqu’il n’y a que deux classes, SAMME et AdaBoost sont équivalents.
Si les prédicteurs peuvent estimer les probabilités des classes, Scikit-Learn utilise alors SAMME.R (Réel) qui
s’appuie sur les probabilités des classes plutôt que sur les prédictions et qui donne en général de meilleurs
résultats.
Si Adaboost surajuste le jeu d’entrainement ➔ il faut soit réduire le nombre d’estimateurs soit régler plus
fortement l’estimateur de base.
250
6. Boosting
Gradient Boosting
Le Gradient Boosting travaille par ajout séquentiel de prédicteurs à un ensemble chacun d’eux
corrigeant son prédécesseur.
Au lieu de modifier légèrement les poids des observations à chaque itération comme le fait AdaBoost,
cette méthode tente d’ajuster un nouveau prédicteur aux erreurs résiduelles du prédicteur précédent.
Pour trouver le nombre d’arbres optimal, on peut utiliser un arrêt précoce ➔ la méthode
staged_predict( ) : elle renvoie un itérateur sur les prédictions faites par l’ensemble à chaque étape
d’entraînement (avec un arbre, puis deux, …)