Aller au contenu principal

Variances inter-classes et intra-classes

Annexe C du mémoire : outils mathématiques pour la classification, détail du calcul des variances inter-classes et intra-classes.

L'objectif de cette annexe1 est d'expliquer comment optimiser mathématiquement une classification LDA. On rappelle que, lors d'une telle classification, on souhaite maximiser la distance entre les moyennes des différentes classes tout en minimisant la dispersion à l'intérieur de chaque classe. Pour une classification comprenant deux classes, cela revient à optimiser (maximiser) l'expression suivante :

(μ1−μ2)2(s1)2+(s2)2\frac{(\mu_1 - \mu_2)^2}{(s_1)^2 + (s_2)^2}

où μ1\mu_1 et μ2\mu_2 représentent respectivement les moyennes de la 1ère et de la 2ème catégorie, et s1s_1 et s2s_2 représentent respectivement les dispersions dans la 1ère et dans la 2ème catégorie.

Calcul de la distance entre les moyennes des classes : variance inter-classes (Sb)(S_b)​

On se place dans le cas non trivial d'un problème non binaire (nombre de classes à considérer supérieur à 2).

Le calcul de la variance inter-classes consiste à mesurer la distance entre les moyennes de chaque classe et un point central, moyenne de tous les échantillons.

On fait les hypothèses suivantes. Soit XX la matrice des données non classées : X=x1,x2,…,xNX = x_1, x_2, \dots, x_N, où xix_i représente le ii-ème échantillon. Chaque échantillon est représenté par un nombre MM de caractéristiques (xi∈RMx_i \in \mathbb{R}^M). Visuellement, cela signifie que chaque xix_i est représenté par un point dans un espace à MM dimensions.

Le nombre de classes cc à différencier est fixé à c=3c = 3. Cela revient à partitionner la matrice des données en 3 ensembles X=[ω1,ω2,ω3]X = [\omega_1, \omega_2, \omega_3]. On suppose également que chacune des 3 classes contient un nombre d'échantillons égal à 5 (n1=n2=n3=5n_1 = n_2 = n_3 = 5). Le nombre total d'échantillons NN est alors donné par la somme suivante :

N=∑i=13niN = \sum_{i=1}^{3} n_i

La variance inter-classe est donnée par la formule suivante

Sb=(WTμi−WTμ)2=WT(μi−μ)(μi−μ)TW(C.1)S_b = (W^T \mu_i - W^T \mu)^2 = W^T (\mu_i - \mu)(\mu_i - \mu)^T W \tag{C.1}

où WTμiW^T \mu_i représente la projection de chacune des moyennes des 3 classes, WTμW^T \mu représente la projection de la moyenne totale et WW représente la matrice de transformation du classifieur (WTW^T sa transposée). Nous verrons grâce au critère de Fisher développé plus loin que cette matrice ne sert pas directement au calcul de la variance inter-classes ; cependant, on peut déduire WW du calcul des variances inter-classes et intra-classes (dispersion).

Les moyennes dans chacune des classes μj\mu_j sont calculées selon la nature et le nombre des échantillons dans la classe :

μj=1nj∑xi∈ωjxi\mu_j = \frac{1}{n_j} \sum_{x_i \in \omega_j} x_i

Les échantillons étant donnés sous forme matricielle (xi∈RMx_i \in \mathbb{R}^M), μj\mu_j est également sous forme matricielle.

La moyenne totale μ\mu est donnée par

μ=1N∑i=1Nxi\mu = \frac{1}{N} \sum_{i=1}^{N} x_i

Le terme (μi−μ)(μi−μ)T(\mu_i - \mu)(\mu_i - \mu)^T représente la distance entre la moyenne de la ii-ème classe et la moyenne totale (μ)(\mu). En d'autres termes, il s'agit de la variance inter-classe de la ii-ème classe, SbiS_{b_i}.

La variance inter-classe totale (Sb)(S_b) se déduit directement des variances inter-classes "partielles" (Sbi)(S_{b_i}), propres à chaque classe, et du nombre d'échantillons dans chaque classe nin_i :

Sb=∑i=1cniSbiS_b = \sum_{i=1}^{c} n_i S_{b_i}

Calcul de la dispersion à l'intérieur de chaque classe : variance intra-classe (Sw)(S_w)​

Comme pour le calcul de la variance inter-classe, on va se servir des variances intra-classes "partielles" afin d'en déduire la variance intra-classe "totale". La variance intra-classe de la jj-ème classe (Swj)(S_{w_j}) représente la distance entre la moyenne propre à la classe et les échantillons de la classe. Elle est donnée par la formule suivante :

SWj=∑i=1nj(xij−μj)(xij−μj)TS_{W_j} = \sum_{i=1}^{n_j} (x_{ij} - \mu_j)(x_{ij} - \mu_j)^T

où xijx_{ij} représente le ii-ème échantillon de la jj-ème classe.

La variance intra-classe totale est donnée par la somme des matrices représentant les variances intra-classes partielles :

SW=∑i=13SWi=∑xi∈ω1(xi−μ1)(xi−μ1)T+∑xi∈ω2(xi−μ2)(xi−μ2)T+∑xi∈ω3(xi−μ3)(xi−μ3)TS_W = \sum_{i=1}^{3} S_{W_i} = \sum_{x_i \in \omega_1} (x_i - \mu_1)(x_i - \mu_1)^T + \sum_{x_i \in \omega_2} (x_i - \mu_2)(x_i - \mu_2)^T + \sum_{x_i \in \omega_3} (x_i - \mu_3)(x_i - \mu_3)^T

Critère de Fisher : calcul de la matrice de passage WW, construction de l'espace de dimension réduite​

On admet la relation suivante :

SBw=λSWw(C.2)S_B w = \lambda S_W w \tag{C.2}

où ww désigne une colonne de la matrice de passage (W)(W) et λ\lambda la valeur propre associée. Si SWS_W est inversible, la relation s'écrit SW−1SBw=λwS_W^{-1} S_B w = \lambda w : les colonnes de WW sont les vecteurs propres de SW−1SBS_W^{-1} S_B.

La solution du problème (C.2) est obtenue en calculant les valeurs propres et les vecteurs propres correspondants.

Les vecteurs propres nous renseignent sur les directions du nouvel espace créé par la LDA ; ils représentent les axes de ce nouvel espace. Les valeurs propres associées donnent un ordre d'importance à ces vecteurs : elles pondèrent l'espace LDA en donnant plus d'importance aux vecteurs ayant la plus grande capacité à discriminer les classes, c'est-à-dire ceux qui permettent d'augmenter la variance inter-classe et de diminuer la variance intra-classe de manière optimale. Cette pondération est essentielle car elle permet de construire l'espace de moindre dimension en ne se servant que des vecteurs les plus "efficaces", les vecteurs les moins efficaces étant négligés.

Footnotes​

  1. Tharwat, A. et al., Linear discriminant analysis : a detailed tutorial, ResearchGate, 2017. ↩