Skip to the content.

Apprentissage Supervisé

(niveau 2)

En fait, il s’agit, comme vous le savez, d’apprendre à faire une prédiction, à partir d’exemples pour lesquels on dispose de caractéristiques et d’une vérité (appelée aussi target en anglais).

Il est donc envisageable de considérer une classification comme une régression, dont les valeurs prédites sont discrètes. On pourrait donc ajouter à un algorithme de régression un étage de quantification pour discrétiser les valeurs prédites afin de faire de la classification.

Par exemple : si l’algorithme de régression indique une sortie \(p(x)\) de 4.23, on peut prendre l’entier le plus proche (4) et décider que la classe prédite est 4.

On retrouve souvent cette possibilité pour les classifications a 2 classes. On utilise alors une prédiction de classe du type (ou un équivalent…)

Je déconseille de le faire !

Pourquoi, et que faire, alors ?

En général, on préférera, pour une classification, avoir autant de sorties que de classes, suivant le modèle des fonctions discriminantes. La décision prise sera la classe qui a obtenu la sortie la plus grande.

Ceci est :

Dans ce cas, chaque sortie effectue bien une prédiction continue (un score pour la classe) dont le max fournit la décision (une classe). Ainsi, un réseau de neurone (par exemple) peut faire de la régression ou de la classification sans difficulté.

Algorithmes multiclasse.

Il existe de nombreux algorithmes prévus pour comparer 2 classes (svm entre autres). Pour les étendre à la discrimination multi classes, on peut envisager les choses suivantes :

La seconde solution évite certains problèmes liés a l’inhomogénéité de la classe “les autres”. Mais c’est un peu pénible a mettre en oeuvre, sauf si vous disposez d’une librairie qui le fait tout seul. Le Python Scykit implémente les 2 approches pour les SVM…