0% ont trouvé ce document utile (0 vote)
478 vues79 pages

03 Classification

Transféré par

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

03 Classification

Transféré par

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

Initiation aux algorithmes

de classification
Formatrice: Mously DIAW

Tech et Cie.
Sommaire

I. Introduction

II. Classification

Régression logistique & Naive Bayes

Evaluation des performances d'un modèle de classification

TP: application sur python

K plus proches voisins & arbres de décision

Allez plus loin


INTRODUCTION
Apprentissage supervisé - définition

En apprentissage supervisé, vous allez récupérer


des données dites annotées de leurs sorties pour
entraîner le modèle, c'est-à-dire que vous leur
avez déjà associé un label ou une classe cible et
vous voulez que l'algorithme devienne capable,
une fois entraîné, de prédire cette cible sur de
nouvelles données non annotées. Dans notre
exemple, les données d'entrée seraient des
images et la cible (ou target en anglais) la
catégorie de photos que vous voulez.
Régression ou 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

Beaucoup d'algorithmes permettent en réalité d'effectuer ces deux types de tâches.


Être vigilant sur le type de tâche à réaliser permet cependant de structurer son approche et est à prendre
en compte comme une contrainte supplémentaire dans la construction du modèle. Demandez-vous donc
toujours si vous avez affaire à un problème de régression ou de 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

Classification Classification Classification


binaire multi-classe multi-label
Applications courantes de la classification

Classification Classification Classification


binaire multi-classe Multi-label

Email spam detection (spam or not) Détection d'objets


Couleur des fleurs (rouge, bleu, jaune)
Churn prediction (churn or not) Genres d'un film (action, romantique, ...)
Type d'animal (chat, chien, poisson)
Conversion prediction (buy or not) Classification d’images
Espèce d'oiseau (pinson, geai bleu, ...)
Détection de fraude Tags (exemples: offres d’emploi)
Analyse de sentiments (positif, négatif, neutre)
OCR
Appréhendez le fonctionnement de la
Régression logistique
Régression logistique
Spécification du modèle

Nous allons maintenant nous intéresser à des problèmes de classification binaire.


Nos données sont toujours n points (observations) en p dimensions, représentés par la matrice X ∈ ℝn×p, mais
leurs étiquettes, représentées par un vecteur y ∈ {0,1}, représentent maintenant l'appartenance (1) ou non (0) à
une classe.

C’est l’un des algorithmes de classification les plus utilisés.


L’idée est d’effectuer des corrélations simples entre les entrées et les sorties. Cela permet ainsi d’expliquer
comment le changement d’une variable peut affecter l’autre.
C’est la simplicité de ce modèle qui en fait son succès.

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

Comme la régression linéaire, la régression logistique peut s'apprendre par maximum de


vraisemblance.

Souvenez-vous, nous allons chercher à maximiser le logarithme de la vraisemblance, à


savoir résoudre:
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.

La régression logistique est implémentée dans scikit-learn : sklearn.linear_model.LogisticRegression.


Régression logistique
Régularisation

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.

On pourra donc utiliser :


La régression logistique avec régularisation ℓ2 pour éviter le sur-apprentissage (dans scikit-learn,
c'est même l'implémentation par défaut de la régression logistique) ;
La régression logistique avec régularisation ℓ 1 pour obtenir un modèle parcimonieux (dans scikit-
learn, il suffit d'utiliser l'option'penalty'=l1).
Régression logistique
Validation du modèle

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.

Le test considéré ici est :

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é

La régression logistique modélise la probabilité qu'une observation appartienne à la classe


positive comme une transformation logistique d'une combinaison linéaire des variables.
Les coefficients d'une régression logistique s'apprennent par maximisation de vraisemblance,
mais il n'existe pas de solution explicite.
La vraisemblance est convexe, et de nombreux solveurs peuvent être utilisés pour trouver une
solution numérique.
Les concepts de régularisation ℓ1 et ℓ2 s'appliquent aussi à la régression logistique.
Approches naïves pour une classification
Evaluation des modèles de classification binaire
Voici quelques approches naïves pour des problèmes de classification.
Le Dummy Classifier prend des décisions de manière aléatoire ou en utilisant une stratégie simple pour classer les données. Il
ne cherche pas à apprendre des données d'entraînement mais se contente de suivre une règle de base préétablie.
Il existe différentes stratégies que peut utiliser un Dummy Classifier pour affecter une classe à chaque observation. Les
stratégies les plus courantes sont :

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
(-)

Total 0 4000 4000

Classification avec la stratégie de la majorité


Le classificateur Naïve Bayes
Naïve Bayes
Spécification du modèle

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 :

En utilisant l'hypothèse naïve d'indépendance conditionnelle que

Pour tout i, cette relation est simplifiée à


Naïve Bayes
Spécification du modèle

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).

Avec sklearn, vous pouvez testez ces différents modèles, cf ici


Naïve Bayes
Résumé

Voici les étapes clés du fonctionnement du modèle Naïve Bayes :


1. Entraînement : Le modèle apprend à partir d'un ensemble de
données étiquetées. Ces données contiennent des exemples avec Avantages
des caractéristiques et leur classe correspondante. Facile à mettre en œuvre et rapide à entraîner.
2. Calcul des probabilités : Pour chaque classe, le modèle calcule la Peut être efficace même avec un petit ensemble de
probabilité d'apparition de chaque caractéristique individuelle données.
dans cette classe. Selon le type de variables explicatives (binaires, Bien adapté aux données textuelles et aux tâches
catégorielles, continues), différentes distributions peuvent être de classification de documents.
utilisées (bernoulli, multinomiale, gaussienne, etc.).
3. Classification : Pour classer une nouvelle instance, le modèle
calcule la probabilité a posteriori pour chaque classe en utilisant Inconvénients
le théorème de Bayes et sélectionne la classe avec la plus haute L'hypothèse d'indépendance conditionnelle peut
probabilité. être trop simpliste dans certains cas.
Sensible aux caractéristiques peu fréquentes ou
Types de Naive Bayes : absentes dans les données d'entraînement
Naive Bayes Bernoulli : utilisé lorsque les variables explicatives (problème de la probabilité nulle).
sont binaires (présence ou absence).
Naive Bayes multinomial : utilisé pour les caractéristiques
catégorielles (comptage des occurrences des mots, par exemple).
Naive Bayes gaussien : utilisé pour les variables explicatives
continues en supposant une distribution gaussienne des données.
EVALUEZ LES PERFORMANCES D'UN MODELE DE
CLASSIFICATION
Evaluation des modèles de classification binaire

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.

Pour y voir plus clair, on utilise une matrice de confusion.


La matrice de confusion, appelée également matrice d'erreur, est un tableau de contingence qui permet de visualiser les prédictions
faites par le modèle par rapport à la vérité. Voici à quoi ressemble la matrice de confusion d’une classification binaire :
Réalité
Prédiction

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.

Le F-beta score permet de varier la pondération de ces termes (FP et FN):

Réalité

Prédiction
Ce qui s’écrit également

Résumons :

: on accorde plus d’importance au recall (autrement dit aux faux négatifs).

: on accorde plus d’importance à la precision (autrement dit aux faux positifs).

: on retrouve le F1-score, qui accorde autant d’importance à la precision qu’au recall.


Classification: métrique d'évaluation des performances
Spécificité

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

190 210 400


(+)
Pas de cancer
10 3590 3600
(-)

Total 200 3800 4000

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.

Mais quel seuil choisir ?


Évaluez un algorithme de classification qui retourne des scores
Courbe de ROC
La courbe ROC nous permet de comparer différentes méthodes de classification sur des données équilibrées ou déséquilibrées.
Un modèle de classification est d'autant meilleur que la courbe est élevée.

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.

Construction de la courbe ROC:


Pour construire la courbe ROC, vous devez calculer le TPR et le FPR
à différents seuils de classification. Un seuil de classification est
une valeur à partir de laquelle les probabilités prédites par le
modèle sont transformées en classes binaires (positive ou
négative). En variant ce seuil, vous pouvez tracer un ensemble de
points sur un graphique où l'axe des abscisses représente le FPR et
l'axe des ordonnées représente le TPR.

Interprétation de la courbe ROC:


L’AUC ROC est égal à 100% pour un modèle parfait et à 50% pour un
modèle non-informatif (baseline). Plus l'AUC-ROC est proche de 1,
meilleure est la performance du modèle.
Évaluez un algorithme de classification qui retourne des scores
Courbe Precision-Recall
La courbe de précision-rappel est un outil graphique utilisé pour évaluer les performances d'un modèle de classification binaire,
principalement utilisé dans des situations où les données sont déséquilibrées, c'est-à-dire lorsque les classes positives et
négatives ne sont pas représentées de manière égale ou similaire.
Elle représente la précision (taux de prédictions positives correctes) et le rappel du modèle à différents seuils de classification.

Construction de la courbe ROC:


Pour construire la courbe ROC, vous devez calculer le TPR et le FPR
à différents seuils de classification. Un seuil de classification est
une valeur à partir de laquelle les probabilités prédites par le
modèle sont transformées en classes binaires (positive ou
négative). En variant ce seuil, vous pouvez tracer un ensemble de
points sur un graphique où l'axe des abscisses représente le FPR et
l'axe des ordonnées représente le TPR.

Interprétation de la courbe ROC:


L’AUC ROC est égal à 100% pour un modèle parfait et à 50% pour un
modèle non-informatif (baseline). Plus l'AUC-ROC est proche de 1,
meilleure est la performance du modèle.

Exemple de courbe Precision-Recall


Évaluez un algorithme de classification qui retourne des scores
Courbe Lift
La courbe lift, surtout utilisée dans le ciblage marketing, se construit aussi en parcourant le jeu de données ordonné par score.
la courbe Lift est un outil utile pour évaluer la performance d'un modèle de classification binaire, en mettant l'accent sur sa
capacité à cibler efficacement les observations positives en comparaison avec un modèle aléatoire, notamment dans des cas où
les données sont déséquilibrées.

Construction de la courbe Lift


Pour construire la courbe Lift, les étapes suivantes sont généralement suivies :
Les observations sont triées selon la probabilité prédite de leur
appartenance à la classe positive.
Les observations sont divisées en segments ou en groupes de taille égale ou
équivalente.
Pour chaque groupe, le taux de réponse observé est calculé en fonction du
nombre de vrais positifs dans ce groupe.
Le taux de réponse aléatoire est également calculé, par exemple en
supposant une distribution uniforme des classes positives et négatives.
Enfin, la courbe Lift est tracée, où l'axe des x représente la proportion des
données observées (cumulative) et l'axe des y représente le rapport entre le
taux de réponse observé et le taux de réponse aléatoire.

Interprétation de la courbe ROC:


Une courbe Lift ascendante indique que le modèle fonctionne mieux que le
hasard pour cibler les observations positives.
Evaluation des modèles de classification binaire
Résumé

Toutes les erreurs ne se valent pas.


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
(sensitivity), la précision, la spécificité et le F-score, qui reflètent différents aspects du modèle.

Matrice de confusion et métriques de performance d’un modèle de classification

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 :

Matrice de confusion pour un modèle


de classification multiclasse Exemple de rapport de classification pour
la reconnaissance des chiffres.

Comment ces métriques sont calculées ?


Classification: métrique d'évaluation des performances
Multiclass classification métriques
Lorsqu’on calcule le rappel et la précision dans une classification binaire, vous vous concentrez sur une seule classe
positive. Dans le cas de la classification multi-classes, il y a plusieurs classes à prédire. Pour y remédier, vous pouvez
calculer la précision et le rappel pour chaque classe, en traitant chaque fois cette classe spécifique comme "positive".
En conséquence, vous traiterez toutes les autres classes comme une seule classe "négative".

Exemple de rapport de classification pour la reconnaissance des chiffres.

Precision et recall par classe


Selon la classe i, les notions sont définies comme suit:
TP: la classe réelle et celle prédite sont identiques (positive)
Exemple de rapport de classification pour
FP: la classe prédite est i (positive) alors que la classe réelle est différente
la reconnaissance des chiffres.
FN: la classe réelle est i alors que la classe prédite est différente (négative)

Comment les métriques (macro avg, weighted avg) sont calculées ?


Classification: métrique d'évaluation des performances
Macro average

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é

Toutes les erreurs ne se valent pas.

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

spécificité et le F-score, qui reflètent différents aspects du modèle.

pour les modèles de classification non binaire, il faut utiliser les "weighted", "macro" ou "micro" pour synthétiser la

matrice de confusion (ex: calculer le macro-précision, macro-recall ou macro-f1, ...)

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

La classification sur données déséquilibrées est un problème où l’échantillon d’apprentissage

contient une forte disparité entre les classes à prédire. Cela revient fréquemment dans les

problèmes de classification binaire, et notamment la détection d’anomalies. C'est ce qu'on

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

classificateur sur des données déséquilibrées, il pourrait apprendre à favoriser la classe

majoritaire et à ignorer la classe minoritaire.

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

un algorithme qui prédit toujours la non-fraude, nous obtiendrons une précision de 99 %, ce

qui semble très élevé. Cependant, ce classificateur est inutile pour détecter la fraude, car il

n’a aucun rappel et aucune précision sur la classe de fraude.

Des données déséquilibrées peuvent réduire la diversité des données d’entrainement. Cela

peut conduire à un surapprentissage ou un sous-apprentissage.


Les méthodes pour lutter contre le déséquilibre des données
3) Utiliser des méthodes de rééchantillonnage
1) Collecter davantage de données
Vous pouvez modifier l’ensemble de données que vous utilisez
Cela peut paraître simpliste, mais la collecte de données
avant d’entraîner votre modèle prédictif afin d’avoir des données
supplémentaires est presque toujours négligée et peu parfois
plus équilibrées.
s’avérer efficace.
Cette stratégie est appelée rééchantillonnage et il existe deux

méthodes principales que vous pouvez utiliser pour égaliser les

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

commises sur la classe minoritaire pendant la formation. Ces


4) Soyez créatifs
pénalités peuvent biaiser le modèle pour qu’il accorde plus
Vous pouvez tester l’ensemble de ces techniques, les combiner,
d’attention à la classe minoritaire.
ou même penser à relabeliser les données de la classe majoritaire
Dans la plupart des classes d’algorithmes de scikit-learn, il est
en sous-classes pour obtenir un problème de classification multi-
possible de simplement utiliser le paramètre `class_weight`. Il
classes plus équilibré.
permet de pénaliser les erreurs faites sur une classe par un
Dans certains cas, vous pouvez également penser à utiliser
nouveau poids.
d’autre méthodes de Machine Learning comme l’Anomaly

Detection ou l’Active Learning.


Oversampling vs Undersampling

Les méthodes d’Oversampling (sur-échantillonnage) Les méthodes d’Undersampling (sous-échantillonnage)

fonctionnent en augmentant le nombre d’observations fonctionnent en diminuant le nombre d’observations de

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

centaines de milliers de cas ou plus.

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 euclidienne (p=2)

Distance de Manhattan (p=1)

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.

Mais, comment choisit-on ce paramètre k lors de l’implémentation de l’algorithme ?


On fait varier k
Pour chaque valeur de k, on calcule le taux d’erreur de l’ensemble de test
On garde le paramètre k qui minimise ce taux d’erreur test.

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é

Pour appliquer cette méthode, les étapes à suivre sont les


suivantes :
On fixe le nombre de voisins k.
On détecte les k-voisins les plus proches des nouvelles
données d’entrée que l’on veut classer.
On attribue les classes correspondantes par vote
majoritaire.

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

Un arbre de décision est un algorithme de Machine Learning qui permet


de faire une régression ou un classification.

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.

Cet algorithme peut également alimenter une discussion formelle. Ce


modèle très connu a donné naissance à des algorithmes puissants tels
que XGBoost ou Random Forest (forêt d'arbres).

Pour ce faire, l’algorithme va chercher à partitionner les individus en


groupes d’individus les plus similaires possibles du point de vue de la
variable à prédire.
Le résultat de l’algorithme produit un arbre qui révèle des relations
hiérarchiques entre les variables. Il est ainsi possible de rapidement
comprendre des règles métiers expliquant votre variable cible.
Arbres de décision
Principe de fonctionnement

Plusieurs points sont à noter :


Le premier noeud est appelé noeud racine ou central et possède toujours exactement deux noeuds
enfants.
noeud de décisions: chaque noeud non terminal possède toujours deux noeuds enfants. Les
conditions de noeuds ne peuvent avoir que deux états : Vrai ou Faux. Le noeud enfant de gauche
correspond toujours (dans cet arbre) à la situation où la condition est vérifiée (Vrai), et inversement
le noeud enfant de droite correspond toujours à la situation où la condition n'est pas vérifiée (Faux).
noeuds terminaux: lorsqu'un nœud donne la réponse finale, on dit que le nœud est terminal

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

Première étape : faire grandir l'arbre


A chaque nœud, on doit donc trouver deux choses : quelle feature utiliser et quel est le point de
séparation des deux zones, de sorte à minimiser l’erreur quadratique pour la régression et l’impureté
pour la classification. On fait ainsi grandir l’arbre de la manière la plus grande possible (d’où l'adjectif
greedy).

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

Seconde étape : élaguer l'arbre


Comme on peut l’imaginer, l’idée de coller autant aux données d’entraînement pour construire son
modèle conduit facilement à l'overfitting. Une des techniques qui permet de réduire cet overfitting pour
un arbre, c’est l’élagage. Pour élaguer l’arbre, il s'agit de prendre en compte le coût de la complexité du
modèle.
En effet, on ne peut faire grandir un arbre jusqu’à identifier chaque observation comme une feuille. On
doit donc choisir entre la qualité de l’ajustement de l’arbre sur les observations et la complexité du
modèle. Celui-ci ne doit pas être trop complexe sous peine d’overfitting.

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)

SVM (Machine à vecteurs de support) : Les SVMs sont une famille


d’algorithmes d‘apprentissage automatique qui permettent de résoudre
des problèmes tant de classification que de régression

Les SVMs ont été développés dans les années 1990.

Ces méthodes reposent sur deux idées clés : la notion de marge


maximale et la notion de fonction noyau (kernel).
Comme le montre la figure ci-dessous, leur principe est simple : ils ont
pour but de séparer les données en classes à l’aide d’une frontière
aussi « simple » que possible, de telle façon que la distance entre les
différents groupes de données et la frontière qui les sépare soit
maximale. Cette distance est aussi appelée « marge » et les SVMs sont
ainsi qualifiés de « séparateurs à vaste marge », les « vecteurs de
support » étant les données les plus proches de la frontière (cercle
bleu).
Support Vector Machine (SVM)

Le principe des SVM consiste à ramener un problème de classification ou de


discrimination à un hyperplan dans lequel les données sont séparées en
plusieurs classes dont la frontière est la plus éloignée possible des points
de données.

On commence tout d'abord par projeter chaque élément de données dans


l’espace n-dimensionnel (où n représente le nombre de caractéristiques
présentes dans le jeu de données) avec la valeur de chaque caractéristique
étant la valeur d’une coordonnée particulière.

Ensuite, on effectue la classification en trouvant l’hyperplan qui différencie


très bien les deux classes. On choisi le meilleur hyperplan selon la distance
minimale de la frontière par rapport a l'élément de la population le plus
proche.

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)

Comment fonctionne l'algorithme SVM ?


L'algorithme SVM fonctionne en itérant sur un ensemble de données étiquetées. À chaque itération, l'algorithme trouve les points
de données les plus proches de la frontière, appelés vecteurs de support. Les vecteurs de support sont utilisés pour calculer la
marge maximale.
L'algorithme ajuste ensuite les paramètres du modèle pour maximiser la marge.

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.

Un neurone (pas artificiel).


Architecture d’un perceptron

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.

Le perceptron est formée de:


1. Couche d’entrée: une première couche d'unités (ou neurones) qui permettent de «
lire » les données : chaque unité correspond à une des variables d'entrée. On peut
rajouter une unité de biais qui est toujours activée (elle transmet 1 quelles que
soient les données).
2. Couche de sortie: les unités d’entrée sont reliées à une seule et unique neurone de
sortie, qui reçoit la somme des neurones qui lui sont reliées, pondérée par des
poids de connexion (w, appelés aussi coefficients synaptiques). La somme pondérée
est ensuite passée à travers une fonction d'activation (a), généralement une
fonction seuil ou une fonction sigmoïde, pour produire une sortie binaire,
représentant la classe prédite.
Quelle fonction d'activation utiliser ?

Dans le cas d'un problème de classification binaire, on peut utiliser pour la fonction d’activation:

Fonction seuil (Heaviside) Fonction sigmoïde


Le principe de d’entrainement du Perceptron

1. Initiation 2. Calcul de la sortie 3. Mise à jour 4. Itération

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

Contexte et objectif du projet


L'ensemble de données comprend environ 18 000 messages de newsgroups sur 20 sujets (politique, science, santé, actualité, ...)
répartis en deux sous-ensembles : l'un pour l’entrainement (train) et l'autre pour le test (ou l'évaluation des performances). Ce
dataset est très populaire pour les expériences sur les applications textuelles des techniques d’apprentissage automatique,
telle que la classification.

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

Le lien vers le notebook exemple est disponible ici


Ressources
https://medium.com/@saugata.paul1010/a-detailed-case-study-on-multi-label-classification-with-machine-learning-algorithms-
and-72031742c9aa
https://datascientest.com/algorithme-de-classification-definition-et-principaux-modeles
https://machinelearningmastery.com/types-of-classification-in-machine-learning/
https://get-elevate.com/4-types-of-classification-tasks-in-machine-learning/
https://datascientest.com/regression-logistique-quest-ce-que-cest
https://www.ibm.com/fr-fr/topics/logistic-regression
https://www.cs.unb.ca/~hzhang/publications/FLAIRS04ZhangH.pdf
https://kobia.fr/classification-metrics-accuracy/
https://openclassrooms.com/fr/courses/4297211-evaluez-les-performances-dun-modele-de-machine-learning/4308261-evaluez-
un-algorithme-de-classification-qui-retourne-des-scores
https://www.lucidchart.com/pages/fr/arbre-de-decision
https://asana.com/fr/resources/decision-tree-analysis
https://fr.wikipedia.org/wiki/M%C3%A9thode_des_k_plus_proches_voisins
https://blent.ai/blog/a/modele-machine-learning-populaires
https://datacorner.fr/model-class-evaluatation/
https://kobia.fr/classification-metrics-auc-roc/
https://eric.univ-lyon2.fr/ricco/cours/slides/scoring_et_ciblage.pdf
https://datascientest.com/comment-gerer-les-problemes-de-classification-desequilibree-partie-ii
https://kobia.fr/imbalanced-data-et-machine-learning/
https://www.evidentlyai.com/classification-metrics/multi-class-metrics
https://fr.wikipedia.org/wiki/Perceptron

Vous aimerez peut-être aussi