Projet
Projet
Projet en :
Encadré par :
[Link] Hasna
Département de Mathématiques
2021-2022
CONTENTS
Préliminaire : 4
Introduction Générale : 6
4 ACP dans R : 21
4.1 ACP avec R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.1 Packages R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.2 Standardisation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.3 Code R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.4 Visualisation et interprétation . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.5 Valeurs propres / Variances . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.6 Graphique des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.7 Cercle de corrélation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2
CONTENTS
6 Conclusion: 39
Annexe A : Références 40
6.1 Notions de base: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Analyse bidimensionnelle: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3
LIST OF FIGURES
4
PRÉLIMINAIRE :
5
INTRODUCTION GÉNÉRALE :
6
CHAPTER 1
LE TABLEAU DES DONNÉES:
xi2
.
..
h i
t
Ui = xi1 xi2 . . . xij . . . xip ce qui donne Ui =
xij .
..
.
xip
Alors Ui est un vecteur de Rp . De façon analogue, on peut représenter chaque variable par un vecteur
de Rn dont les composantes sont les valeurs de la variable pour les n unités :
x1j
x2j
..
.
Vj =
xij
..
.
xnj
Pour avoir une image de l’ensemble des unités, on se place dans un espace affine en choisissant comme
origine un vecteur particulier de Rp , par exemple le vecteur dont toutes les coordonnées sont nulles.
7
CHAPTER 1. LE TABLEAU DES DONNÉES:
Alors, chaque unité sera représentée par un point dans cet espace. L’ensemble des points qui représen-
tent les unités est appelé traditionnellement “nuage des individus”. En faisant de même dans Rn ,
chaque variable pourra être représentée par un point de l’espace affine correspondant. L’ensemble des
points qui représentent les variables est appelé “nuage des variables”. On constate, que ces espaces
étant de dimension supérieure en général à 2 et même à 3, on ne peut visualiser ces représentations.
L’idée générale des méthodes factorielles est de trouver un système d’axes et de plans tels que les
projections de ces nuages de points sur ces axes et ces plans permettent de reconstituer les positions
des points les uns par rapport aux autres, c’est-‘a-dire avoir des images les moins déformées possible.
v1 v2 v3
u1 90 140 6.0
60
u2 85 5.9
u3 75 135 6.1
X=
70
u4 145 5.8
85 130 5.4
u5
u6 70 145 5.0
8
CHAPTER 1. LE TABLEAU DES DONNÉES:
Remarque
Dans une ACP, dans l’espace des individus on s’intéresse aux proximités (métriques ou distances),
alors que dans l’espace des variables on s’intéresse aux angles.
9
CHAPTER 2
ACP CANONIQUE: ACPC
j=1
Avec cette distance, toutes les variables jouent le même rôle et les axes définis par les variables
constituent une base orthogonale. à cette distance on associe un produit scalaire entre deux vecteurs
: p
⟨−→, −ou→′ ⟩ = x x ′ = tU U ′
X
ou i i ij i j i i
j=1
On peut alors définir l’angle α entre deux vecteurs par son cosinus :
→,˜− Pp ˜
⟨− → t U˜U ′
ou i oui′ ⟩ xij xi′ j i i
cos(α) = −→ ˜ −→ = qP j=1 ˜ P =q ˜ .
∥oui ∥ ∥oui′ ∥ p
x
j=1 ij
2 p
x
j=1 i j
2
′ ( t U U ) (t U ′ U ′ )
i i i i
cas, il est utile de travailler avec des poids pi différents (données regroupées...). Ces poids sont
regroupés dans la matrice diagonale Dp de taille n:
0
p1
p2
Dp =
..
.
0 pn
1 1
Si les poids sont égaux à on a Dp = In où IN est la matrice identité.
n n
10
CHAPTER 2. ACP CANONIQUE: ACPC
i=1
Pour l’ACP on choisit de donner le même poids n1 à tous les individus. Le centre de gravité G du
nuage des individus est alors le point dont les coordonnées sont les valeurs moyennes des variables :
x1
x2
G= ..
.
xp
tel que
1X n
xj = xij
n i=1
Le point G est appelé parfois le point moyen du nuage. Prendre G comme origine, conformément à
la figure suivante, revient alors à travailler sur le tableau des données centrées :
11
CHAPTER 2. ACP CANONIQUE: ACPC
75.0
130.0
G=
5.7
Xc =
−5
uc4 15 0.1
10 0
uc5 −0.3
uc6 −5 15 −0.7
12
CHAPTER 2. ACP CANONIQUE: ACPC
1X n
1X n X p 2 1X n
IG = d2 (G, ui ) = xij − xj = t
Uci Uci
n i=1 n i=1 j=1 n i=1
Ce moment d’inertie totale est intéressant car c’est une mesure de la dispersion du nuage des individus
par rapport à son centre de gravité. Si ce moment d’inertie est grand, cela signifie que le nuage est
très dispersé, tandis que s’il est petit, alors le nuage est très concentré sur son centre de gravité.
Remarque:
On peut voir, en inversant l’ordre des signes sommes, que IG peut aussi s’écrire sous la forme suivante
:
1 n
p " X p
#
2
IG = = Var (vj )
X X
xij − xj
j=1 n i=1 j=1
où V ar(vj ) est la variance empirique de la variable vj . Sous cette forme, on constate que l’inertie
totale est égale à la trace de la matrice de covariance Σ,
IG = trace(Σ)
13
CHAPTER 2. ACP CANONIQUE: ACPC
2.4.2 Inertie du nuage des individus par rapport à un axe passant par
G
L’inertie du nuage des individus par rapport à un axe ∆ passant par G est égale, par définition, à :
1X n
I∆ = d2 (h∆i , ui )
n i=1
où h∆i est la projection orthogonale de ui sur l’axe ∆. Cette inertie mesure la proximité à l’axe ∆
du nuage des individus.
On en déduit que:
IV + IV ∗ = IG
14
CHAPTER 2. ACP CANONIQUE: ACPC
En projetant le nuage des individus sur un sous-espace V , on perd l’inertie mesurée par IV , on
ne conserve que celle mesurée par IV ∗ . De plus, si on décompose l’espace Rp comme la somme de
sous-espaces de dimension 1 orthogonaux entre eux, on peut écrire
IG = I∆∗1 + I∆∗2 + . . . + I∆∗p
t
a1 a1 − 1 =0
on déduit que a1 est vecteur propre de la matrice Σ associé à la valeur propre λ1 . D’où
t
a1 Σa1 − λt1 a1 a1 = 0
Finalement
t
a1 Σa1 = λ1 .
On reconnaît que le premier membre de l’équation précédente est égal à l’inertie I∆∗1 qui doit être
maximum. Cela signifie que la valeur propre λ1 est la plus grande valeur propre de la matrice de
covariance Σ et que cette valeur propre est égale à l’inertie portée par l’axe ∆1 . L’axe ∆1 pour lequel
le nuage des individus a l’inertie minimum a comme vecteur directeur unitaire le premier vecteur
propre associé à la plus grande valeur propre de la matrice de covariance Σ.
15
CHAPTER 2. ACP CANONIQUE: ACPC
ca (∆k /IG ) = λk
16
CHAPTER 2. ACP CANONIQUE: ACPC
Sur le graphique du cercle des corrélations, on peut aussi interpréter les positions des anciennes
variables les unes par rapport aux autres en termes de corrélations. Deux points très proches du
17
CHAPTER 2. ACP CANONIQUE: ACPC
cercle des corrélations, donc bien représentées dans le plan, seront très corrélées positivement entre
elles. Si elles sont proches du cercle, mais dans des positions symétriques par rapport à l’origine,
elles seront très corrélées négativement. Deux variables proches du cercle des corrélations et dont
les vecteurs qui les joignent à l’origine forment un angle droit, ne seront pas corrélées entre elles.
Il faut, pour interpréter correctement ces graphiques des cercles de corrélation, se souvenir qu’un
coefficient de corrélation est une mesure de liaison linéaire entre deux variables, et qu’il peut arriver
que deux variables très fortement liées aient un coefficient de corrélation nul ou très faible, si leur
liaison n’est pas linéaire. La distance entre les variables et l’origine mesure la qualité de représen-
tation des variables. Une variable sera bien représentée sur un plan si elle est proche du bord du
cercle des corrélations, car cela signifie que le cosinus de l’angle du vecteur joignant l’origine au point
représentant la variable avec le plan est, en valeur absolue, proche de 1.
18
CHAPTER 3
ACP NORMÉE : ACPN
Dans les paragraphes précédents, nous avons étudié l’ACP simple, pour laquelle, non seulement tous
les individus ont le même poids dans l’analyse, mais aussi, toutes les variables sont traitées de façon
symétrique (on leur fait jouer le même rôle) et les nouveaux axes sont issus de la matrice de covariance
empirique des variables. Cela pose parfois des problèmes. Le premier reproche fait par des praticiens
est que, si les anciennes variables sont hétérogènes, comme par exemple des poids, des tailles et des
âges, quel sens peut-on donner aux composantes principales qui sont alors des combinaisons linéaires
de variables hétéroclites ? Le deuxième reproche, est que, si on change d’unités sur ces variables, on
peut changer complètement les résultats de l’ACP. Le dernier reproche vient du fait qu’une variable
contribuera d’autant plus à la confection des premiers axes, que sa variance est forte. Pour échapper
à tous ces problèmes, on cherchera à normaliser les variables et à travailler sur des variables sans
dimension. Il y a plusieurs façons de normaliser les variables, mais la plus couramment utilisée est
celle qui consiste à diviser les valeurs des variables par leur écart-type, c’est-à-dire que l’on travaille
sur des variables centrées et réduites. Cela revient à faire la même analyse que pour l’ACP simple,
mais à choisir une autre distance euclidienne entre les individus que la distance euclidienne classique.
La distance choisie est alors : p
1
d2 (ui , ui′ ) = (xij − xi′ j )2
X
2
σ
j=1 j
Cette nouvelle distance ne traite plus les variables de façon symétrique, mais elle permet de faire
jouer un rôle plus équitable à chacune d’entre elles. Si on reprend tous les calculs de l’ACP simple,
mais en remplaçant les variables de départ par les variables centrées réduites, on voit que ce n’est
plus la matrice de covariance, mais la matrice de corrélation R qui intervient pour la recherche des
nouveaux axes. Les particularités de l’ACP normée par rapport à l’ACP simple proviennent du fait
que la matrice de corrélation R n’a que des 1 sur sa diagonale principale. Cela entraîne que sa trace
est toujours égale à p. On a vu que la trace de la matrice est égale à l’inertie totale du nuage calculée
avec la distance euclidienne que l’on a choisie. L’inertie totale du nuage des individus dans Rp est
donc toujours égale à p dans toute ACP normée. Cette particularité donne une règle supplémentaire
pour choisir le nombre d’axes que l’on va garder pour les interprétations, fondée sur le raisonnement
suivant : on a p valeurs propres dont la somme vaut p (puisque l’on a vu que l’inertie totale est aussi
égale à la somme des valeurs propres) ; on peut ne considérer comme significatives que les valeurs
propres dont la valeur est supérieure à 1, puisque la valeur moyenne des valeurs propres vaut 1 et
leur somme vaut p. C’est bien sûr une règle empirique mais qui peut servir de guide pour le choix
de la dimension du sous-espace que l’on veut garder.
19
CHAPTER 3. ACP NORMÉE : ACPN
Xcr =
−0.5
ucr4 0.72 0.26
1.0 0.00
ucr5 −0.78
ucr6 −0.5 0.72 −1.83
20
CHAPTER 4
ACP DANS R :
Dans le Plot 1A ci-dessous, les données sont représentées dans le système de coordonnées X-Y. L’ACP
suppose que les directions avec les plus grandes variances sont les plus “importantes” (i.e., princi-
pales). Dans la figure ci-dessous, l’axe P C1 est le premier axe principal le long duquel les échantillons
présentent la plus grande variation. L’axe P C2 est la seconde direction la plus importante et orthog-
onal à l’axe P C1.
Les dimensions de notre jeu de données peuvent être réduites à une seule dimension en projetant
chaque échantillon sur le premier axe principal (Plot 1B)
Notons que l’ACP est particulièrement utile lorsque les variables, dans le jeu de données, sont
fortement corrélées. La corrélation indique qu’il existe une redondance dans les données.
21
CHAPTER 4. ACP DANS R :
En résumé, l’analyse en composantes principales permet en premier lieu, d’identifier des “profils
cachés” dans un jeu de données, de réduire les dimensions des données en enlevant la redondance des
données, et d’identifier les variables corrélées.
4.1.1 Packages R
Plusieurs fonctions, de différents packages, sont disponibles dans le logiciel R pour le calcul de l’ACP:
Ici, nous utiliserons les deux packages FactoMineR (pour l’analyse) et factoextra (pour la visualisa-
tion, des données, basée sur ggplot2).
[Link](c("FactoMineR", "factoextra"))
library("FactoMineR")
library("factoextra")
Exemple démonstratif
Nous utiliserons les jeux de données de démonstration decathlon2 du package factoextra:
data(decathlon2)
# head(decathlon2)
22
CHAPTER 4. ACP DANS R :
Comme l’illustre la figure 3.1, les données utilisées ici décrivent la performance des athlètes lors de
deux évènements sportifs (Decastar et OlympicG). Elles contiennent 27 individus (athlètes) décrits
par 13 variables.
Notons que seulement certains de ces individus et variables seront utilisés pour effectuer l’analyse
en composantes principales. Les coordonnées des individus et des variables restants seront prédites
après l’ACP.
Selon la terminologie ACP, nos données contiennent des:
• Individus actifs (en bleu clair, lignes 1:23): individus qui sont utilisés lors de l’analyse en
composantes principales.
• Individus supplémentaires (en bleu foncé, lignes 24:27): les coordonnées de ces individus seront
prédites en utilisant l’information et les paramètres de l’ACP obtenue avec les individus/vari-
ables actifs.
• Variables actives (en rose, colonnes 1:10): variables utilisées pour l’ACP.
• Variables supplémentaires: comme les individus supplémentaires, les coordonnées de ces vari-
ables seront également prédites. On distingue des:
– Variables quantitatives supplémentaires (rouge): les colonnes 11 et 12 correspondent re-
spectivement au rang et aux points des athlètes.
– Variables qualitatives supplémentaires (vert): Colonne 13 correspondant aux deux ren-
contres sportives (Jeux olympiques de 2004 ou Décastar 2004). Il s’agit d’une variable
catégorielle. Elle peut être utilisée pour colorer les individus par groupes.
23
CHAPTER 4. ACP DANS R :
Nous commençons par extraire les individus actifs et les variables actives pour l’ACP:
L’objectif est de rendre les variables comparables. Généralement, les variables sont normalisées
de manière à ce qu’elles aient au final un écart type égal à un et une moyenne égale à zéro (ACPN).
Remarque
Notons que, par défaut, la fonction P CA() [dans FactoMineR], normalise les données automatique-
ment pendant l’ACP; donc, on n’a pas besoin de faire cette transformation avant l’ACP.
4.1.3 Code R
Fonction R: PCA() [FactoMineR].
Format simplifié:
• X: jeu de données de type data frame. Les lignes sont des individus et les colonnes sont des
variables numériques
• [Link]: une valeur logique. Si TRUE, les données sont standardisées/normalisées avant
l’analyse.
library("FactoMineR")
[Link] <- PCA([Link], graph = FALSE)
24
CHAPTER 4. ACP DANS R :
Le résultat de la fonction PCA() est une liste, contenant les éléments suivants:
print([Link])
Dans les sections suivantes, nous allons illustrer chacune de ces fonctions.
Nous examinons les valeurs propres pour déterminer le nombre de composantes principales à
prendre en considération. Les valeurs propres et la proportion de variances (i.e. information) retenues
par les composantes principales peuvent être extraites à l’aide de la fonction
25
CHAPTER 4. ACP DANS R :
library("factoextra")
[Link] <- get_eigenvalue([Link])
[Link]
La somme de toutes les valeurs propres donne une variance totale de 10.
La proportion de variance expliquée par chaque valeur propre est donnée dans la deuxième colonne.
Par exemple, 4.124 divisé par 10 est égal à 0.4124, ou, environ 41.24 % de la variation est expliquée
par cette première valeur propre. Le pourcentage cumulé expliqué est obtenu en ajoutant les propor-
tions successives de variances expliquées. Par exemple, 41.242 % plus 18.385 % sont égaux à 59.627
%, et ainsi de suite. Par conséquent, environ 59.627 % de la variance totale est expliquée par les
deux premières valeurs propres.
Les valeurs propres peuvent être utilisées pour déterminer le nombre d’axes principaux à conserver
après l’ACP (Kaiser 1961):
• Une valeur propre > 1 indique que la composante principale (PC) concernée représente plus
de variance par rapport à une seule variable d’origine, lorsque les données sont standardisées.
Ceci est généralement utilisé comme seuil à partir duquel les PC sont conservés. A noter que
cela ne s’applique que lorsque les données sont normalisées.
Dans notre analyse, les trois premières composantes principales expliquent 72 % de la variation.
C’est un pourcentage acceptable.
Une autre méthode pour déterminer le nombre de composantes principales est de regarder le
graphique des valeurs propres (appelé scree plot). Le nombre d’axes est déterminé par le point, au-
delà duquel les valeurs propres restantes sont toutes relativement petites et de tailles comparables.
Le graphique des valeurs propres peut être généré à l’aide de la fonction.
26
CHAPTER 4. ACP DANS R :
Du graphique ci-dessus, nous pourrions vouloir nous arrêter à la cinquième composante principale.
87 % des informations (variances) contenues dans les données sont conservées par les cinq premières
composantes principales.
Les composants de get_pca_var() peuvent être utilisés dans le graphique des variables comme
suit:
• coord: coordonnées des variables pour créer un nuage de points.
• var $ cos2: cosinus carré des variables. Représente la qualité de représentation des variables
sur le graphique de l’ACP. Il est calculé comme étant les coordonnées au carré: var.cos2 =
[Link] * [Link].
• var $ contrib: contient les contributions (en pourcentage), des variables, aux composantes
principales. La contribution d’une variable (var) à une composante principale donnée: (var.cos2
* 100) / (total cos2 du composant).
27
CHAPTER 4. ACP DANS R :
# Coordonnées
head(var$coord)
# Cos2: qualité de répresentation
head(var$cos2)
# Contributions aux composantes principales
head(var$contrib)
Le cercle de corrélation des variables ci-dessus montre les relations entre toutes les variables. Il
peut être interprété comme suit:
28
CHAPTER 4. ACP DANS R :
• Les variables négativement corrélées sont positionnées sur les côtés opposés de l’origine du
graphique (quadrants opposés).
• La distance entre les variables et l’origine mesure la qualité de représentation des variables.
Les variables qui sont loin de l’origine sont bien représentées par l’ACP.
On peut visualiser le cos2 des variables sur toutes les dimensions en utilisant:
library("corrplot")
corrplot(var$cos2, [Link]=FALSE)
Il est également possible de créer un bar plot du cosinus carré des variables en utilisant la fonction:
# Cos2 total des variables sur Dim.1 et Dim.2
fviz_cos2([Link], choice = "var", axes = 1:2)
29
CHAPTER 4. ACP DANS R :
• Un cos2 élevé indique une bonne représentation de la variable sur les axes principaux en con-
sidération. Dans ce cas, la variable est positionnée à proximité de la circonférence du cercle de
corrélation.
• Un faible cos2 indique que la variable n’est pas parfaitement représentée par les axes principaux.
Dans ce cas, la variable est proche du centre du cercle. Pour une variable donnée, la somme
des cos2 sur toutes les composantes principales est égale à 1.
Si une variable est parfaitement représentée par seulement deux composantes principales (Dim.1 et
Dim.2), la somme des cos2 sur ces deux axes est égale à 1. Dans ce cas, les variables seront position-
nées sur le cercle de corrélation.
Pour certaines des variables, plus de 2 axes peuvent être nécessaires pour représenter parfaitement
les données. Dans ce cas, les variables sont positionnées à l’intérieur du cercle de corrélation.
En résumé:
• Plus une variable est proche du cercle de corrélation, meilleure est sa représentation sur la
carte de l’ACP (et elle est plus importante pour interpréter les composantes principales en
considération)
• Les variables qui sont proche du centre du graphique sont moins importantes pour les premières
composantes.
• Les variables corrélées avec PC1 (i.e., Dim.1) et PC2 (i.e., Dim.2) sont les plus importantes
pour expliquer la variabilité dans le jeu de données.
30
CHAPTER 4. ACP DANS R :
• Les variables qui ne sont pas en corrélation avec un axe ou qui sont corrélées avec les derniers
axes sont des variables à faible apport et peuvent être supprimées pour simplifier l’analyse
globale.
La contribution des variables peut être extraite comme suit:
head(var$contrib, 4)
La fonction fviz_contrib() [package factoextra] peut être utilisée pour créer un bar plot de la con-
tribution des variables. Le code R ci-dessous montre le top 10 des variables contribuant le plus aux
composantes principales:
# Contributions des variables à PC1
fviz_contrib([Link], choice = "var", axes = 1, top = 10)
# Contributions des variables à PC2
fviz_contrib([Link], choice = "var", axes = 2, top = 10)
31
CHAPTER 4. ACP DANS R :
# Description de la dimension 2
[Link]$Dim.2
32
CHAPTER 4. ACP DANS R :
Dans le résultat ci-dessus, $quanti représente les résultats pour les variables quantitatives. Notez
que les variables sont triées en fonction de la p-value de la corrélation.
• Finance quantitative
• Compression d’images
• La reconnaissance faciale
33
CHAPTER 4. ACP DANS R :
4.2.1 Neurosciences:
Une technique connue sous le nom d’analyse de covariance déclenchée par des pics utilise une variante
de l’analyse des composantes principales en neurosciences pour identifier les propriétés spécifiques
d’un stimulus qui augmentent la probabilité qu’un neurone génère un potentiel d’action. L’ACP est
également utilisée pour trouver l’identité d’un neurone à partir de la forme de son potentiel d’action.
L’ACP en tant que technique de réduction de dimension est utilisée pour détecter les activités co-
ordonnées de grands ensembles neuronaux. Il a été utilisé pour déterminer des variables collectives,
c’est-à-dire des paramètres d’ordre, lors des transitions de phase dans le cerveau.
34
CHAPTER 5
COMPRESSION D’IMAGES DANS R:
Nous allons reconstruire une image en utilisant des quantités croissantes de composantes principales.
Nous verrons que plus le nombre de composantes principales augmente, plus la reconstruction devient
représentative de l’image originale. Combien de P C suffisent pour compresser l’image tout en gardant
une bonne qualité ?
# Load libraries
library(tidyverse)
library(jpeg)
library(factoextra)
library(knitr)
# Data points
x <- c(2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2, 1, 1.5, 1.1)
y <- c(2.4, 0.7, 2.9, 2.2, 3, 2.7, 1.6, 1.1, 1.6, 0.9)
# Data frame
data <- [Link](x, y)
# Scatter plot
data %>%
ggplot(aes(x,y)) +
geom_point(size=2, shape=3, color="blue") +
theme_bw() +
labs(title="Original data points")
# Structure
str(data)
# Eigenvectors and eigenvalues calculation
eigen <- eigen([Link](c(0.616555556, 0.615444444),
c(0.615444444, 0.716555556)))
# Eigenvectors
eigen$vectors
# Eigenvalues
eigen$values
# Points with the mean substracted
35
CHAPTER 5. COMPRESSION D’IMAGES DANS R:
# Eigenvectors functions
fun.1 <- function(x) (0.7351787/0.6778734)*x
fun.2 <- function(x) (0.6778734/-0.7351787)*x
fviz_eig(pca)
# Cumulative proportion
summary(pca)
# Data expressed in terms of our 2 eigenvectors
dataNewAxes <- [Link](t(t(eigen$vectors) %*% rbind(x - mean(x), y - mean(y))))
names(dataNewAxes) <- c("x", "y")
36
CHAPTER 5. COMPRESSION D’IMAGES DANS R:
# Structure
str(image)
# RGB color matrices
rimage <- image[,,1]
gimage <- image[,,2]
bimage <- image[,,3]
# PCA for each color scheme
pcar <- prcomp(rimage, center=FALSE)
pcag <- prcomp(gimage, center=FALSE)
pcab <- prcomp(bimage, center=FALSE)
# Reorder of factors
df$scheme <- factor(df$scheme, levels(df$scheme)[c(3,2,1)])
# Scree plot
df %>%
group_by(scheme) %>%
mutate(propvar=100*var/sum(var)) %>%
ungroup() %>%
ggplot(aes(x=index, y=propvar, fill=scheme)) +
geom_bar(stat="identity") +
geom_line() +
labs(title="Scree plot", x="Principal Component",
y="% of Variance") +
scale_x_continuous(limits=c(0, 20)) +
facet_wrap(~scheme) +
theme_bw() +
theme([Link]=element_blank(),
[Link]="bottom")
# PCs values
pcnum <- c(2, 30, 200, 300)
37
CHAPTER 5. COMPRESSION D’IMAGES DANS R:
Figure 5.1: Reconstruction d’image à l’aide Figure 5.2: Reconstruction d’image à l’aide
de 2 composantes principales de 30 composantes principales
Figure 5.3: Reconstruction d’image à l’aide Figure 5.4: Reconstruction d’image à l’aide
de 200 composantes principales de 300 composantes principales
38
CHAPTER 6
CONCLUSION:
Si vous avez déjà travaillé avec des jeux de données contenant beaucoup de variables, vous savez que
cela peut présenter des problèmes. Comprenez-vous toutes vos variables et les relations entre-elles ?
Avez-vous tellement de variables que vous risquez de surcharger ou sur-apprendre votre modèle ?
Pour éviter tout cela, les Data Scientists ont recours généralement à l’ACP ou l’Analyse en
Composantes Principales. C’est une méthode de réduction de la dimensionnalité qui améliore la
performance des algorithmes de Machine Learning car elle élimine les variables corrélées qui ne con-
tribuent à aucune prise de décision.
L’analyse en composantes principales (ACP) est un outil extrêmement puissant de compression et de
synthèse de l’information, très utile lorsque l’on est en présence d’une somme importante de données
quantitatives à traiter et interpréter.
L’ACP est donc une méthode de réduction de la dimensionnalité qui permet non seulement d’éviter
le sur-apprentissage, mais aussi de simplifier les données et de gagner en matière de temps et de
puissance de calcul.
Finalement on remercie [Link] de nous avoir donner la chance de traiter ce sujet intéres-
sant et de nous avoir mettre en évidence devant ce thème exclusif.
39
ANNEXE A : RÉFÉRENCES
Abdi, Hervé, and Lynne J. Williams. 2010. “Principal Component Analysis.” John Wiley and Sons,
[Link] Comp Stat
Aluja Banet T., Lebart L. (1984) - Local and partial principal component analysis and
correspondence analysis. In: COMPSTAT, Proceedings in Computational Statistics, Physiea Verlag
Husson, Francois, Sebastien Le, and Jérôme Pagès. 2017. Exploratory Multivariate Analysis by
Example Using R. 2nd ed. Boca Raton, Florida: Chapman; Hall/CRC.
Kassambara, Alboukadel, and Fabian Mundt. 2017. Factoextra: Extract and Visualize the Results
of Multivariate Data Analyses.
40
ANNEXE B :DÉFINITIONS ET RAPPELS
• Covariance :
1 i=n
= (xi − x̄) (yi − ȳ)
X
sx,y
n i=1
• Corrélation :
sx,y
r(x, y) =
sx sy
41
CHAPTER 6. CONCLUSION:
42