Classification multiclasse
Remarque
Pour plus d’informations, consultez l’onglet Texte et images !
La classification multiclasse est utilisée pour prédire laquelle de plusieurs classes possibles appartient à une observation. En tant que technique de Machine Learning supervisée, elle suit le même processus itératif d’apprentissage, de validation et d’évaluation que la régression et la classification binaire dans laquelle un sous-ensemble des données d’entraînement est conservé pour valider le modèle entraîné.
Exemple : classification multiclasse
Les algorithmes de classification multiclasse sont utilisés pour calculer des valeurs de probabilité pour plusieurs étiquettes de classe, ce qui permet à un modèle de prédire la classe la plus probable pour une observation donnée.
Examinons un exemple dans lequel nous avons quelques observations de pingouins, dans lequel la longueur du flipper (x) de chaque pingouin est enregistrée. Pour chaque observation, les données incluent l’espèce pingouin (y), qui est encodée comme suit :
- 0 : Adelie
- 1 : Gentoo
- 2 : Manchot à jugulaire
Remarque
Comme pour les exemples précédents de ce module, un scénario réel inclut plusieurs valeurs de fonctionnalité (x). Nous allons utiliser une seule fonctionnalité pour simplifier les choses.
|
|
|---|---|
| Longueur du flipper (x) | Espèces (y) |
| 167 | 0 |
| 172 | 0 |
| 225 | 2 |
| 197 | 1 |
| 189 | 1 |
| 232 | 2 |
| 158 | 0 |
Formation d’un modèle de classification multiclasse
Pour entraîner un modèle de classification multiclasse, nous devons utiliser un algorithme pour ajuster les données d’entraînement à une fonction qui calcule une valeur de probabilité pour chaque classe possible. Il existe deux types d’algorithmes que vous pouvez utiliser pour ce faire :
- Algorithmes "Un-contre-Tous" (OvR)
- Algorithmes multinomiaux
Algorithmes "Un-contre-Tous" (OvR)
Les algorithmes one-vs-Rest entraînent une fonction de classification binaire pour chaque classe, chacun calculant la probabilité que l’observation soit un exemple de la classe cible. Chaque fonction calcule la probabilité de l’observation en tant que classe spécifique par rapport à toute autre classe. Pour notre modèle de classification des espèces pingouins, l’algorithme créerait essentiellement trois fonctions de classification binaire :
- f0(x) = P(y=0 | x)
- f1(x) = P(y=1 | x)
- f2(x) = P(y=2 | x)
Chaque algorithme produit une fonction sigmoid qui calcule une valeur de probabilité comprise entre 0,0 et 1,0. Un modèle entraîné à l’aide de ce type d’algorithme prédit la classe pour la fonction qui produit la sortie de probabilité la plus élevée.
Algorithmes multinomiaux
Une autre approche consiste à utiliser un algorithme multinomial, qui crée une fonction unique qui retourne une sortie à valeurs multiples. La sortie est un vecteur (tableau de valeurs) qui contient la distribution de probabilité pour toutes les classes possibles , avec un score de probabilité pour chaque classe qui, lorsqu’elle est totale, additionnée jusqu’à 1,0 :
f(x) =[P(y=0|x), P(y=1|x), P(y=2|x)]
Un exemple de ce type de fonction est une fonction softmax , qui peut produire une sortie comme l’exemple suivant :
[0.2, 0.3, 0.5]
Les éléments du vecteur représentent les probabilités pour les classes 0, 1 et 2 respectivement ; ainsi, dans ce cas, la classe avec la probabilité la plus élevée est 2.
Quel que soit le type d’algorithme utilisé, le modèle utilise la fonction résultante pour déterminer la classe la plus probable pour un ensemble donné de caractéristiques (x) et prédit l’étiquette de classe correspondante (y).
Évaluation d’un modèle de classification multiclasse
Vous pouvez évaluer un classifieur multiclasse en calculant les métriques de classification binaire pour chaque classe individuelle. Vous pouvez également calculer les métriques d’agrégation qui prennent en compte toutes les classes.
Supposons que nous avons validé notre classifieur multiclasse et obtenu les résultats suivants :
| Longueur du flipper (x) | Espèces actuelles (y) | Espèces prédites (ŷ) |
|---|---|---|
| 165 | 0 | 0 |
| 171 | 0 | 0 |
| 205 | 2 | 1 |
| 195 | 1 | 1 |
| 183 | 1 | 1 |
| 221 | 2 | 2 |
| 214 | 2 | 2 |
La matrice de confusion d’un classifieur multiclasse est similaire à celle d’un classifieur binaire, sauf qu’elle affiche le nombre de prédictions pour chaque combinaison d’étiquettes de classes prédites (ŷ) et de classes réelles (y) :
À partir de cette matrice de confusion, nous pouvons déterminer les métriques pour chaque classe individuelle comme suit :
| classe | Vrai positif | Vrai négatif | Faux positif | Faux négatif | Précision | Rappeler | Précision | Score F1 |
|---|---|---|---|---|---|---|---|---|
| 0 | 2 | 5 | 0 | 0 | 1,0 | 1,0 | 1,0 | 1,0 |
| 1 | 2 | 4 | 1 | 0 | 0,86 | 1,0 | 0,67 | 0,8 |
| 2 | 2 | 4 | 0 | 1 | 0,86 | 0,67 | 1,0 | 0,8 |
Pour calculer la précision globale, le rappel et les métriques de précision, vous utilisez le total des métriques TP, TN, FP et FN :
- Précision globale = (13+6)÷(13+6+1+1) = 0,90
- Rappel global = 6÷(6+1) = 0,86
- Précision globale = 6÷(6+1) = 0,86
Le score F1 global est calculé à l’aide des métriques de rappel et de précision globales :
- Score F1 global = (2x0,86x0,86)÷(0,86+0,86) = 0,86