Introduction au machine learning
Par Arouna N’DIA
Avril 2026
Introduction au Machine Learning
Les Types de Machine Learning
Apprentissage supervisé
Apprentissage non supervisé
Mise en Œuvre d'un Modèle de Machine Learning
1. Collecte des données :
o Importance de la qualité et de la quantité des données.
o Méthodes de collecte et de traitement des données.
2. Nettoyage et préparation des données :
o Techniques de nettoyage des données (gestion des valeurs manquantes,
normalisation).
o Séparation des données en ensembles d'entraînement, de validation et de test.
3. Choix du modèle :
o Sélectionner un modèle en fonction du problème (classification, régression, etc.).
o Considérer la complexité du modèle et le risque de surajustement.
4. Entraînement du modèle :
o Processus d'entraînement en utilisant les données d'entraînement.
o Ajustement des hyperparamètres pour améliorer les performances.
5. Évaluation du modèle :
o Utiliser l'ensemble de validation pour tester la performance du modèle.
o Métriques d'évaluation : précision, rappel, AUC-ROC, etc.
6. Déploiement et maintenance :
o Intégrer le modèle dans une application ou un processus.
o Surveiller et mettre à jour le modèle pour maintenir sa performance.
Introduction au Machine Learning
1. Qu'est-ce que le Machine Learning ?
o Définition : Le machine learning (apprentissage automatique) est une branche de
l'intelligence artificielle qui permet aux ordinateurs d'apprendre et d'agir sans être
explicitement programmés pour des tâches spécifiques. Cette capacité
d'apprentissage est basée sur l'analyse, le traitement et l'interprétation de vastes
ensembles de données.
o Fonctionnement : Au cœur du machine learning se trouvent les algorithmes. Ces
algorithmes apprennent des modèles à partir de données, permettant ainsi aux
machines de faire des prédictions ou de prendre des décisions en fonction de
nouvelles données.
o Importance : Le machine learning est crucial car il rend les ordinateurs plus
adaptatifs et intelligents, leur permettant d'effectuer des tâches complexes qui
seraient difficiles ou impossibles à coder manuellement.
2. Historique et Évolution :
o Origines : Les racines du machine learning remontent aux premiers jours de
l'informatique et de l'intelligence artificielle dans les années 1950 et 1960, avec des
figures clés comme Alan Turing et Arthur Samuel.
o Développement : Au fil des décennies, le machine learning a évolué, passant de
simples modèles linéaires à des réseaux de neurones complexes et à l'apprentissage
profond, notamment grâce à l'augmentation de la puissance de calcul et à la
disponibilité de grandes quantités de données (big data).
3. Applications Pratiques :
o Exemples courants :
Reconnaissance d'image et de voix : Utilisé dans les smartphones pour la
reconnaissance faciale et vocale.
Systèmes de recommandation : Comme ceux utilisés par Netflix ou Amazon
pour suggérer des films ou des produits.
Diagnostic médical : Aider les médecins à identifier les maladies à partir
d'images médicales.
Prévision météorologique : Utilisation de données historiques pour prédire
les conditions météorologiques futures.
Voitures autonomes : Utilisation de l'apprentissage automatique pour
permettre aux véhicules de naviguer sans intervention humaine.
4. Importance de la Data Science et de l'Analyse de Données :
o Rôle clé de la data science : Le machine learning s'appuie fortement sur la data
science et l'analyse de données. La qualité et la quantité des données alimentent
l'efficacité des modèles d'apprentissage automatique.
o Traitement des données : Avant qu'un modèle de machine learning puisse être
entraîné, les données doivent être collectées, nettoyées et organisées de manière
appropriée, un processus crucial dans la réussite de tout projet de machine learning.
Machine Learning vs Statistique/Économétrie
Le machine learning et le big data forment la data science qui est une discipline scientifique à cheval
entre les mathématiques, la statistique, l’informatique et l’intelligence artificielle. L’objet de la data
science est d’extraire de l’information à partir de données afin de répondre à des questions ou
résoudre des problèmes. Pour ce faire, il faut découvrir les relations cachées dans les données (pattern
recognition). Le machine learning consiste à construire des modèles à partir d’algorithmes et de
données dits d’apprentissage qui permettront de révéler les relations sous-jacentes qui gouvernent
les données.
Les méthodes de machine learning reposent effectivement sur l’hypothèse forte selon laquelle il existe
un lien dans les données que les algorithmes vont découvrir. On peut aussi dire que les données elles-
mêmes vont révéler les relations qui les décrivent par le biais des algorithmes d’apprentissage. C’est
pourquoi ces méthodes de machine learning sont dites « data driven » comme si la modélisation était
conduite par les données elles-mêmes. Dans cette perspective, il est important de souligner que dans
l’implémentation de ces méthodes la logique de prédiction domine celle d’analyse et d’explication, on
parle de modélisation prédictive. Ainsi certains algorithmes peuvent être qualifiés de boîtes noires
(exemple des réseaux complexes de neurones).
L’approche statistique classique repose plus sur la modélisation des données. La notion de modèle est
centrale. Il s’agit d’élaborer un cadre pour décrire et expliquer la réalité. La validité du modèle se fonde
sur des estimations et des tests eux-mêmes reposant sur des hypothèses probabilistes. Une théorie
asymptotique permet alors de généraliser le modèle, mesurer sa qualité et construire des intervalles
de confiance.
Lorsque le but de la modélisation est essentiellement la prévision, le meilleur modèle n’est pas
forcément celui qui explique au mieux les données. La théorie de l’apprentissage de Vapnik-
Chervonenkis montre que le choix du modèle dans ce cas repose sur les critères de qualité de prévision
(les fameuses métriques). L’objectif étant d’obtenir un modèle parcimonieux c’est-à-dire dénué de
complexité dont l’interprétabilité est reléguée au second plan mais qui permet d’obtenir des
prédictions précises. C’est le côté « boite noire » des méthodes de machine learning qui marchent bien
c’est-à-dire font de bonnes prévisions mais s’expliquent difficilement.
Ressemblances entre Machine Learning et Statistique/Économétrie
1. Fondements Mathématiques et Utilisation de Données :
o Tous deux reposent sur des fondements mathématiques solides et utilisent des
données pour analyser des tendances, faire des prédictions, et tester des hypothèses.
o Ils emploient des techniques comme la régression, la classification, et le clustering.
2. Analyse Prédictive :
o Le machine learning et l'économétrie/statistique sont souvent utilisés pour faire des
prédictions basées sur des données historiques.
o Par exemple, la régression linéaire est une méthode commune dans les deux
domaines.
3. Importance de la Qualité des Données :
o La qualité des données est cruciale dans les deux domaines. Des données mal
nettoyées ou mal collectées peuvent mener à des résultats erronés.
Différences entre Machine Learning et Statistique/Économétrie
1. Objectif et Approche :
o Machine Learning : L'objectif principal est la performance prédictive. Le machine
learning met l'accent sur la capacité d'un modèle à apprendre de grandes quantités de
données et à faire des prédictions précises sur de nouvelles données.
o Statistique/Économétrie : L'accent est mis sur la compréhension des relations entre
variables et sur l'inférence causale. Ces domaines cherchent à expliquer pourquoi
certaines choses se produisent et à tester des hypothèses.
2. Complexité des Modèles :
o Les modèles de machine learning tendent à être plus complexes et moins transparents
(comme les réseaux de neurones profonds), tandis que les modèles
statistiques/économétriques privilégient souvent la simplicité et l'interprétabilité.
3. Gestion de l'Overfitting :
o Le machine learning se concentre beaucoup sur l'évitement de l'overfitting
(surajustement) en raison de la complexité de ses modèles et de la taille des
ensembles de données utilisés.
o En statistique, l'overfitting est également une préoccupation, mais l'approche est
souvent différente, par exemple à travers la sélection de modèles ou l'analyse de la
robustesse.
4. Approches Théoriques vs. Empiriques :
o La statistique et l'économétrie sont fortement ancrées dans la théorie et les principes
mathématiques, tandis que le machine learning est souvent plus empirique, se
concentrant sur ce qui fonctionne bien en pratique, parfois au détriment de la
compréhension théorique.
5. Taille et Nature des Données :
o Le machine learning excelle avec de grandes quantités de données (big data) et est
souvent utilisé dans des contextes où les données sont abondantes.
o La statistique et l'économétrie peuvent être appliquées à des ensembles de données
plus petits et se concentrent sur l'obtention d'informations précises à partir de ces
données.
En résumé, bien que le machine learning et la statistique/économétrie partagent de nombreux outils
et techniques, ils diffèrent dans leurs objectifs, leurs approches, et la manière dont ils traitent les
données et les modèles. Ces différences sont complémentaires, et la compréhension.
Les Types de Machine Learning
Les algorithmes d’apprentissage sont classés selon le mode d’apprentissage. On a l’apprentissage
supervisé, l’apprentissage semi-supervisé et l’apprentissage non supervisé.
L’apprentissage est supervisé lorsque la variable cible ou d’intérêt est observée. On dit que les données
sont étiquetées. On a dans ce cas un ensemble de variables dites prédictives pour lesquelles on connait
les valeurs de la variable d’intérêt. L’objectif dans ce cas est de trouver les relations qui existent entre
les valeurs des variables prédictives (covariables) et celles de la variable cible qui permettront de faire
des prévisions.
En d’autres termes, il s’agira de trouver une fonction qui va généraliser l’association entre les
covariables et la variable d’intérêt. L’apprentissage supervisé est la forme la plus courante en machine
learning.
A l’inverse, l’apprentissage peut être non supervisé, c’est-à-dire la variable d’intérêt peut ne pas être
observé ou tout simplement il n’existe pas de variable cible. L’objectif dans ce cas est que le système
parvienne tout seul et par lui-même à regrouper les données : c’est le clustering.
L’apprentissage semi-supervisé est un cas intermédiaire entre les deux situations précédemment
évoquées : la variable cible est observée pour quelques-unes des observations. La différence entre
algorithmes d’apprentissage supervisé et non supervisé est fondamentale. Les algorithmes
d’apprentissage supervisé se fondent sur des données formatées en couples entrée-sortie. Au niveau
de l’apprentissage non supervisé, il n’y a pas cette notion d’entrée-sortie : toutes les données sont
équivalentes.
Régression ou classification
Les algorithmes de machine learning supervisé sont aussi classés selon le type de problème à traiter.
On distingue les algorithmes de régression de ceux de classification. Un modèle de machine learning
est un modèle de régression si la variable cible est quantitative. Le modèle est de classification si la
variable cible est catégorielle.
Mise en Œuvre d'un Modèle de Machine Learning
1. Collecte des Données
Objectif : Rassembler les données nécessaires à partir de diverses sources.
Importance : Des données de qualité et représentatives sont essentielles pour la
performance du modèle.
2. Nettoyage et Préparation des Données
Nettoyage : Corriger les erreurs, gérer les valeurs manquantes, et supprimer les duplicatas.
Préparation : Traitement des anomalies, standardisation des formats, et fusion des sources
de données si nécessaire.
3. Séparation des Données
Division en Ensembles : Séparer les données en ensembles d'entraînement, de validation, et
de test.
Ratio : Communément, 70% pour l'entraînement, 15% pour la validation, et 15% pour le test,
mais cela peut varier.
4. Transformation des Données
Après Séparation : Appliquer les transformations (normalisation, standardisation, encodage
des variables catégorielles, etc.) sur les ensembles séparés.
Consistance : Utiliser les paramètres dérivés de l'ensemble d'entraînement pour transformer
les ensembles de validation et de test.
5. Choix et Construction du Modèle
Sélection : Choisir un modèle en fonction du problème (classification, régression, clustering,
etc.).
Construction : Construire le modèle avec les bonnes architectures et hyperparamètres.
6. Entraînement du Modèle
Processus : Entraîner le modèle sur l'ensemble d'entraînement.
Ajustement : Ajuster les hyperparamètres pour améliorer les performances, en utilisant
l'ensemble de validation.
7. Évaluation du Modèle
Métriques de Performance : Évaluer le modèle sur l'ensemble de validation et de test avec
des métriques appropriées (précision, rappel, AUC, etc.).
Validation Croisée : Utiliser si nécessaire pour une évaluation robuste.
8. Optimisation et Réglage Fin
Tuning : Ajuster le modèle et les hyperparamètres en fonction des résultats de l'évaluation.
Validation : Valider à nouveau les ajustements pour garantir l'amélioration.
9. Déploiement du Modèle
Intégration : Intégrer le modèle dans un environnement de production.
Monitoring : Surveiller la performance du modèle en temps réel et collecter des feedbacks.
10. Maintenance et Mises à Jour
Réentraînement : Mettre à jour le modèle avec de nouvelles données au fil du temps.
Ajustements Continus : Adapter le modèle aux changements dans les données ou les
exigences.
Conclusion
La mise en œuvre d'un modèle de machine learning nécessite une approche structurée et
méthodique. Suivre les étapes dans l'ordre correct est crucial pour assurer la qualité et la
performance du modèle final. Cette démarche implique une compréhension approfondie à chaque
étape, depuis la collecte des données jusqu'au déploiement et à la maintenance du modèle.
Séparation des Données
La séparation des données est une étape cruciale dans le nettoyage et la préparation des données
pour le machine learning. Elle implique de diviser le jeu de données en plusieurs sous-ensembles,
généralement en un ensemble d'entraînement, un ensemble de validation et un ensemble de test.
Voici une explication détaillée de ce concept et de sa mise en œuvre :
Concept de Séparation des Données
But : La séparation des données vise à évaluer la performance d'un modèle de machine
learning de manière fiable et réaliste.
Ensemble d'Entraînement : Utilisé pour entraîner le modèle. C'est sur cet ensemble que le
modèle apprend les relations entre les caractéristiques et la variable cible.
Ensemble de Validation : Utilisé pour ajuster les hyperparamètres du modèle et pour une
première évaluation de la performance du modèle. Il aide à éviter le surajustement
(overfitting).
Ensemble de Test : Utilisé pour tester la performance du modèle après l'entraînement. Il
fournit une évaluation de la performance du modèle dans des conditions réelles, sur des
données non vues auparavant.
Méthode de Séparation
1. Ratio de Séparation :
o Une répartition commune est de 70% pour l'entraînement, 15% pour la validation et
15% pour le test.
o Ces ratios peuvent varier en fonction de la taille et de la spécificité du jeu de
données.
2. Séparation Aléatoire vs Stratifiée :
o Aléatoire : Les données sont divisées au hasard. Cela peut être fait facilement avec
des outils comme la fonction train_test_split de scikit-learn.
o Stratifiée : Assure que chaque ensemble (entraînement, validation, test) a une
répartition similaire des différentes classes ou caractéristiques. Cela est important
dans les cas de déséquilibre des classes.
3. Validation Croisée :
o Une alternative à la séparation fixe est la validation croisée, où le jeu de données est
divisé en plusieurs sous-ensembles (folds). Le modèle est entraîné et testé plusieurs
fois, chaque fois avec un sous-ensemble différent comme ensemble de test.
o La validation croisée est particulièrement utile pour les petits jeux de données, car
elle maximise à la fois la quantité de données pour l'entraînement et pour le test.
Points à Considérer
Représentativité : Il est important de s'assurer que chaque ensemble soit représentatif de
l'ensemble complet des données.
Indépendance : Les ensembles doivent être mutuellement exclusifs pour éviter les fuites de
données (data leakage), où l'information de l'ensemble de test influe sur l'entraînement.
Consistance : Si des transformations sont appliquées aux données (comme la normalisation),
elles doivent être cohérentes sur tous les ensembles.
Gestion des Cas de classes déséquilibré
Techniques d'Équilibrage des Classes
1. Suréchantillonnage des Classes Minoritaires
o Méthode : Augmenter la taille de la classe minoritaire en répliquant des exemples ou
en générant de nouveaux exemples synthétiques (par exemple, en utilisant la
méthode SMOTE - Synthetic Minority Over-sampling Technique).
o Forces : Permet d'augmenter la diversité des exemples dans la classe minoritaire,
améliorant ainsi l'apprentissage pour cette classe.
o Limites : Risque de surajustement (overfitting) dû à la réplication excessive des
données ou à la création de données synthétiques non représentatives.
o Usage Judicieux : Utile dans les cas où la classe minoritaire est très sous-représentée
et où il est important de détecter correctement les cas de cette classe.
2. Sous-échantillonnage des Classes Majoritaires
o Méthode : Réduire la taille de la classe majoritaire en supprimant des exemples au
hasard ou en utilisant des techniques plus sophistiquées pour conserver des
exemples informatifs.
o Forces : Réduit le risque de surajustement sur la classe majoritaire et améliore
l'équilibre des classes.
o Limites : Risque de perdre des informations importantes en éliminant des exemples
de la classe majoritaire.
o Usage Judicieux : Efficace lorsque le jeu de données est suffisamment grand et que
la réduction de la classe majoritaire ne conduit pas à une perte significative
d'informations.
3. Création de Poids de Classe
o Méthode : Attribuer des poids différents aux classes lors de l'entraînement du
modèle pour compenser le déséquilibre.
o Forces : Ne modifie pas le jeu de données lui-même, mais ajuste la manière dont le
modèle apprend à partir de ces données.
o Limites : Peut ne pas être aussi efficace si le déséquilibre de classe est très prononcé.
o Usage Judicieux : Bon choix quand il est préférable de ne pas modifier les données
d'origine mais de faire en sorte que le modèle accorde plus d'attention à la classe
minoritaire.
4. Utilisation de Modèles Spécifiques au Déséquilibre
o Méthode : Utiliser des algorithmes de machine learning conçus pour bien
fonctionner avec des données déséquilibrées.
o Forces : Certains modèles, comme les arbres de décision et les forêts aléatoires, sont
naturellement plus résistants au déséquilibre de classe.
o Limites : Ne convient pas à toutes les situations et dépend de la nature des données.
o Usage Judicieux : Utile lorsque les techniques de rééquilibrage des classes ne sont
pas souhaitables ou possibles.
Transformation des Données : Encoders et Transformers
Encoders
L'encodage des variables catégorielles est une étape importante dans la préparation des données
pour le machine learning. Les modèles de machine learning, en particulier ceux basés sur des
algorithmes mathématiques, travaillent principalement avec des données numériques. Par
conséquent, les variables catégorielles, qui contiennent des données qualitatives, doivent être
transformées en un format numérique. Voici les méthodes les plus courantes d'encodage des
variables catégorielles, avec leurs avantages et inconvénients :
1. Encodage One-Hot
Description : Chaque catégorie d'une variable est convertie en une nouvelle colonne binaire
(1 ou 0). Par exemple, pour une variable "Couleur" avec des valeurs "Rouge", "Vert", et
"Bleu", trois nouvelles colonnes sont créées.
Avantages :
o Simple à comprendre et à mettre en œuvre.
o Ne suppose pas d'ordre ou de hiérarchie entre les catégories.
Inconvénients :
o Augmentation de la dimensionnalité des données (problème de la malédiction de la
dimensionnalité).
o Pas efficace avec des variables ayant de nombreuses catégories.
o
2. Encodage Ordinal
Description : Attribuer un nombre unique à chaque catégorie selon un certain ordre. Par
exemple, dans une variable "Niveau d'éducation", on pourrait assigner 1 à "Secondaire", 2 à
"Baccalauréat", 3 à "Master", etc.
Avantages :
o Utile lorsque l'ordre des catégories est important.
o Moins d'augmentation de la dimensionnalité par rapport à l'encodage one-hot.
Inconvénients :
o Peut introduire une relation d'ordre artificielle qui n'existe pas (par exemple, pour les
couleurs).
o Le choix de l'ordre peut influencer les performances du modèle.
3. Encodage Binaire
Description : Convertit chaque catégorie en une combinaison unique de bits binaires. Par
exemple, si on a quatre catégories, elles pourraient être encodées comme 00, 01, 10, 11.
Avantages :
o Réduit la dimensionnalité par rapport à l'encodage one-hot, tout en gardant une
distinction claire entre les catégories.
Inconvénients :
o Peut introduire une complexité inutile pour les variables avec un petit nombre de
catégories.
Le choix de la méthode d'encodage dépend de la nature de la variable catégorielle et du modèle de
machine learning utilisé. Par exemple, les arbres de décision et les forêts aléatoires peuvent gérer
efficacement l'encodage ordinal, tandis que les modèles linéaires bénéficient souvent de l'encodage
one-hot. Une compréhension approfondie des données et du contexte du problème est essentielle
pour choisir la méthode d'encodage la plus appropriée.
Transformers
La mise à l'échelle et les transformations sur les données numériques sont des étapes essentielles
dans la préparation des données pour les modèles de machine learning. Ces techniques ajustent les
valeurs des caractéristiques (features) pour les rendre plus adaptées à l'analyse. Voici un aperçu des
méthodes les plus courantes :
1. Normalisation (Min-Max Scaling)
Description : La normalisation ajuste les données de sorte que leurs valeurs soient comprises
entre 0 et 1. Elle se fait en soustrayant la valeur minimale de chaque caractéristique et en
divisant par l'amplitude (max - min).
Utilité : Utile pour aligner les échelles des différentes caractéristiques, particulièrement
quand leurs gammes varient largement.
Nécessité : Essentielle pour les algorithmes qui sont sensibles aux échelles des variables, tels
que les algorithmes basés sur la distance (KNN, SVM) et les réseaux de neurones.
2. Standardisation (Z-score Normalization)
Description : La standardisation transforme les données pour qu'elles aient une moyenne de
0 et un écart-type de 1. Elle se fait en soustrayant la moyenne de chaque caractéristique et
en divisant par l'écart-type.
Utilité : Élimine la moyenne et échelonne les données selon leur variance. Utile pour
comparer les caractéristiques qui sont sur des échelles différentes.
Nécessité : Importante pour les modèles qui supposent que les données sont normalement
distribuées, tels que les régressions linéaires et logistiques.
3. Transformation Logarithmique
Description : Applique le logarithme naturel à chaque valeur de caractéristique.
Utilité : Réduit l'effet des valeurs aberrantes (outliers) et transforme des distributions
asymétriques en distributions plus normales.
Nécessité : Utile pour les données fortement asymétriques et pour stabiliser la variance des
résidus dans les modèles linéaires.
4. Transformation Racine Carrée
Description : Prend la racine carrée de chaque valeur de caractéristique.
Utilité : Semblable à la transformation logarithmique, mais moins radicale. Utile pour réduire
l'asymétrie.
Nécessité : Pertinente pour les données avec des valeurs non négatives et des asymétries
modérées.
5. Transformation Box-Cox
Description : Une famille de transformations paramétriques qui peut être utilisée pour
stabiliser la variance et rendre les données plus normales.
Utilité : Peut être ajustée (via un paramètre lambda) pour trouver la meilleure
transformation pour un ensemble spécifique de données.
Nécessité : Utile quand ni la transformation logarithmique ni la transformation racine carrée
ne normalisent suffisamment les données.
Transformation de Yeo-Johnson
Description :
o La transformation de Yeo-Johnson est une méthode de transformation des données
qui vise à rendre les distributions plus proches de la normalité. Contrairement à la
transformation Box-Cox, elle peut être appliquée à des données avec des valeurs
négatives et positives.
o Elle utilise une formule paramétrique, où un paramètre λλ est ajusté de manière à
maximiser la normalité des données transformées.
Utilité :
o Comme d'autres transformations, elle est utile pour stabiliser la variance, réduire
l'asymétrie, et améliorer les relations linéaires avec d'autres variables.
o Elle est particulièrement utile pour les jeux de données où les valeurs négatives ne
peuvent pas être log-transformées ou où la transformation Box-Cox ne s'applique
pas bien.
Nécessité :
o La transformation de Yeo-Johnson est particulièrement pertinente lorsque vous
travaillez avec des modèles qui supposent une distribution normale des variables
d'entrée, comme dans les régressions linéaires et certains types de modèles
bayésiens.
o Elle est également utile pour améliorer les performances des modèles de machine
learning dans les cas où la normalisation des caractéristiques peut avoir un impact
significatif.
La validation croisée
La validation croisée est une technique importante en apprentissage automatique (machine learning)
pour évaluer la capacité d'un modèle à généraliser à partir de données d'entraînement. Voici une
explication détaillée, étape par étape :
1. Concept de Base
But: Évaluer la performance d'un modèle de manière plus fiable.
Problème: Un modèle pourrait très bien fonctionner sur les données d'entraînement mais
échouer à généraliser sur de nouvelles données.
Solution: La validation croisée divise les données en plusieurs parties, utilise différentes
parties pour l'entraînement et le test, et calcule la performance moyenne du modèle.
2. Types de Validation Croisée
Validation Croisée K-Fold:
o Divise les données en K sous-ensembles (« folds »).
o Pour chaque itération, utilise un sous-ensemble différent comme ensemble de test
et les autres comme ensemble d'entraînement.
o Calcule la performance du modèle sur chaque itération et prend la moyenne comme
estimation globale.
Leave-One-Out (LOO):
o Variante de K-Fold où K est égal au nombre total d'échantillons.
o Chaque échantillon est utilisé une fois comme ensemble de test.
o Très coûteux en termes de calcul pour de grands ensembles de données.
Validation Croisée Stratifiée:
o Utilisée pour les données déséquilibrées.
o Chaque fold contient approximativement la même proportion d'exemples de chaque
classe que l'ensemble de données original.
Surajustement et sous-ajustement (Over- and Under-Fitting)
Un risque classique en machine learning est d’avoir un modèle qui s’ajuste parfaitement aux données
qui ont servi à le construire. Dans ce cas le modèle est très précis sur les données d’apprentissage
mais se généralise mal aux données nouvelles. Or l’objectif des algorithmes de machine learning
n’est pas de reproduire avec une précision optimale la variable cible connue mais plutôt de bien
prédire les valeurs qui n’ont pas encore été observées. On peut dire qu’il y a surajustement ou
surapprentissage (overfitting) en machine learning lorsqu’un modèle qui a pour fonction de mettre
en évidence les relations qui gouvernent les données mémorise plutôt les données elles-mêmes.
A contrario, il y a sous-ajustement ou sous-apprentissage (underfitting) lorsque le modèle est
incapable de s’ajuster aux données qui ont servi à le construire. Ces performances dans ce cas sont
mauvaises sur les données d’apprentissage. Cela dénote d’un modèle simpliste, qui n’a pas de
capacité suffisante pour apprendre des données.
Figure 1 : Sous-apprentissage et surapprentissage
Source : [Link]
Les cas de sous-apprentissage sont généralement faciles à régler. Il suffit d’augmenter la complexité
de l’algorithme d’apprentissage pour améliorer sa capacité d’entrainement. Les cas difficiles
concernent l’overfitting. Comment réduire la complexité du modèle de façon à obtenir le modèle
optimal (good fit) ?
Le surapprentissage est le problème fondamental du machine learning. C’est pratiquement la plus
grande difficulté à laquelle est confronté le data scientist. En effet il n’est pas toujours évident de
faire la distinction entre un bon modèle et un modèle qui surapprend. Pour augmenter le pouvoir
prédictif d’un modèle c’est-à-dire sa capacité à généraliser, il faut contrôler l’overfitting c’est à dire
effectuer un arbitrage entre le biais et la variance.
Compromis biais variance (bias-variance trade-off)
En apprentissage supervisé, le but ultime de tout algorithme est d’estimer la meilleure fonction de
prédiction étant donné l’échantillon d’apprentissage. Nous savons que l’erreur de prévision au sens
du risque quadratique est égale à la somme du biais au carré et de la variance. Le meilleur modèle
est celui qui minimise ces deux types d’erreur. Mais ces deux types d’erreur évoluent en sens
inverse : quand le biais diminue, la variance augmente et inversement.
Le biais correspond à l’erreur d’ajustement des données sur l’échantillon d’apprentissage et la
variance renvoie à l’erreur de généralisation relevé sur les données de test. Un modèle sur-ajusté a
un faible biais mais une très forte variance. A contrario, un modèle sous ajusté a un biais élevé et une
faible variance. Il est donc impératif d’effectuer un bon arbitrage entre le biais et la variance pour
obtenir le modèle optimal qui serait à la fois performant sur les données d’apprentissage et de test.
Algorithmes usuels de machine learning
1. Régression Linéaire
Principe : Modéliser la relation linéaire entre une variable dépendante continue et une ou
plusieurs variables indépendantes.
Fonctionnement :
o Modèle : Y=β0+β1X1+β2X2+...+βnXn+ϵ
o Objectif : Minimiser la somme des carrés des erreurs (SCE) entre les prédictions et
les valeurs réelles.
o Méthode : Méthode des moindres carrés pour estimer les coefficients.
2. Régression Logistique
Principe : Utilisé pour prédire la probabilité d'une variable dépendante catégorielle binaire.
Fonctionnement :
o Modèle : Utilise une fonction logistique pour modéliser la probabilité.
o Objectif : Maximiser la vraisemblance du modèle, c'est-à-dire la probabilité de voir
les données observées étant donné les paramètres du modèle.
o Optimisation : Gradient descente ou d'autres optimisateurs pour estimer les
coefficients.
3. Machines à Vecteurs de Support (SVM)
Principe : Trouver un hyperplan qui sépare de manière optimale les différentes classes.
Fonctionnement :
o Maximisation de la Marge : L'hyperplan est choisi pour maximiser la marge entre les
deux classes.
o Noyaux : Utilisation de fonctions noyau pour transformer les données dans un
espace où elles peuvent être séparées linéairement.
o SVM à Marge Souple : Permet quelques violations de marge pour mieux généraliser.
4. K-Plus Proches Voisins (KNN)
Principe : Classer une observation en fonction de la majorité des classes de ses voisins les
plus proches.
Fonctionnement :
o Distance : Calcul de la distance (euclidienne, Manhattan, etc.) entre les points.
o Vote Majoritaire : L'observation est assignée à la classe la plus commune parmi ses k
voisins les plus proches.
5. Arbres de Décision
Principe : Construire un modèle de décision sous forme d'arbre pour aller de l'observation à
la conclusion.
Fonctionnement :
o Scission : Diviser les données en sous-ensembles homogènes en fonction de critères
de pureté (Gini, Entropie).
o Feuilles : Chaque nœud feuille représente une classe de décision.
6. Forêts Aléatoires (Random Forest)
Principe : Ensemble d'arbres de décision, chaque arbre étant construit à partir d'un
échantillon des données.
Fonctionnement :
o Bagging : Chaque arbre est entraîné sur un sous-ensemble des données, avec
remplacement.
o Vote Majoritaire : La prédiction finale est basée sur la majorité des votes des
différents arbres.
7. Boosting (ex. XGBoost, AdaBoost)
Principe : Construire séquentiellement des modèles; chaque modèle subséquent corrige les
erreurs du modèle précédent.
Fonctionnement :
o Séquence d'Apprentissage : Chaque nouvel arbre est construit en se concentrant sur
les erreurs des arbres précédents.
o Pondération des Erreurs : Les observations mal classées reçoivent plus de poids.
o Combinaison : Les modèles sont pondérés et combinés pour une prédiction finale.
Evaluation des modèles de machine learning
Pour les modèles de classification binaire en apprentissage supervisé, il existe plusieurs métriques
d'évaluation importantes. Voici une liste exhaustive, accompagnée de la construction d'une matrice
de confusion et des formules associées à chaque métrique :
Matrice de Confusion
La matrice de confusion est un tableau à 2x2 qui mesure la performance d'un modèle de
classification. Voici sa structure :
Réel\Prediction Positif (1) Négatif (0)
Positif (1) Vrai Positif (VP) Faux Négatif (FN)
Négatif (0) Faux Positif (FP) Vrai Négatif (VN)
Métriques de Performance
1. Exactitude (Accuracy)
o Exactitude=(VP+VN)/(VP+VN+FP+FN)
o Proportion de prédictions correctes sur l'ensemble des prédictions.
2. Précision
o Précision=VP/(VP+FP)
o Proportion de prédictions positives correctes.
3. Rappel (Sensibilité)
o Rappel=VP/(VP+FN)
o Proportion de vrais positifs correctement identifiés.
4. F1-Score
o F1-Score=2×Précision×RappelPreˊcision+RappelF1-
Score=2×Preˊcision+RappelPreˊcision×Rappel
o Moyenne harmonique de la précision et du rappel.
5. Spécificité
o Spécificité=VN/(VN+FP)
o Proportion de vrais négatifs correctement identifiés.
6. Taux de Faux Positifs (Fall-Out)
o Fall-Out=FP/(FP+VN)
o Proportion de faux positifs parmi les observations négatives réelles.
7. Valeur Prédictive Négative (VPN)
o VPN=VN/(VN+FN)
o Proportion de prédictions négatives correctes.
8. Taux d'Erreur
o Taux d’Erreur=(FP+FN)/(VP+VN+FP+FN)
o Proportion de toutes les prédictions incorrectes.
9. Score AUC-ROC
o Aire sous la courbe ROC, mesurant la capacité du modèle à distinguer entre les
classes.
10. Log Loss (Perte Logarithmique)
Mesure la performance du modèle en termes de probabilités prédites.
11. Kappa de Cohen
Mesure de l'accord entre les prédictions et les vraies valeurs, ajustée pour l'accord dû au
hasard.
12. Sensibilité/Spécificité Tradeoff
Évaluation de l'équilibre entre la sensibilité et la spécificité pour différents seuils de
classification.
Conseils pour l'Utilisation
Choix des Métriques: Sélectionnez des métriques en fonction de l'importance relative des
différentes erreurs (FP vs FN).
Contexte du Problème: Pour les problèmes où les faux positifs et les faux négatifs ont des
conséquences très différentes, accordez plus d'attention aux métriques comme la spécificité
et la sensibilité.
Équilibrage des Classes: Si les classes sont déséquilibrées, privilégiez des métriques comme
le F1-score ou le Kappa de Cohen plutôt que l'exactitude.
Ces métriques offrent une vue complète et détaillée de la performance d'un modèle de classification
binaire, en tenant compte de différents aspects de l'exactitude et de l'erreur.
Classification multinomiale
Pour les modèles de classification supervisée avec une variable cible à plusieurs classes (multiclasse),
certaines métriques standard de classification binaire doivent être adaptées ou complétées par
d'autres métriques spécifiques. Voici une liste exhaustive des métriques couramment utilisées pour
de tels modèles :
1. Exactitude (Accuracy)
Proportion totale de prédictions correctes sur l'ensemble des prédictions.
Peut être trompeuse dans des cas de classes déséquilibrées.
2. Matrice de Confusion
Un tableau montrant les prédictions correctes et incorrectes pour chaque classe.
Fournit une vue d'ensemble détaillée de la performance du modèle.
3. Précision par Classe
Proportion des identifications positives correctes pour chaque classe.
Utile pour comprendre la performance sur des classes spécifiques.
4. Rappel (Sensibilité) par Classe
Proportion des vrais positifs correctement identifiés pour chaque classe.
5. F1-Score par Classe
Moyenne harmonique de la précision et du rappel pour chaque classe.
Fournit un équilibre entre la précision et le rappel.
6. F1-Score Moyen Pondéré
Moyenne des F1-scores pour toutes les classes, pondérée par le support (nombre
d'occurrences) de chaque classe.
7. Taux d'Erreur
Proportion globale des erreurs.
Hyperparamètres des algorithmes usuels de machine learning
Définition des Hyperparamètres
Hyperparamètres : Ce sont des paramètres dont la valeur est utilisée pour contrôler le
processus d'apprentissage. Contrairement aux paramètres du modèle, qui sont appris à
partir des données, les hyperparamètres sont définis en amont de l'entraînement et restent
constants pendant ce processus.
Rôle des Hyperparamètres
1. Contrôle de l'Algorithme : Les hyperparamètres permettent de contrôler le comportement
de l'algorithme d'apprentissage. Par exemple, dans un algorithme d'arbre de décision, la
profondeur maximale de l'arbre est un hyperparamètre.
2. Prévention du Surajustement : Certains hyperparamètres aident à éviter le surajustement
(overfitting), comme le taux de régularisation dans les modèles linéaires ou le nombre
d'arbres dans une forêt aléatoire.
3. Optimisation des Performances : En ajustant les hyperparamètres, on peut améliorer la
performance du modèle sur des données inédites, en trouvant le bon équilibre entre biais et
variance.
4. Complexité du Modèle : Ils peuvent influencer la complexité du modèle d'apprentissage,
comme dans le cas des réseaux de neurones où le nombre de couches et de neurones par
couche sont des hyperparamètres cruciaux.
Importance en Machine Learning
1. Impact sur l'Apprentissage : Des hyperparamètres bien choisis peuvent considérablement
améliorer la capacité d'un modèle à apprendre des patterns complexes et à généraliser à
partir de nouvelles données.
2. Spécificité au Problème : Les hyperparamètres doivent souvent être ajustés en fonction des
spécificités du problème et des données en question, car il n'existe pas de valeur unique qui
fonctionne pour tous les scénarios.
3. Recherche et Optimisation : La recherche d'hyperparamètres (comme la recherche par grille
ou la recherche aléatoire) est une étape essentielle dans le développement de modèles de
machine learning pour trouver la combinaison optimale qui donne les meilleures
performances.
4. Compromis Entre Performance et Ressources : L'ajustement des hyperparamètres peut
aussi être un compromis entre la performance du modèle et les ressources disponibles
(temps de calcul, mémoire, etc.).
En résumé, les hyperparamètres sont des leviers essentiels dans la conception et l'optimisation des
modèles de machine learning. Ils jouent un rôle clé dans la détermination de la structure du modèle,
de sa complexité, et finalement de sa performance sur des données réelles. Leur ajustement et leur
optimisation sont donc des étapes cruciales dans le workflow du machine learning.
Hyperparamètres des algorithmes usuels de machine learning
Version Python
1. Régression Linéaire
fit_intercept : Booléen, spécifie si une constante (intercept) doit être ajoutée à la fonction de
décision.
normalize : Booléen, spécifie si les régulateurs X seront normalisés.
2. Régression Logistique
solver : Algorithme à utiliser dans le problème d'optimisation.
penalty : Spécifie la norme utilisée dans la pénalisation (L1, L2).
C : Inverse de la force de régularisation.
max_iter : Nombre maximal d'itérations prises pour que les solveurs convergent.
3. Machines à Vecteurs de Support (SVM)
C : Paramètre de régularisation.
kernel : Type de noyau utilisé (linéaire, poly, rbf, sigmoid).
degree : Degré du polynôme pour le noyau polynomial.
gamma : Coefficient pour les noyaux rbf, poly et sigmoid.
4. K-Plus Proches Voisins (KNN)
n_neighbors : Nombre de voisins à utiliser.
weights : Poids utilisé dans la prédiction (uniforme, distance).
algorithm : Algorithme utilisé pour calculer les plus proches voisins (ball_tree, kd_tree, brute,
auto).
p : Paramètre de puissance pour la métrique de Minkowski.
5. Arbres de Décision
criterion : Fonction pour mesurer la qualité d'une scission (gini, entropy).
splitter : Stratégie utilisée pour choisir la scission à chaque nœud (best, random).
max_depth : Profondeur maximale de l'arbre.
min_samples_split : Nombre minimum d'échantillons requis pour scinder un nœud.
min_samples_leaf : Nombre minimum d'échantillons requis pour être à un nœud feuille.
6. Forêts Aléatoires (Random Forest)
n_estimators : Nombre d'arbres dans la forêt.
max_features : Nombre maximal de fonctionnalités considérées pour scinder un nœud.
max_depth : Profondeur maximale de l'arbre.
min_samples_split : Nombre minimum d'échantillons requis pour scinder un nœud.
bootstrap : Méthode d'échantillonnage des données (avec ou sans remplacement).
7. Boosting (ex. XGBoost, AdaBoost)
n_estimators : Nombre d'arbres à construire.
learning_rate : Contribue à réduire l'apport de chaque arbre.
subsample : Fraction des échantillons à utiliser pour ajuster chaque arbre.
max_depth : Profondeur maximale de chaque estimateur.
loss : Fonction de perte à optimiser (pour AdaBoost).
8. Réseaux de Neurones (via scikit-learn ou Keras/TensorFlow)
layers et units : Nombre de couches et d'unités dans chaque couche.
activation : Fonction d'activation (relu, sigmoid, tanh, etc.).
optimizer : Algorithme d'optimisation (SGD, Adam, etc.).
learning_rate : Taux d'apprentissage pour l'optimiseur.
batch_size et epochs : Taille du lot et nombre d'époques pour l'entraînement.
9. Naive Bayes
alpha : Paramètre de lissage.
fit_prior : Booléen, pour apprendre les probabilités de classe ou non.
class_prior : Probabilités de classe antérieures (si connues).
10. Régression Ridge / Lasso
alpha : Force de la régularisation.
fit_intercept : Booléen, pour ajouter ou non l'intercept.
normalize : Booléen, pour normaliser ou non les variables d'entrée.
Conseils pour l'Ajustement des Hyperparamètres :
Validation Croisée : Utilisez la validation croisée pour évaluer les performances du modèle
avec différents hyperparamètres.
Recherche d'Hyperparamètres : Utilisez des techniques comme la recherche par grille
(GridSearchCV) ou la recherche aléatoire (RandomizedSearchCV) pour trouver les meilleurs
hyperparamètres.
Échelle des Paramètres : Certains modèles sont sensibles à l'échelle des caractéristiques
d'entrée. Envisagez de normaliser ou de standardiser vos données pour ces modèles.
Équilibrage des Classes : Pour les données déséquilibrées, certains modèles ont des
paramètres pour gérer cet équilibrage.
Version R
1. Régression Linéaire (lm en R)
formula : La formule du modèle.
data : Le jeu de données.
subset : Spécifie un sous-ensemble de données à utiliser.
weights : Poids à attribuer à chaque observation.
2. Régression Logistique (glm en R avec family = binomial)
formula : La formule du modèle.
family : Doit être spécifié comme binomial pour la régression logistique.
data : Le jeu de données.
control : Liste de paramètres pour contrôler l'ajustement du modèle.
3. Machines à Vecteurs de Support (SVM) (svm dans le package e1071)
type : Type de SVM (C-classification, nu-classification, etc.).
kernel : Type de noyau utilisé (linéaire, polynomial, radial, etc.).
cost : Coût de la marge de classification erronée.
degree : Degré pour le noyau polynomial.
gamma : Paramètre de sélection du noyau.
4. K-Plus Proches Voisins (KNN) (knn dans le package class)
train : Données d'entraînement.
test : Données de test.
cl : Facteurs de classification des données d'entraînement.
k : Nombre de voisins.
5. Arbres de Décision (rpart dans le package rpart)
formula : La formule du modèle.
data : Le jeu de données.
method : Type de modèle (classe, anova, etc.).
control : Liste de paramètres pour contrôler l'ajustement de l'arbre.
6. Forêts Aléatoires (randomForest dans le package randomForest)
ntree : Nombre d'arbres à cultiver.
mtry : Nombre de variables à sélectionner au hasard comme candidats à chaque scission.
nodesize : Taille minimale des nœuds terminaux.
7. Boosting (par exemple, xgboost dans le package xgboost)
nrounds : Nombre d'arbres à construire.
eta : Taux d'apprentissage.
max_depth : Profondeur maximale de chaque arbre.
subsample : Fraction des échantillons à utiliser pour chaque arbre.
colsample_bytree : Fraction des fonctionnalités à utiliser par arbre.
8. Réseaux de Neurones (neuralnet dans le package neuralnet)
hidden : Nombre de neurones dans les couches cachées.
threshold : Seuil pour la convergence de l'algorithme.
learningrate : Taux d'apprentissage.
algorithm : Algorithme utilisé pour l'entraînement.
9. Naive Bayes (naiveBayes dans le package e1071)
laplace : Correction de Laplace.
usekernel : Booléen, pour utiliser ou non une estimation par noyau.
10. Régression Ridge / Lasso (glmnet dans le package glmnet)
alpha : Le mélange entre la régression Ridge (0) et Lasso (1).
lambda : Paramètre de régularisation.
standardize : Booléen, pour normaliser les variables d'entrée.
Conseils pour l'Ajustement des Hyperparamètres :
Validation Croisée : Utilisez des fonctions comme [Link] ou train du package caret pour
la validation croisée.
Recherche d'Hyperparamètres : Le package caret fournit des fonctions pour la recherche par
grille ([Link]) ou aléatoire.
Choix des Méthodes : R possède une grande variété de packages pour différentes méthodes
de machine learning, choisissez celui qui convient le mieux à votre cas d'utilisation.