03 Classification
03 Classification
de classification
Formatrice: Mously DIAW
Tech et Cie.
Sommaire
I. Introduction
II. Classification
Un critère qui vous aidera dans le choix d'un algorithme de machine learning est le type de sortie que
l'on attend de notre programme :
1. est-ce une valeur continue (un nombre) ? Si oui, alors on parle de régression
2. est-ce une valeur qualitative (une catégorie / label) ? Si oui, il s'agit d'une classification.
Par exemple, si je veux déterminer le prix d'un bien immobilier, j'effectue une régression. Si je veux
déterminer si une photo est un chat ou un chien, j'effectue une classification.
Régression ou classification
Il existe aussi un autre type de prédiction possible qui est de sortir plusieurs labels de manière
ordonnée (ranking en anglais). Par exemple, l'algorithme PageRank de Google retourne des résultats de
recherche dans l'ordre, du plus pertinent au moins pertinent.
Type de classification
Le problème de cette approche est que beaucoup de points de coordonnées différentes doivent avoir la même
étiquette exactement: f(x(i))=1 pour tous les points x(i) positifs. Une fonction linéaire n'est pas le bon outil pour
cela…
Régression logistique
Spécification du modèle
Dans un problème de régression, les étiquettes y(i) sont à valeurs dans ℝ. 0 et 1 sont des
éléments de ℝ.
Peut-on utiliser directement une régression linéaire ?
Pour la régression logistique, nous allons utiliser une transformation logistique : au lieu
de prédire p(Y=1|x)directement comme la valeur d'une fonction linéaire en x, nous allons
composer cette fonction linéaire avec la fonction logistique:
Nous avons donc le modèle suivant, c'est ce qu'on appelle une régression logistique.
Régression logistique
Solution
Il ne nous reste plus qu'à remplacer p(Y=1|x(i),β) par sa valeur, à savoir la transformation logistique
d'une combinaison linéaire des variables, et on obtient le problème suivant :
Contrairement au cas de la régression linéaire, le gradient de la fonction objective (celle que l'on cherche à
maximiser) n'a pas de forme explicite et nous ne pouvons donc pas trouver de solution analytique. Cependant, la
fonction objective est concave et nous pouvons utiliser la méthode du gradient.
Nous avons vu dans les chapitres précédents que l'on peut utiliser la régularisation pour contrôler
les coefficients d'une régression linéaire, et éviter le sur-apprentissage ou créer des modèles
parcimonieux. Les mêmes concepts s'appliquent à la régression logistique, à la différence que la
régression logistique régularisée par la norme. ℓ2 n'admet pas de solution explicite.
En sus du test de significativité d'un paramètre (test de Student), on peut tester la nullité globale
des paramètres (ou d'un sous-ensemble des paramètres) via :
le test de Wald ;
le test du score ;
le test du rapport de vraisemblance ou de la déviance.
On ne perd aucunement en généralité, on remarque qu'il est possible de réordonner les variables
explicatives, et donc de tester n'importe quelle combinaison de q variables.
Régression logistique
Résumé
Stratégie aléatoire : Le modèle choisit des étiquettes de classe au hasard, sans prendre en compte les caractéristiques des
données.
Stratégie de la majorité : Le modèle attribue toujours la classe la plus fréquente dans l'ensemble d'entraînement. Par
exemple, si la classe "Non incendie" est plus fréquente dans le d'entraînement, le Dummy Classifier catégorise tous les
échantillons comme "Non incendie".
Stratégie de la constante : le classificateur prédit toujours une étiquette constante et est principalement utilisé pour classer
les étiquettes des classes non majoritaires.
Stratégie de proportion stratifiée : retourner aléatoirement des scores selon une distribution uniforme (proportion dans les
données d’entraînement), puis leur appliquer un seuil pour obtenir la classe prédite.
Réalité
Elles sont implémentées dans la classe DummyClassifier de scikit-learn. Cancer Pas de cancer
Total
(+) (-)
Cancer
Prédiction
0 400 400
(+)
Pas de cancer
0 3600 3600
(-)
Les méthodes de Bayes naïf sont un ensemble d'algorithmes d'apprentissage supervisé basés sur l'application
du théorème de Bayes avec l'hypothèse "naïve" de l'indépendance conditionnelle entre chaque paire de
caractéristiques compte tenu de la valeur de la variable ciblz. Le théorème de Bayes établit la relation
suivante, étant donné la variable à expliquer et un vecteur de caractéristiques dépendant par :
Il existe plusieurs algorithmes de Naive Bayes (Gaussian Naive Bayes, Complement Naive Bayes, Bernoulli Naive Bayes,
Multinomial Naive Bayes, ...).
Les différents classificateurs naïfs de Bayes se distinguent principalement par les hypothèses qu'ils font concernant
la distribution de
.
Malgré leurs hypothèses apparemment trop simples, les classificateurs de Bayes ont donné d'excellents résultats
dans de nombreuses situations réelles, notamment dans la classification de documents et le filtrage de spam. Ils
nécessitent une petite quantité de données d'apprentissage pour estimer les paramètres nécessaires.
Les classificateurs Bayes naïf peuvent être extrêmement rapides par rapport à des méthodes plus sophistiquées. Le
découplage des distributions de caractéristiques conditionnelles des classes signifie que chaque distribution peut
être estimée indépendamment comme une distribution unidimensionnelle. Cela permet d'atténuer les problèmes liés à
la malédiction de la dimensionnalité (curse of dimensionality).
Nous allons parler de classification binaire, où il s'agit de distinguer si un objet appartient ou non à une classe.
Par exemple, dire si une image représente un chat ou non. Si oui, on dit que cette image est positive ; sinon,
qu'elle est négative.
Prenons un algorithme qui prédit s’il y a un incendie à un endroit donné. Déclencher une alerte incendie quand il
n'y a pas le feu est moins grave que de ne pas déclencher d'alerte quand l’appartement est en flamme. Appelons
"positive" la classe correspondant à un incendie et "négative" l’autre
Dans les slides suivantes, nous allons voir les différentes manières d'évaluer la performance un modèle de
classification.
Classification: métrique d'évaluation des performances
Matrice de confusion
Prenons un algorithme qui prédit s’il y a un incendie à un endroit donné.
Le modèle de classification aura ces 4 prédictions possibles:
Les vraies positives (True Positive ou TP) : la prédiction et la valeur réelle sont positives.
Exemple : Le modèle prédit un incendie et il y en a effectivement un
Les fausses positives (False Positive ou FP ou erreur de type I) : la prédiction est positive alors que la valeur réelle est négative.
Exemple : Le modèle prédit un incendie, mais il n'y en a pas
Les vraies négatives (True Negative ou TN) : la prédiction et la valeur réelle sont négatives.
Exemple : Le modèle prédit correctement qu'il n'y a pas d'incendie
Les fausses négatives (False Negative ou FN ou erreur de type II) : la prédiction est négative alors que la valeur réelle est positive.
Exemple : Le modèle prédit qu'il n'y a pas d'incendie, mais il y en a un.
Les nombres de faux positifs et de faux négatifs devraient être nuls pour que la règle de décision soit parfaite ; ce n'est jamais le cas en pratique.
Pour obtenir une matrice de confusion avec scikit-learn, il suffit d’utiliser la fonction confusion_matrix
Classification: métrique d'évaluation des performances
Accuracy
À partir de la matrice de confusion on peut dériver tout un tas de critères de performance. De manière générale, on préfère
donner une fraction d'erreurs à un nombre total d'erreurs (5% d'erreurs, ça parle plus que 10 erreurs, quand on ne connaît pas
le nombre de points dans le jeu de test).
L’accuracy, appelé exactitude ou justesse ou taux de réussite ou taux de bonne bonne prédiction en français, est une métrique
fréquemment utilisée pour évaluer les modèles de classification car :
1. elle est facile à calculer et à interpréter, c’est la proportion d’individus correctement prédits.
2. elle résume la performance du modèle avec une valeur unique.
Réalité
Prédiction
Plus l’accuracy est proche de 1, plus le modèle est de bonne qualité (lorsque les classes sont équilibrées: poids similaires)
Dans les situations où les classes sont déséquilibrées (problème de classification avec un ou plusieurs classes rarement
rencontrés), l'accuracy peut être trompeuse car un modèle peut obtenir une exactitude élevée en prédisant simplement la
classe majoritaire tout le temps.
Par conséquent, il est souvent recommandé de considérer d'autres mesures de performance en plus de l'exactitude, telles
que: la précision, le rappel, le f1-score, ...
Classification: métrique d'évaluation des performances
Accuracy - limites
L’accuracy présente cependant de fortes limites en présence de données déséquilibrées (imbalanced data). Des données
sont dites déséquilibrées lorsqu’une des classes est plus fréquente que l’autre (par exemple plus d’individus négatifs
que positifs). L’utilisation de l’accuracy dans le cas où les données sont fortement déséquilibrées est une erreur
fréquente en classification. Toutefois, il faut noter qu'il existe des méthodes de re-équilibrage des données (imblearn).
Prenons l’exemple de données pour lesquelles seulement 10% des individus sont positifs. Il suffit de prédire tous les
individus comme négatifs pour atteindre une accuracy de 90%, ce qui est généralement considéré comme une très
bonne performance. Les valeurs obtenues avec l’accuracy en présence de données déséquilibrées sont donc à utiliser
avec précaution. Cette situation courante est appelée l'“accuracy paradox”.
Si l’on veut tout de même avoir recours à l’accuracy avec des données déséquilibrées, il vaut mieux utiliser la Balanced
Accuracy Weigthed.
Pour calculer l'accuracy d'un modèle avec scikit-learn, il suffit d’utiliser la fonction accuracy_score
Classification: métrique d'évaluation des performances
Rappel ou sensibilité
Le rappel ("recall" en anglais), ou sensibilité ("sensitivity" en anglais), est le taux de vrais positifs, c’est à dire la proportion
de positifs que l’on a correctement prédites parmi toutes les observations réellement positives. Il mesure la capacité du
modèle à détecter l’ensemble des individus positifs.
Le recall répond à la question : combien d’individus pertinents sont sélectionnés ?
Avec notre exemple sur l'incendie, c’est la capacité de notre modèle à détecter tous les incendies.
Réalité
Prédiction
Un rappel élevé indique que le modèle est capable de détecter la plupart des exemples positifs, ce qui est particulièrement important dans les
applications où la détection des exemples positifs est cruciale, comme la détection de fraudes, la détection de maladies, etc.
Cependant, il est important de noter que le rappel peut être élevé au détriment de la précision, en particulier lorsque le modèle a tendance à
classifier de nombreux exemples négatifs comme positifs (ce qui entraîne un grand nombre de faux positifs). Par conséquent, il est souvent
nécessaire de trouver un équilibre entre la précision et le rappel, en fonction des exigences de l'application.
EN résumé, on peut facilement avoir un très bon rappel … en prédisant systématiquement "positif". On ne ratera aucun incendie, mais notre
modèle ne sert pas à grand chose.
Classification: métrique d'évaluation des performances
Précision
La précision (precision en anglais), c’est-à-dire la proportion de prédictions correctes parmi les points que l’on a prédits
positifs. La précision répond à la question : combien d’individus sélectionnés sont pertinents ?
Avec notre exemple, c’est la capacité de notre modèle à ne déclencher d’alarme que pour un vrai incendie.
Réalité
Prédiction
En général, une précision élevée indique que le modèle fait peu de prédictions fausses pour la classe positive, ce qui est souhaitable dans
de nombreuses applications. Cependant, il est important de noter que la précision seule peut être trompeuse dans les cas où les classes
sont déséquilibrées. Par exemple, dans un ensemble de données où la classe négative est dominante, un modèle peut obtenir une précision
élevée simplement en prédisant constamment la classe majoritaire.
En résumé, on peut relativement avoir une très bonne précision ... en prédisant très peu de positifs (on risque moins de se tromper).
Classification: métrique d'évaluation des performances
F-mesure ou F1-score
Pour évaluer un compromis entre rappel et précision, on peut calculer la "F-mesure" ou "F1-score", qui est leur moyenne
harmonique. Le F1-score évalue la capacité d’un modèle de classification à prédire efficacement les individus positifs, en
faisant un compromis entre la précision et le rappel.
Il est particulièrement utile pour les problèmes utilisant des données déséquilibrées.
Réalité
Prédiction
Le F1-score appartient à la famille plus large des F-beta scores.
Le F1-score atteint sa meilleure valeur à 1 et sa pire valeur à 0. Un F1-score élevé indique à la fois une bonne précision et un bon rappel, ce qui
signifie que le modèle a bien classé à la fois les exemples positifs et négatifs.
Classification: métrique d'évaluation des performances
F-beta score
Dans le cas du F1-score, les erreurs (FN+FP) faites par le modèle sont pondérées par un facteur 1⁄2. Le F1-score accorde ainsi
la même importance à la précision et au rappel, et donc aux faux positifs et aux faux négatifs.
Réalité
Prédiction
Ce qui s’écrit également
Résumons :
On s’intéresse aussi souvent à la spécificité ("specificity" en anglais), qui est le taux de vrais négatifs, autrement dit la
capacité à détecter toutes les situations où il n’y a pas d’incendie. C’est une mesure complémentaire de la sensibilité
(rappel).
Réalité
Prédiction
Une spécificité élevée indique que le modèle est capable de détecter la plupart des exemples négatifs, ce qui est
particulièrement important dans les applications où la détection des exemples négatifs est cruciale pour éviter de fausses
alarmes ou des résultats indésirables.
La spécificité est souvent utilisée en conjonction avec le rappel, la précision et d'autres mesures de performance pour évaluer
de manière exhaustive la performance d'un modèle de classification.
Evaluation des modèles de classification binaire
Métriques de performance - exemple
Pour comprendre un peu mieux à quoi toutes ces mesures correspondent, prenons l’exemple d’un test clinique.
Il s’agit ici d’une étude conduite sur 4000 femmes, âgées de 40 ans et plus en bonne santé. Voici la matrice de
confusion d’un algorithme de classification binaire de détection de la maladie du cancer chez les femmes.
Réalité
Cancer Pas de cancer
Total
(+) (-)
Cancer
Prédiction
Excercice: Calculer les métriques suivantes: accuracy, precision, recall, specificity et f1-score ?
Évaluez un algorithme de classification qui retourne des scores
Certains modèles de classification retournent des valeurs réelles: score de décision ou probabilité.
Bien que le but d'un algorithme de classification est de faire des prédictions binaires, un grand nombre d'algorithmes retournent
un nombre réel. Plus cette valeur est élevée, plus le point est susceptible d'être positif. Dans de nombreux cas (régression
logistique, méthodes bayésiennes, réseaux de neurones…), il s’agit d’ailleurs d’une estimation de la probabilité que ce point soit
positif.
Dans ce cas, pour retourner une prédiction binaire, il faut seuiller : si le score retourné est supérieur au seuil, alors on prédit
positif ; s’il est inférieur, on prédit négatif.
Pour prendre en compte le compromis entre la sensitivity (recall: TPR) et la specificity (FPR), on calcule une métrique qui
résume la performance globale du modèle : l’AUC ROC. Par conséquent, plus l'aire sous la courbe est grande, meilleur est le
classificateur. Cette aire est reflétée par la valeur AUC (Area Under the Curve), c'est-à-dire l'aire sous la courbe.
Toutes ces mesures de performance sont disponibles dans le module metrics de scikit-learn
Classification: métrique d'évaluation des performances
Multiclass classification métriques
Les métriques de classification usuelles sont définies dans le cas binaire à partir de la matrice de confusion binaire.
Comment utiliser la matrice de confusion multi-classes pour généraliser les métriques binaires ? Nous allons voir les 3
méthodes classiques :
L’approche “macro”: résume les performances obtenues par classe en restant robuste au déséquilibre des classes.
Cela signifie que chaque classe est traitée de manière égale, quelle que soit sa taille.
Elle est calculée comme la moyenne non pondérée des métriques de chaque classe.
En résumé, il s’agit de mesurer d'abord la métrique par classe, puis il faut calculer la moyenne non pondérée pour toutes
les classes.
Classification: métrique d'évaluation des performances
Micro average
La précision/recall micro agrège les vrais positifs et les faux positifs pour toutes les classes, puis calcule la précision à
partir de ces valeurs agrégées.
Cela signifie que chaque observation est traitée de manière égale, quelle que soit la classe à laquelle elle appartient.
Par exemple, la précision est calculée en divisant la somme des vrais positifs par la somme des vrais positifs et des
faux positifs.
En bref, vous additionnez toutes les prédictions TP, FP et FN pour l'ensemble des classes et calculez conjointement la
précision, le rappel et les autres métriques.
Classification: métrique d'évaluation des performances
Weighted average
Il peut être approprié d'utiliser la moyenne pondérée. Cette approche tient compte de l'équilibre des classes. Chaque classe
est pondérée en fonction de sa représentation dans l'ensemble de données. Ensuite, vous calculez la précision et le rappel en
tant que moyenne pondérée de la précision et du rappel dans les classes individuelles.
Elle est calculée comme la moyenne pondérée des métriques de chaque classe, où les poids sont les proportions des classes.
Classification: métrique d'évaluation des performances
Résumé
On peut représenter les performances d’un modèle de classification dans une matrice de confusion.
On peut extraire de cette matrice différentes mesures de performance, comme l'accuracy, le rappel, la précision, la
pour les modèles de classification non binaire, il faut utiliser les "weighted", "macro" ou "micro" pour synthétiser la
il existe aussi d'autres métriques d'évaluation: courbe de ROC, AUC, courbe de lift
Le choix de la métrique dépend souvent du contexte spécifique du problème de classification, des préférences du
domaine d'application et des implications pratiques des erreurs. Il est courant de considérer plusieurs métriques pour
obtenir une compréhension plus complète de la performance d'un modèle de machine learning.
COMMENT GÉRER LES PROBLÈMES DE CLASSIFICATION
DÉSÉQUILIBRÉE
Gestion des problèmes de classification déséquilibrée
contient une forte disparité entre les classes à prédire. Cela revient fréquemment dans les
appelle des données déséquilibrées et cela pose un défi pour les tâches de classification.
Pourquoi donc?
Des données déséquilibrées peuvent conduire à des modèles biaisés. Si nous entraînons un
Des données déséquilibrées peuvent affecter les métriques d'évaluation. Si nous utilisons
la précision comme métrique pour évaluer un classificateur sur des données déséquilibrées,
nous pourrions obtenir un résultat trompeur. Par exemple, si nous avons un ensemble de
données avec 99% de transactions non frauduleuses et 1% de fraudes, et que nous utilisons
qui semble très élevé. Cependant, ce classificateur est inutile pour détecter la fraude, car il
Des données déséquilibrées peuvent réduire la diversité des données d’entrainement. Cela
classes :
2) Utiliser un modèle pénalisé
Le sur-échantillonnage (Oversampling) et le sous-échantillonnage
La classification pénalisée permet d’imposer un coût
(Undersampling).
supplémentaire au modèle pour les erreurs de classification
de la (des) classe(s) minoritaire(s) afin d’arriver à un la (des) classe(s) majoritaire(s) afin d’arriver à un ratio
ratio classe minoritaire/ classe majoritaire satisfaisant. classe minoritaire/ classe majoritaire satisfaisant.
Envisagez de tester différents ratios de classes. Par exemple, vous ne devez pas obligatoirement viser un ratio 1:1 dans un problème de
classification binaire, essayez d’autres ratios (cf cette article de Google sur le sujet “Qu'est-ce qui est considéré comme déséquilibré ?”.
Gestion des problèmes de classification déséquilibrée
Résumé
Sur Python, le package imblearn proposent un panel de méthodes de rééchantillonnage disponibles ici.
Conseil: toujours essayer les deux approches (voire les méthodes hybrides combinant ces deux techniques) sur
vos données déséquilibrées, et vérifier si cela améliore vos métriques de performances choisies.
Privilégiez le sous-échantillonnage lorsque vous disposez de grands jeux de données : des dizaines ou des
Privilégiez le sur-échantillonnage lorsque vous ne disposez pas de beaucoup de données :des dizaines de
milliers ou moins.
RETOUR SUR LES ALGORITHMES:
K-PLUS PROCHE VOISINS (KNN)
K plus proches voisins (KNN)
Spécification du modèle
Appelé k-nearest neighbors en anglais, c'est parmi les algorithmes qui fonctionnent en régression et en
classification.
C'est une méthode non paramétrique dans laquelle le modèle mémorise les observations de l’ensemble
d’apprentissage pour la classification/régression des données de l’ensemble de test.
Cependant, avant qu'une classification puisse être effectuée, la distance doit être définie. La distance
euclidienne est la plus couramment utilisée, et nous l'aborderons plus en détail ci-dessous.
Il convient également de noter que l'algorithme k-nn fait également partie d'une famille de modèles «
d'apprentissage paresseux » (Lazy Learning), ce qui signifie qu'il ne stocke qu'un jeu de données
d'apprentissage au lieu d'effectuer une phase d'entraînement. Cela signifie également que tous les calculs
ont lieu lorsqu'une classification ou une prédiction est effectuée.
K plus proches voisins (KNN)
Spécification du modèle
Pour estimer la sortie associée à une nouvelle entrée x, la méthode des k plus proches voisins consiste
à prendre en compte (de façon identique) les k échantillons d'apprentissage dont l’entrée est la plus
proche de la nouvelle entrée x, selon une distance à définir. Puisque cet algorithme est basé sur la
distance, la normalisation peut améliorer sa précision.
Par exemple, dans un problème de classification, on retiendra la classe la plus représentée parmi les k
sorties associées aux k entrées les plus proches de la nouvelle entrée x (vote majoritaire).
K plus proches voisins (KNN)
Distance de mesure de la similarité
Distance de Minkowski
forme généralisée de la distance
euclidienne
Distance de Hamming
cette technique est généralement utilisée avec
des vecteurs booléens ou de chaîne, identifiant
les points où les vecteurs ne correspondent pas.
K plus proches voisins (KNN)
Comment choisir la valeur de K ?
La valeur k dans l'algorithme k-NN définit le nombre de voisins qui seront vérifiés pour déterminer la
classification/valeur d'un point spécifique. Par exemple, si k=1, l'instance sera affectée à la même classe
de son voisin le plus proche. Définir k peut être un acte d'équilibrage, car différentes valeurs peuvent
conduire à un sur-ajustement ou à un sous-ajustement.
Le choix de k dépendra en grande partie des données d'entrée, car les données avec plus de valeurs
aberrantes ou de bruit fonctionneront probablement mieux avec des valeurs de k plus élevées.
Dans l'ensemble, il est recommandé d'avoir un nombre impair pour k afin d'éviter les liens de
classification (2 voisins positifs et 2 négatifs dans les 4 voisins les plus proches), et les techniques de
validation croisée et d'optimisation d'hyper-paramètres peuvent aider à choisir le k optimal pour votre
jeu de données.
Pour approfondir le sujet, vous pouvez en savoir plus sur l'algorithme k-NN en utilisant sklearn. Pour la
classification, vous pouvez utiliser ce module
K plus proches voisins (KNN)
Comment choisir la valeur de K ?
La valeur k dans l'algorithme k-NN définit le nombre de voisins qui seront vérifiés pour déterminer la
classification/valeur d'un point spécifique. Par exemple, si k=1, l'instance sera affectée à la même classe
de son voisin le plus proche. Définir k peut être un acte d'équilibrage, car différentes valeurs peuvent
conduire à un sur-ajustement ou à un sous-ajustement.
Dans l'ensemble, il est recommandé d'avoir un nombre impair pour k afin d'éviter les liens de
classification (2 voisins positifs et 2 négatifs dans les 4 voisins les plus proches), et les techniques de
validation croisée et d'optimisation d'hyper-paramètres peuvent aider à choisir le k optimal pour votre
jeu de données.
Pour approfondir le sujet, vous pouvez en savoir plus sur l'algorithme k-NN en utilisant sklearn. Pour la
classification, vous pouvez utiliser ce module
K plus proches voisins (KNN)
Résumé
Avantages :
Facile à comprendre
Apprentissage rapide
Inconvénients :
Pas efficace pour des jeux de données larges.
L’estimation de ce modèle devient de mauvaise qualité
quand le nombre de variables explicatives est grand.
ARBRES DE DECISION
Arbres de décision
Principe de fonctionnement
C'est un schéma ayant la forme d'un arbre, qui présente les données
possibles d'une série de choix interconnectés.
Arbre de décision qui indique si l'on doit prendre un
parapluie avec nous en fonction du temps.
estimer le prix d'un logement sur Airbnb en fonction du nombre de personnes (persons),
du nombre de chambres (bedrooms) et de lits (beds).
Arbres de décision
Construction des règles
L’arbre de décision est un algorithme itératif qui, à chaque itération, va séparer les individus en k
groupes (généralement k=2 et on parle d’arbre binaire) pour expliquer la variable cible.
La première division (on parle aussi de split) est obtenue en choisissant la variable explicative qui
permet la meilleure séparation des individus. Cette division donne des sous-populations correspondant
au premier nœud de l’arbre.
Le processus de split est ensuite répété plusieurs fois pour chaque sous-population (noeuds de décision)
jusqu’à ce que le processus de séparation s’arrête (noeuds terminaux).
Les arbres de décision sont des modèles non-paramétriques et trouvent des règles en général assez
puissantes. Ils peuvent traiter des très grands datasets et ils peuvent aussi utiliser des prédicateurs
mixtes (catégoriques et nombres). Les variables redondantes sont éliminées, parce que l’arbre ne les
prend même pas en compte.
Arbres de décision
Construction des règles
Impureté ?
L'impureté est la mesure probabilistique de la performance de l'arbre de décision. La plus utilisée,
notamment pour les forêts aléatoires, est l’index d’impureté de Gini. C’est à l’aide de cette impureté que
nous allons pouvoir choisir notre point de séparation, en testant toutes les valeurs possibles sur une
feature choisie.
À noter qu'il est possible d'utiliser d'autres types d'heuristiques pour faire grandir notre arbre.
Notamment l'entropie ou encore le gain d'information.
Arbres de décision
Construction des règles
Les trois algorithmes de la famille des arbres de décision : l’algorithme CART (Classification And
Regression Trees, à pour rôle de construire des arbres binaires de classification et de régression), CHAID,
et C4.5.
Arbres de décision
Résumé
Avantages:
La simplicité de compréhension et d'interprétation. C'est un modèle boîte blanche : si l'on observe une
certaine situation sur un modèle, celle-ci peut-être facilement expliquée à l'aide de la logique
booléenne, au contraire de modèles boîte noire comme les réseaux neuronaux, dont l'explication des
résultats est difficile à comprendre.
Peu de préparation des données
Il est possible de valider un modèle à l'aide de tests statistiques, et ainsi de rendre compte de la
fiabilité du modèle.
Performant sur de grands jeux de données: la méthode est relativement économique en termes de
ressources de calcul.
Inconvénients:
L'apprentissage par arbre de décision peut amener des arbres de décision très complexes, qui
généralisent mal l'ensemble d'apprentissage
Lors de la gestion de données de catégorie comportant plusieurs niveaux, le gain d'information est
biaisé en faveur des attributs disposant du plus de niveaux.
Les conjonctions entre les nœuds sont limitées à l'opérateur « ET », alors que les graphiques
décisionnels permettent de connecter des nœuds avec l'opérateur « OU ».
SUPPORT VECTOR MACHINE (SVM)
Support Vector Machine (SVM)
Le SVM est l'un des modèles Machine Learning non seulement les plus
simples, mais aussi l'un des plus performants. Il est généralement utilisée
avec des jeux de données présentant un grand nombre de classes. Il est
fréquemment utilisé aussi pour la reconnaissance faciale, la classification
de texte (NLP) et la classification d'image.
Support Vector Machine (SVM)
Types de SVM
Il existe deux principaux types de SVM :
SVM linéaires : les SVM linéaires supposent qu'il existe une frontière linéaire qui peut séparer les données des deux classes.
SVM non linéaires : les SVM non linéaires permettent de prendre en compte des relations non linéaires entre les données.
Support Vector Machine (SVM)
Avantages Inconvénients
Elles sont efficaces pour l'apprentissage de modèles Elles peuvent être difficiles à comprendre et à interpréter.
complexes.
Elles peuvent être coûteuses à entraîner pour de grands
Elles sont relativement résistantes au bruit dans les ensembles de données.
données.
PERCEPTRON
Réseau de neuronnes
Les réseaux de neurones, voilà un domaine du machine learning dont on entend beaucoup parler en ce moment... De la
reconnaissance vocale à la recherche d'images, en passant par les voitures autonomes et AlphaGo, les récents succès de
l'intelligence artificielle sont nombreux à se baser sur les réseaux de neurones profonds, plus connus sous le nom de deep
learning.
L'histoire des réseaux de neurones artificiels remonte aux années 1950 et aux efforts de psychologues comme Franck Rosenblatt
pour comprendre le cerveau humain
Initialement, ils ont été conçus dans le but de modéliser mathématiquement le traitement de l'information par les réseaux de
neurones biologiques qui se trouvent dans le cortex des mammifères. De nos jours, leur réalisme biologique importe peu et c'est
leur efficacité à modéliser des relations complexes et non linéaires qui fait leur succès.
Dans leur principe, les réseaux de neurones ne sont rien d'autre qu'une façon de
construire des modèles paramétriques, c'est-à-dire pour lesquels la fonction de
décision est explicite. Contrairement à d'autres algorithmes paramétriques comme la
régression linéaire, ils permettent de construire facilement des modèles très complexes
et non linéaires.
le perceptron, ce réseau de neurone à une seule couche inventé par Rosenblatt en 1957.
Le perceptron est un algorithme linéaire utilisé pour la classification binaire. Le
perceptron peut être vu comme le type de réseau de neurones le plus simple.
Dans le cas d'un problème de classification binaire, on peut utiliser pour la fonction d’activation:
Au début, les poids w et le biais Pour chaque exemple Les poids sont mis à jour en Les étapes 2 et 3 sont répétées
sont initialisés aléatoirement d'entraînement, les variables x fonction de l'erreur de pour chaque exemple
ou à zéro. sont pondérées par les poids w prédiction. Si la prédiction est d'entraînement jusqu'à ce qu'un
et le biais est ajouté. La somme correcte, les poids restent critère d'arrêt soit atteint, tel
pondérée est ensuite passée à inchangés. Sinon, les poids sont qu'un nombre maximum
travers une fonction ajustés pour réduire l'erreur. d'itérations ou jusqu'à ce que
d'activation l'erreur soit suffisamment faible.
Le perceptron est adapté aux problèmes de classification linéairement séparables. Cependant, il peut ne pas converger si les
données ne sont pas linéairement séparables.
Dans scikit-learn, le perceptron est implémenté dans linear_model.Perceptron. Par défaut, l'algorithme est répété 1000 fois
(paramètre max_iter) et le nombre d'itérations successives sans amélioration à attendre avant l'arrêt (early stoping en anglais)
est fixé à 5 (n_iter_no_change).
Perceptron
Avantages Inconvénients
Simplicité et rapidité d'exécution: Le perceptron est un Limité aux problèmes linéaires: Il ne peut apprendre que
algorithme facile à comprendre et à implémenter. Il est des fonctions linéaires, ce qui signifie qu'il est limité aux
également très efficace pour traiter des ensembles de problèmes de classification linéairement séparables.
données de taille modérée. Sensibilité aux données aberrantes: ils peuvent influencer
Base des réseaux de neurones artificiels: Le perceptron est de manière significative l'apprentissage et nuire à ses
l'unité de base des réseaux de neurones multicouches plus performances.
complexes, qui peuvent apprendre des modèles non Convergence: s'il n'y a pas de séparation linéaire possible
linéaires plus sophistiqués dans les données. entre les classes, le perceptron peut ne pas converger.
Pour des tâches plus complexes, des variantes du perceptron comme le perceptron multicouches (MLP: Multilayer Perceptron) sont
souvent utilisées, car elles peuvent apprendre des fonctions non linéaires en utilisant plusieurs couches de neurones.
AUTRES MODÈLES QUI FONCTIONNENT EN
CLASSIFICATION ET REGRESSION
Plusieurs algorithmes peuvent être utilisés pour la régression et la classification
Certaines algorithmes de Machine Learning peuvent être utilisés à la fois comme algorithme de régression ou de classification.
Voici quelques-uns des modèles les plus couramment utilisés dans ce contexte :
Arbre de décision
K-nearest neighbors (KNN)
SVM
Modèles ensemblistes: Random forest, XGBoost, LightGBM, CatBoost, etc.
Ils utilisent une combinaison de modèles faibles (généralement des arbres de décision) pour construire un modèle fort.
Pour la régression, la prédiction est la somme des prédictions des arbres de décision.
Pour la classification, elles utilisent souvent la fonction logistique ou la fonction softmax pour produire des
probabilités de classe.
Réseaux de neuronnes
Les réseaux de neurones peuvent être utilisés pour des tâches de régression en prédisant des valeurs continues en
sortie et pour des tâches de classification en produisant des probabilités de classe.
Dans le cas de la régression, vous pouvez utiliser un réseau de neurones avec une seule sortie et une fonction
d'activation linéaire.
Pour la classification, vous pouvez utiliser un réseau de neurones avec une fonction d'activation softmax en sortie et
une perte d'entropie croisée comme fonction de perte.
Il est important de tester différents algorithmes et de comparer leurs performances sur un ensemble de données de test pour
choisir le modèle le plus adapté à votre problème.
TP: CLASSIFICATION
TP - classifcation multiclass
Objectif: construire un algorithme de classification pour détecter le thème d’un message à partir de son contenu (NLP: Natural
Language Processing en anglais).
La description du jeu de données est disponible ici et pour les importer vous pouvez utiliser les datasets de sklearn
(fetch_20newgroups)
Variable cible:
target représente la variable à prédire (sujet du message)
Variables explicatives:
text: contenu du message