Classification multiple#
Links: notebook
, html, PDF
, python
, slides, GitHub
Explorations autour d’un problème de classification multiple.
from jyquickhelper import add_notebook_menu
add_notebook_menu()
Début de l’histoire#
Confusions#
Un des premiers réflexes après avoir appris une classification
multi-classe est de regarder la matrice de
confusion.
Certaines classes sont difficiles à classer, d’autres non. Je me
demandais s’il existait un moyen de déterminer cela sans apprendre un
classifieur. On souhaite apprendre la classification des points
,
est un vecteur,
la classe
attendue. Si
est la classe prédite, l’erreur de
classification est :
On note et
. On note le vecteur
et
. On peut
réécrire l’erreur comme :
C’est aussi égal à :
Et correspond au nombre d’erreurs de confusion :
le nombre d’éléments de la classe
classés dans la classe
.
est le nombre d’éléments correctement
classés dans la classe
. On peut montrer que
où est le nombre d’observations.
Clustering#
Et si nous introduisions un clustering intermédiaire. On construit
cluster,
est le cluster du point
et on
note
et le vecteur
.
On note le produit terme à terme de deux vecteurs.
Le nombre d’erreurs est la somme des erreurs faites sur chaque cluster.
Supposons maintenant qu’un classifieur retourne une réponse constante
sur chacun des clusters, on choisit la classe plus représentée. Ca
ressemble beaucoup à un classifieur
bayésien.
On note cette classe la plus représentée. Elle vérifie :
Cela signifie que
. Si on note
le cluster associé à
. On continue :
. On définit l’erreur
l’erreur de classification faite sur chaque cluster
:
Pour résumer, l’erreur est le nombre d’éléments moins le nombre
d’éléments dans la classe majoritaire du cluster. Si le nombre de
clusters devient supérieur ou égal au nombre d’observations,
cette erreur devient nulle.
Mise en pratique#
L’idée est de voir comment évolue cette erreur de classification naïve en fonction du nombre de clusters. La différence par rapport à un classifieur est qu’on sait comment sont fabriqués les clusters et qu’on peut imaginer les classes comme un assemblage de clusters d’une forme connue.