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.