Académique Documents
Professionnel Documents
Culture Documents
A. LAMNII
A.
28 avril 2020
Table des matières
0.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
II
1.3.8 Corrélation et cosinus . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.9 Recherche des valeurs propres et des vecteurs propres . . . . . . . . . 10
MN
1.4 Exemple : ACP avec R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.13 Coordonnées, contributions et qualités des individus . . . . . . . . . . 20
3 Classification 63
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2 Classification supervisé et non supervisé . . . . . . . . . . . . . . . . . . . . . 64
3.2.2 Les mesures de proximité sur un ensemble . . . . . . . . . . . . . . . . 65
3.2.6 Ordre partiel sur les partitions . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.8 Principales méthodes d’apprentissage non-supervisée . . . . . . . . . . 66
3.2.9 Principales méthodes d’apprentissage supervisée . . . . . . . . . . . . 66
3.2.10 Comparaison avec l’analyse factorielle . . . . . . . . . . . . . . . . . . 67
3.2.13 Exemple avec R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1
TABLE DES MATIÈRES
II
4.2.5 Exemple d’ondelettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.2.6 La translation et la dilatation . . . . . . . . . . . . . . . . . . . . . . . 116
MN
4.3 Transformée en ondelettes continue . . . . . . . . . . . . . . . . . . . . . . . . 118
4.3.1 Reconstruction et conservation de l’énergie . . . . . . . . . . . . . . . 118
4.3.2 Conditions pour parler d’analyse en ondelettes . . . . . . . . . . . . . 119
4.3.3 Transformée en ondelettes discrète . . . . . . . . . . . . . . . . . . . . 119
4.3.4 Les transformations dyadiques . . . . . . . . . . . . . . . . . . . . . . 119
LA
2
0.1. INTRODUCTION
0.1 Introduction
Il n’y a pas très longtemps, on ne pouvait pas traiter un tableau de 3000 lignes et 300
colonnes. L’apparition et le développement des ordinateurs a du coup levé cet obstacle de
calcul, et a permis la conservation et l’exploitation des grandes masses de données. Cette
amélioration continue de l’outil informatique a fortement contribué au développement et à
la vulgarisation de nombreuses méthodes statistiques, devenues maintenant d’usage assez
courant.
Les données se présentent généralement sous la forme d’un tableau rectangulaire, dont
les lignes correspondent à des individus ou unités statistiques et les colonnes à des variables
appelées caractères ou caractéristiques.
Les données sont des résultats d’expériences ou d’enquêtes mesurés, observés sur des in-
dividus.
II
Les valeurs des variables peuvent être :
— quantitatives ordinales (jugement humain, température) ;
MN
— quantitatives mesurables (poids d’un individu, revenu) ;
— qualitatives ordinales (classe d’âge, le rang) ;
— qualitatives nominales (sexe, situation matrimoniale).
Lorsque dans un tableau, toutes les variables choisies sont quantitatives, on peut établir
un tableau de données quantitatives ; c’est le cas par exemple où l’on observe sur un ensemble
LA
de sujets I, un certain nombre de mesures J : poids, taille, âge. Ce tableau est encore appelé
tableau de mesures.
Variable quantitative
A.
Une variable quantitative prend des valeurs entières ou réelles, elle est dite alors discrète
ou continue. Cette propriété ayant des incidences sur la nature de sa distribution et donc sur
les graphiques associés.
Variable quantitative
En statistique, une variable qualitative, une variable catégorielle, ou bien un facteur est
une variable qui prend pour valeur des modalités, des catégories ou bien des niveaux.
Par définition, les observations d’une variable qualitative ne sont pas des valeurs numériques,
mais des caractéristiques, appelées modalités. Lorsque ces modalités sont naturellement or-
données (par exemple, la mention au bac ou une classe d’âge), la variable est dite ordinale.
Dans le cas contraire (par exemple, la profession dans une population de personnes actives
ou la situation familiale) la variable est dite nominale.
3
0.1. INTRODUCTION
But du cours
— Comprendre les méthodes ;
— Savoir interpréter les tables et graphiques issus de ces méthodes ;
— Être capable de mener soi-même une telle étude.
II
MN
LA
A.
4
Chapitre 1
1.1 Introduction
L’analyse en Composantes Principales (ACP) est un grand classique de l’analyse des don-
nées.
Lorsqu’on étudie simultanément un nombre important de variables quantitatives (>>> 4),
comment en faire des graphiques ? La difficulté vient de ce que les individus étudiés ne sont
plus représentés dans un plan, espace de dimension 2, mais dans un espace de dimension
II
plus importante (par exemple 4).
MN
L’objectif de l’Analyse en Composantes Principales (ACP) est de revenir à un espace de
dimension réduite (par exemple 2) en déformant le moins possible la réalité.
Il s’agit donc d’obtenir le résumé le plus pertinent possible des données initiales.
LA
C’est la matrice des variances-covariances (ou celle des corrélations) qui va permettre de
réaliser ce résumé pertinent, parce qu’on analyse essentiellement la dispersion des données
considérées.
C’est la matrice des variances-covariances (ou celle des corrélations) qui va permettre de
A.
réaliser ce résumé pertinent, parce qu’on analyse essentiellement la dispersion des données
considérées. De cette matrice, on va extraire, par un procédé mathématique adéquat, les
facteurs que l’on recherche, en petit nombre. Ils vont permettre de réaliser les graphiques
désirés dans cet espace de petite dimension (le nombre de facteurs retenus), en déformant le
moins possible la configuration globale des individus selon l’ensemble des variables initiales
(ainsi remplacées par les facteurs). C’est l’interprétation de ces graphiques qui permettra de
comprendre la structure des données analysées.
L’Analyse en composantes principales est une méthode de la famille de l’analyse des don-
néeset plus généralement de la statistique multivariée, qui consiste à transformer des va-
riables liées entre elles (dites "corrélées" en statistique) en nouvelles variables non corrélées
les unes des autres. Ces nouvelles variables sont nommées "composantes principales", ou
"axes".
Ces nouvelles variables correspondent à une combinaison linéaire des variables originels.
Le nombre de composantes principales est inférieur ou égal au nombre de variables d’origine.
En d’autres termes, l’ACP réduit les dimensions d’une donnée multivariée à deux ou trois
5
1.2. OBJECTIFS
II
1.2 Objectifs
MN
— Apprendre à extraire de l’information provenant de tableaux de données quantitatives.
— S’applique à des tableaux à 2 dimensions croisant individus et variables
— Individus en ligne, variable en colonnes
— Pour deux individus, on essaie d’évaluer leur ressemblance : deux individus se res-
LA
semblent d’autant plus qu’ils possèdent des valeurs proches pour l’ensemble des va-
riables
— Pour deux variables, on évalue leur liaison à partir du coefficient de corrélation linéaire
— Bilan des relations entre individus
— Quels sont les individus qui se ressemblent ?
A.
6
1.3. NOTIONS DE BASE
1... j ... p
1
.. ..
. .
i ... xij . . .
.. ..
. .
n
n
1X
On définit la moyenne d’une variable par : x̄j = xij
n i=1
v
u n
u1 X
L’écart-type par : σj = t (x ij − x̄k )2
n i=1
La dispersion est forte si l’écart-type est supérieur à (1/2 moyenne).
II
— n individus décrits (en lignes)
— p variables quantitatives (en colonnes)
MN
— Tableau Xn×p = xij , des données brutes
— xij = valeur de la variable j pour l’individu i
— On cherche la meilleure ń image approchée ż du nuage en projection sur une droite ∆ ;
c’est celle qui respecte au mieux les distances (distance euclidienne canonique) entre
LA
Cette opération est importante si les ordres de grandeur des variables sont très différents.
7
1.3. NOTIONS DE BASE
1 ... j ... p
1 (x11 − x̄1 ) . . . (x1j − x̄j ) . . . (x1p − x̄p )
..
. (x21 − x̄1 ) . . . (x2j − x̄j ) . . . (x2p − x̄p )
Y = .. ..
i . . ... ...
.. .. ..
. . .
n (xn1 − x̄1 ) . . . (xnj − x̄j ) . . . (xnp − x̄p )
1 ... j ... p
1 (x11 − x̄1 ) /σ1 . . . (x1j − x̄j ) /σj . . . (x1p − x̄p ) /σp
..
. (x21 − x̄1 ) /σ1 . . . (x2j − x̄j ) /σj . . . (x2p − x̄p ) /σp
Z= .. ..
i . . ... ...
.. .. ..
. . .
II
n (xn1 − x̄1 ) /σ1 . . . (xnj − x̄j ) /σj
MN . . . (xnp − x̄p ) /σp
Remarque 1.3.4
8
1.3. NOTIONS DE BASE
p
X
d2M (xi , xi′ ) = mj (xij − xi′ j )2
j=1
Et si M = Ip (ACP) :
— L’inertie I(Y ) du nuage centré des individus est égale à la somme des variances des p
variables.
— L’inertie I(Z) du nuage centré-réduit des individus est égal à p.
II
1.3.7 Covariance
La covariance mesure la liaison entre deux variables j et j ′ :
MN
n
1X ′
cij ′ = xij − x̄j xij ′ − x̄j
n i=1
′
cij ′ =< yj , yj >N
C = Yt NY
— Si la covariance est grande (en valeur absolue) alors les grandes valeurs de la variable
j sont associées aux grandes valeurs de la variable j ′ (en valeur absolue).
9
1.3. NOTIONS DE BASE
′
′
rjj ′ =< zj , zj >N = cos θN zj , zj
R = Zt NZ
II
cune corrélation avec la première et qui montre également la plus grande variance possible
et ainsi de suite, donc l’ACP transforme un ensemble de caractères plus ou moins corrélés en
MN
un nouvel ensemble de caractères non corrélés et d’importance décroissante appelés compo-
santes principales.
Mathématiquement le procédé consiste à rechercher les valeurs propres et les vecteurs propres
d’une matrice carrée.Pour que la transformation des coordonnées puisse s’appliquer correc-
tement, il faut que tous les caractères soient centrés.
LA
La recherche des composantes principales revient à calculer les valeurs propres et les
vecteurs propres de la matrice de corrélation.
Règle 1.3.10
10
1.3. NOTIONS DE BASE
Algorithme 1.3.11
V = (v1 , · · · , vd ) ∈ Rp×d
II
MN
LA
A.
Traitements réalisés
1. Réaliser une ACP sur un fichier de données.
2. Afficher les valeurs propres. Construire le graphique séboulis des valeurs propres.
3. Construire le cercle de corrélations.
4. Projeter les observations dans le premier plan factoriel.
5. Positionner des variables illustratives quantitatives dans le cercle de scorrélations.
6. Positionner les modalités d’une variable illustrative catégorielle.
7. Positionner des observations illustratives.
11
1.4. EXEMPLE : ACP AVEC R
II
c8 12.50 10.00 11.00 13.00 13.50 12.75 15.00 14.00
c9 13.50 15.00 12.75 10.00 12.50 11.75 10.00 15.00
MN
c10 17.00 14.25 16.00 15.75 11.75 13.00 12.50 16.75
c11 15.50 16.00 14.75 13.25 12.00 12.50 12.75 13.75
c12 13.75 16.00 17.50 13.50 16.75 17.00 16.50 15.00
c13 14.00 11.75 14.50 12.50 13.00 11.75 14.00 16.25
c14 10.50 9.50 11.75 13.00 11.00 12.50 10.00 17.00
LA
3. Présentation sommaire de R.
4. Importation des données.
5. Lancer une première analyse. Nous allons montrer comment :
— Trouver un espace de dimension faible (2 ou 3) qui permet d’observer la variation
de ses données ?
— Détecter soit des groupes d’individus homogènes ou quelques individus qui présen-
tant des observations abérantes par rapport au jeu de données ?
— Détecter les variables qui sont les plus corrélées entre elles ?
12
1.4. EXEMPLE : ACP AVEC R
II
c12 13.75 16.00 17.50 13.50 16.75 17.00 16.50 15.00
c13 14.00 11.75 14.50 12.50 13.00 11.75 14.00 16.25
c14 10.50 9.50 11.75 13.00 11.00 12.50 10.00 17.00
c15 15.50 13.25 14.00 14.00 13.75 15.00 14.50 14.00
MN
2- Effectuer une analyse univariée : Calcul de la moyenne
Les fonctions sapply applique la même fonction sur tous les éléments d ?un vecteur ou
d ?une liste.
LA
Code R 1.4.2
13
1.4. EXEMPLE : ACP AVEC R
Commentaire : Les variables Phi et ES sont très dispersées tandis que les autres variables
ont une dispersion moyenne et les variables Fr, Math sont proches de la moyenne. On peut
conclure qu’il y ait une dispersion importante du nuage.
II
MN
LA
Code R 1.4.4
> mat.cor=round(cor(note),2)
> mat.cor
14
1.4. EXEMPLE : ACP AVEC R
> mat.cov=round(cor(note),2)
> mat.cov
II
ES -0.42 -0.73 -0.22 -0.36 -0.76 -0.23 -0.60 1.39
MN
Code R 1.4.6 (Matrice des covariances)
cornote=round(cor(note),2)
cornote
library(corrplot)
LA
library(PerformanceAnalytics)
mydata <- note[, c(1,2,3,4,5,6,7,8)]
chart.Correlation(mydata, histogram=TRUE, pch=19)
A.
15
1.4. EXEMPLE : ACP AVEC R
II
6- Visualiser en trois dimensions
MN
On fait appel à la bibliothèque rgl
Code R 1.4.7
library(rgl)
rgl.open()
LA
16
1.4. EXEMPLE : ACP AVEC R
7- ACP
Fonction R : PCA() [FactoMineR].
Format simplifié :
Code R 1.4.8
> library(FactoMineR)
II
> res.pca = PCA(note, graph = TRUE)
> print(res.pca)
MN
**Results for the Principal Component Analysis (PCA)**
The analysis was performed on 15 individuals, described by 8 variables
*The results are available in the following objects:
LA
name description
1 "$eig" "eigenvalues"
2 "$var" "results for the variables"
3 "$var$coord" "coord. for the variables"
4 "$var$cor" "correlations variables - dimensions"
5 "$var$cos2" "cos2 for the variables"
A.
Commentaire : ! ! ? ?
17
1.4. EXEMPLE : ACP AVEC R
La fonction pairs()
La fonction pairs() produit une matrice de nuages ("scatterplot matrix, draftman’s plot)
et attend un matrice comme argument.
Code R 1.4.9
pairs(note,col=c(1:8))
library(GGally)
ggpairs(notec)
II
MN
LA
A.
18
1.4. EXEMPLE: ACP AVEC R
II
MN
Code R 1.4.10
> library("factoextra")
> eig.val = get_eigenvalue(res.pca)
LA
> eig.val
Code R 1.4.11
> inertie=eig.val[,2]
> inertie
19
1.4. EXEMPLE : ACP AVEC R
Dim1,..., Dim8 sont les composantes principales de l’ACP, les valeurs de la 1ere colonne
sont les valeurs propres associées aux vecteurs propres Dim1,..., Dim8.
Chaque valeur propre λs étant la variance de la séme composante principale.
La 2éme colonne représente le pourcentage de la variance c-a-d pour chaque composante s
son pourcentage de variance est λP
s ×100
λi
.
i
Code R 1.4.12
II
MN
LA
A.
Critère de Kaiser : on ne retient que les axes dont l’inertie est supérieure à l’inertie
moyenne I/p (un peu étroit).
Kaiser en ACP normée : I/p= 1 : On ne retiendra que les axes associés à des valeurs propre
supérieures à 1
Commentaire : On constate alors que la cassure (le coude) se commence à partir de la troi-
sième valeur propre ;
20
1.4. EXEMPLE : ACP AVEC R
Code R 1.4.14
summary(res.pca)
Eigenvalues
Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7 Dim.8
Variance 3.240 2.455 0.921 0.870 0.234 0.166 0.084 0.030
% of var. 40.503 30.687 11.518 10.874 2.926 2.072 1.045 0.375
Cumulative % of var. 40.503 71.190 82.708 93.582 96.508 98.580 99.625 100.000
II
c2 | 3.498 | 3.056 19.220 0.763 | 0.108 0.032 0.001 | 0.528 2.014 0.023 |
c3 | 2.604 | 2.395 11.798 0.846 | -0.146 0.058 0.003 | 0.852 5.251 0.107 |
MN
c4 | 1.357 | 1.037 2.211 0.584 | 0.506 0.695 0.139 | 0.073 0.038 0.003 |
c5 | 3.239 | -3.098 19.750 0.915 | 0.179 0.087 0.003 | -0.354 0.906 0.012 |
c6 | 2.299 | 2.028 8.461 0.778 | -0.581 0.917 0.064 | -0.069 0.035 0.001 |
c7 | 2.878 | -0.411 0.348 0.020 | 2.141 12.446 0.553 | -1.396 14.095 0.235 |
c8 | 2.893 | 1.206 2.994 0.174 | -1.425 5.515 0.243 | -1.924 26.795 0.442 |
LA
c9 | 2.976 | -0.734 1.109 0.061 | -1.608 7.021 0.292 | -0.512 1.899 0.030 |
c10 | 3.195 | -2.392 11.774 0.561 | 0.800 1.737 0.063 | 1.494 16.144 0.219 |
Variables
A.
21
1.4. EXEMPLE : ACP AVEC R
II
Contribution des individus :
On rappelle que la contribution d’un individu d’un individu i par la composante s est Contribs (i) =
MN
Fs (i)2
pλs
ou p est le nombre d’individus.
Plus la contribution est grande, plus la représentation est meilleure.
Fs (i)2
QLTs (i) = P 2
= cos(θ)2
F
t t (i)
A.
Pour connaître la qualité de représentation d’un individu, on suit les règles énoncées dans
le tableau ci-contre :
22
1.4. EXEMPLE : ACP AVEC R
plan principal.
Les individus qui participent le plus à la formation du premier axe sont ceux qui ont une
contribution supérieure à la moyenne c.-à-d. supérieure à 100
15
% = 6.66667 (res.pca$call)
Code R 1.4.15
II
> fviz_contrib(res.pca, choice = "ind", axes = 1, top = 15)
> fviz_contrib(res.pca, choice = "ind", axes = 2, top = 15)
MN
LA
A.
Code R 1.4.16
Les individus qui contribuent le plus à la formation de l’axe 1 se caractérisent par des résul-
tats meilleurs dans l’une des deux disciplines et moyens dans l’autre.
23
1.4. EXEMPLE : ACP AVEC R
Or les individus qui contribuent à la formation de deuxième axe se caractérisent par des ré-
sultats homogènes dans toutes les matières, bonnes ou moyennes.
II
Pour l’axe 1 on constate que les points individus 1, 2, 3, 5 et 10 sont éloignés de l’origine
MN
ce qui justifie leur bonne qualité de représentation, ainsi ils sont très proches de cet axe ce
qui justifie leur importante contribution à la formation de cet axe.
De même pour l’axe 2 les individus 14, 7 et 12 sont très éloignés de l’origine donc ils ont
une bonne qualité de représentation dans cet axe, ils sont ainsi proches de cet axe chose qui
LA
Les deux individus 2 et 5 s’opposent par rapport au deuxième axe ce qui traduit que leurs
résultats des différentes matières le sont.
Les trois individus 1, 5 et 10 sont proches, ils ont alors une ressemblance réelle de point de
vue des variables, ces trois individus se caractérisent par des bons résultats aux disciplines
littéraires et moyens aux disciplines scientifiques, il en est de même pour le groupe {2, 3, 6}
mais celui-là a par contre des résultats meilleurs en math, PC et SVT et moyens en arabe,
24
1.4. EXEMPLE: ACP AVEC R
français et anglais.
La qualité de représentation des individus sur la carte de l’ACP s’appelle cos2 (cosinus
carré) . Vous pouvez accéder au cos2 comme suit :
Code R 1.4.17
head(res.pca$ind$coord, 4)
library("corrplot")
corrplot(res.pca$ind$cos2, is.corr=FALSE)
II
MN
LA
De même que pour les individus on n’interprète que les variables qui sont bien représen-
A.
tées.
Pour cela on étudie la qualité de représentation de chaque variable ainsi que leur contribution
à la formation des deux axes principaux, on a alors le tableau suivant fournie par L’ACP :
Code R 1.4.18
> summary(res.pca)
Variables
Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
Ar | -0.800 19.767 0.640 | 0.492 9.872 0.242 | 0.018 0.036 0.000 |
Fr | -0.507 7.928 0.257 | 0.604 14.838 0.364 | 0.084 0.769 0.007 |
Ang | -0.321 3.180 0.103 | 0.833 28.297 0.695 | 0.364 14.413 0.133 |
Phi | -0.568 9.956 0.323 | 0.409 6.811 0.167 | -0.078 0.664 0.006 |
Math | 0.840 21.756 0.705 | 0.493 9.900 0.243 | -0.030 0.100 0.001 |
PC | 0.788 19.173 0.621 | 0.488 9.689 0.238 | 0.214 4.976 0.046 |
25
1.4. EXEMPLE : ACP AVEC R
SVT | 0.768 18.209 0.590 | 0.502 10.271 0.252 | 0.017 0.032 0.000 |
ES | -0.031 0.030 0.001 | -0.503 10.324 0.253 | 0.853 79.011 0.728 |
Les variables qui contribuent le plus à la formation sont ceux qui ont une contribution supé-
rieure à la moyenne c.-à-d. supérieure à 1008
% = 12.5 (summary(res.pca$eig))
II
Code R 1.4.19
La qualité de représentation des variables sur la carte de l’ACP s’appelle cos2 (cosinus
carré) . Vous pouvez accéder au cos2 comme suit :
Code R 1.4.20
head(res.pca$ind$coord, 4)
library("corrplot")
corrplot(res.pca$var$cos2, is.corr=FALSE)
26
1.4. EXEMPLE : ACP AVEC R
II
MN
LA
A.
Code R 1.4.21
Le cercle des corrélations montre que les deux variables phi et ES (éducation sportive)
sont mal représentées dans le plans principales car ils sont éloignées du cercle et que toutes
les autres variables sont bien représentées dans ce plan.
On peut résumer les résultats de contributions des individus et des variables à la formation
27
1.4. EXEMPLE : ACP AVEC R
II
Contribution pour l’axe 1 Contribution pour l’axe 2
Lesvariables Ar, M ath, P C, SV T Ang
Lesindividus 1, 2, 3, 5, 10 7, 12, 14
MN
Chaque individus de l’ensemble { 1, 2, 3, 5, 10} a soit des résultats meilleures en arabe et moyennes en math , PC et SVT soit l’inverse, et
ils ont en générale des bons résultats en une discipline et moyenne à l’autre, par contre, les individus 7 12 14 ont des résultats homogènes
dans toutes les matières et la note d’anglais est la plus fortes pour le 7 et le 12 (resp. 16 et 17.5)
De ces constatation on peut dire que l’axe 1 correspond aux étudiants qui sont soit littéraires soit scientifique et l’axe 2 correspond à ceux
qui ont des scores presque identique dans tous les modules.
LA
Les trois variables Math, PC et SVT sont très corrélées entre elles, la corrélation étant positive ce qui justifie que les trois variables
agissent dans le même sens pour les individus c.-à-d. qu’une bonne note dans l’un de ces trois modules s’accompagne par des bonnes notes
aux deux autres et inversement.
L’examen de la matrice des corrélations ci-dessous nous indique que les deux disciplines littéraire et scientifique sont corrélées négati-
vement et les modules de même discipline sont corrélés positivement, ce qui signifie que les deux groupes de modules s’opposent pour les
A.
Code R 1.4.22
> mat.cor=round(cor(note),2)
> mat.cor
28
Chapitre 2
2.1 Introduction
L’analyse des correspondances (AFC ou ACM) étudie les proximités entre individus décrits
par deux ou plusieurs variables qualitatives ainsi que les proximités entre les modalités de
ces variables.
C’est une extension de l’analyse en composantes principales pour analyser l’association entre
deux variables qualitatives (ou catégorielles).
II
MN
Les données
But
LA
— L’AFC consiste à remplacer un tableau de nombres difficile à analyser par une série de
tableaux plus simples qui sont une bonne approximation de celui-ci.
— Les tableaux sont simples car ils sont exprimables sous forme de graphiques.
— Factorielle = mise en facteur du tableau initial.
29
2.2. TABLEAU DE CONTINGENCE
II
MN
2.2 Tableau de contingence
L’AFC s’applique au tableau de contingence.
Définition 2.2.1
LA
et Y=salaires.
30
2.3. TABLEAU DES FRÉQUENCES
Exemple 2.2.2
II
[22, 24[(i = 2) 28 46 74
[24, 26[(i = 3) 20 86 106
MN
Total 62 138 200
— ni,j désigne l’effectif partiel. Exemple : n1,2 salariés sont âgés entre 20 et 22 ans et ont
un salaire compris entre 1000 et 1200
— ni,• l’effectif marginal de X (eff. total en lignes)
— n•,j l’effectif marginal de Y (eff. total en colonnes)
Exemple : n2,• = 74 salariés sont âgés entre 22 et 24 ans
A.
31
2.3. TABLEAU DES FRÉQUENCES
1... j ...J
1
.. ..
. .
nij
i ... fij = n
... fi•
.. ..
. .
I
f•j
II
Définition 2.3.4 (coordonnées du profil-ligne moyen)
n•j
MN
f•j = n••
1... j ...J
1
LA
.. ..
. .
nij fij
i ... f lij = ni•
= fi•
...
.. ..
. .
I
A.
32
2.3. TABLEAU DES FRÉQUENCES
1... j ...J
1
.. ..
. .
nij fij
i ... f cij = n•j
= f•j
...
.. ..
. .
I
X (f l1j − f l2j )2
dχ2 (L1 , L2 ) =
j f•j
II
Définition 2.3.10 (Distance entre deux lignes. Métrique Euclidienne)
MN
X
dχ2 (L1 , L2 ) = (f l1j − f l2j )2
j
LA
Représente les écarts entre les valeurs théoriques en cas d’indépendance et les va-
leurs observées
fij − fi• f•j
tij =
A.
fi• f•j
33
2.4. PRINCIPES GÉNÉRAUX DE L’AFC : MÉTHODOLOGIE
Définition 2.3.13
X (f l1j − f l2j )2
dχ2 (L1 , L2 ) =
j f•j
2
X (fij − fi• f•j )2
χ =
ij fi• f•j
Cette statistique vaut 0 ou proche 0 si les données observées vérifient le modèle
d’indépendance.
II
L’analyse factorielle des correspondances vise à rassembler en un nombre réduit de di-
mensions la plus grande partie de l’information initiale en s’attachant non pas aux valeurs
MN
absolues mais aux correspondances entre les variables, c’est-à-dire aux valeurs relatives.
Remarque 2.4.1
Il s’agira d’analyser les deux nuages de points pondérés c’est à dire le nuage des
profil-lignes (les lignes de la matrice L) et le nuage des profil-colonnes (les colonnes
de la matrice C).
On va donc analyser les lignes et les colonnes de deux matrices différentes.
A.
nij
— Matrice des fréquences (r lignes, s colonnes (r ≤ s) : fij = n•,•
— Matrice de liaison : Mij = f√
ij −fi• f•j
(Mij = √ fij )
fi• f•j fi• f•j
— V = M ′ M (matrice basse) ou M M ′ (matrice haute) et X ′ est la transposée de la
matrice X.
— Soit D, la diagonalisation de la matrice V . Recherche des valeur propres de V . Det(V −
λI) = 0
— Projection de M par D : Produit matricielle : AF C = M ′ D
34
2.5. EXEMPLE : AFC AVEC R
Cette commande renvoie des valeurs qui permettent de valider ou non l’hypothèse nulle
(cf. ci-dessus χ2 de conformité et d’indépendance).
II
— # résultats observés
khi_test$observed
MN
— # différence entre résultats attendus et observés
khi_test$residual
— Prix Nobel
tages) des différentes lignes sont voisins ? Y a-t-il au contraire des pays qui s’opposent
(résultats très différents) ?
— Y a-t-il des domaines qui se ressemblent, c’est-à-dire dans lesquels les résultats (en
pourcentages) des différentes colonnes sont voisins ? Y a-t-il au contraire des domaines
qui s’opposent (résultats très différents) ?
35
2.5. EXEMPLE : AFC AVEC R
II
USA 51 43 8 70 19 66 13
Afrique 1 0 5 3 8 2 1
MN
Amerique 56 47 18 78 25 70 15
Asie 17 2 10 7 16 19 7
Europe 94 26 79 110 51 103 34
Oceanie 3 0 0 9 0 2 2
LA
2- Distance chisq.test
chisqNoble < − chisq.test (noble)
chisqNoble
data: noble
X-squared = 234.07, df = 72, p-value < 2.2e-16
Comme la p-value est très faible, on rejette l’hypothèse nulle. Les variables sont liées.
chisqNoble$observed
36
2.5. EXEMPLE : AFC AVEC R
chisqNoble$expected
chisqNoble$residuals
II
MN
LA
A.
37
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
38
2.5. EXEMPLE : AFC AVEC R
Allem Canada France GB Italie Japon Russie USA Afrique Amerique Asie Europe
0.05 0.01 0.04 0.06 0.01 0.02 0.02 0.18 0.01 0.20 0.05 0.32
c <- apply(F,2,sum)
round(c,digit=2)
Chimie Economie Litterature Medecine Paix Physique Mathematiques
0.19 0.09 0.11 0.23 0.10 0.23 0.07
II
MN
LA
A.
39
2.5. EXEMPLE : AFC AVEC R
L <- sweep(F,1,STAT=r,FUN="/")
round(L,digits=2)
II
Europe 0.19 0.05 0.16 0.22 0.10 0.21 0.07
Oceanie 0.19 0.00 0.00 0.56 0.00 0.12 0.12
MN
Distributions conditionnelles en colonne
C <- sweep(F,2,STAT=c,FUN="/")
round(C,digits=2)
Chimie Economie Litterature Medecine Paix Physique Mathematiques
LA
40
2.5. EXEMPLE : AFC AVEC R
8- CA
Code R 2.5.1 (CA)
library ("FactoMineR")
res.ca = CA (noble, ncp=2, graph = TRUE)
summary(res.ca)
II
Call:
CA(X = noble, ncp = 1, graph = TRUE)
MN
The chi square of independence between the two variables is equal to 234.0661
(p-value = 5.03391e-19 ).
LA
Eigenvalues
Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6
Variance 0.079 0.026 0.020 0.016 0.010 0.002
% of var. 51.670 17.349 13.211 10.191 6.344 1.235
Cumulative % of var. 51.670 69.019 82.230 92.421 98.765 100.000
A.
Call:
CA(X = noble, ncp = 2, graph = TRUE)
The chi square of independence between the two variables is equal to 234.0661
(p-value = 5.03391e-19 ).
Eigenvalues
41
2.5. EXEMPLE : AFC AVEC R
II
Afrique | 18.448 | 0.882 12.860 0.550 | 0.048 0.113 0.002 |
Amerique | 15.898 | -0.262 17.602 0.873 | 0.071 3.807 0.063 |
MN
Columns
Iner*1000 Dim.1 ctr cos2 Dim.2 ctr cos2
Chimie | 8.717 | -0.062 0.938 0.085 | -0.151 16.474 0.501 |
Economie | 35.687 | -0.529 31.254 0.691 | 0.287 27.309 0.203 |
LA
42
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
Nous examinons les valeurs propres pour déterminer le nombre d’axes à considérer.
A.
Les valeurs propres et la proportion des variances retenues par les différents axes peuvent
être extraites en utilisant la fonction get_eigenvalue() [package factoextra].
Les valeurs propres sont grandes pour le premier axe et petites pour l’axe suivant.
library ("factoextra")
eig.val = get_eigenvalue (res.ca)
eig.val
eigenvalue variance.percent cumulative.variance.percent
Dim.1 0.078891963 51.669765 51.66976
Dim.2 0.026489705 17.349256 69.01902
Dim.3 0.020171440 13.211150 82.23017
Dim.4 0.015559814 10.190796 92.42097
Dim.5 0.009687010 6.344442 98.76541
Dim.6 0.001885035 1.234591 100.00000
Les dimensions sont ordonnées de manière décroissante et listées en fonction de la quan-
tité de variance expliquée.
La dim.1 explique la plus grande variance, suivie de la dim.2 ...
43
2.5. EXEMPLE : AFC AVEC R
Le pourcentage cumulé expliqué est obtenu en ajoutant les proportions successives de va-
riances expliquées pour obtenir le total courant.
Par exemple, 51.669765% + 17.349256% + 13.211150% = 82.23017%, Donc environ 82.23017%
de la variance totale est expliquée par les 3 premières dimensions.
Il n’y a pas de ńrègle générależ pour choisir le nombre de dimensions à conserver pour
l’interprétation des données.
Cela dépend de la question et du besoin du chercheur. Par exemple, si vous êtes satisfait avec
80% des variances totales expliquées, utilisez le nombre de dimensions nécessaires pour y
parvenir.
Notez qu’une analyse est bonne lorsque les premières dimensions représentent une grande
partie de la variabilité.
Une autre méthode pour déterminer le nombre de dimensions est de regarder le gra-
phique des valeurs propres (scree plot), ordonnées de la plus grande à la plus petite valeur.
II
Le nombre d’axes est déterminé par le point point, au-delà duquel les valeurs propres res-
tantes sont toutes relativement petites et de tailles comparables.
MN
fviz_screeplot (res.ca, addlabels = TRUE, ylim = c(0, 60))
LA
A.
Si les données étaient aléatoires, la valeur attendue de la valeur propre pour chaque axe
serait :
1 1
= = 8.3333% en termes de lignes.
nrow(noble) − 1 12
44
2.5. EXEMPLE : AFC AVEC R
1 1
= = 16.6667% en termes de colonnes.
ncol(noble) − 1 6
On pourra faire l’interprétation axe par axe pour les lignes et pour les colonnes.
On commence par dresser des tables où on résume d’abord les lignes et ensuite les colonnes
qui ont des contributions supérieures à la moyenne de la formation de l’axe. res.ca$row$cos2[,1 :3]
II
Russie 0.199758812 0.540537137 2.527436e-01
MN
USA 0.940201611 0.042982153 5.808895e-03
Afrique 0.549971110 0.001628815 4.093232e-01
Amerique 0.873499107 0.063439393 5.349969e-02
Asie 0.575871453 0.001712677 1.119165e-02
Europe 0.742380349 0.108412629 1.099680e-03
LA
res.ca$row$coord[,1 :3]
res.ca$row$contrib[,1 :3]
45
2.5. EXEMPLE : AFC AVEC R
Les figures suivantes montrent les lignes qui ont des contributions considérables :
La ligne qui a une contribution considérable est celle de barre dépassant la ligne rouge.
II
fviz_contrib(res.ca, choice = "row", axes = 1, top = 13)
fviz_contrib(res.ca, choice = "row", axes = 2, top = 13)
MN
fviz_contrib(res.ca, choice = "row", axes = 3, top = 13)
LA
A.
res.ca$col$cos2[,1 :3]
res.ca$col$coord[,1 :3]
46
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
res.ca$col$contrib[,1 :3]
47
2.5. EXEMPLE : AFC AVEC R
Les figures suivantes montrent les colonnes qui ont des contributions considérables :
fviz_contrib(res.ca, choice = "col", axes = 1, top = 7)+
+ theme(axis.text.x = element_text(angle=45))
fviz_contrib(res.ca, choice = "col", axes = 2, top = 7)+
+ theme(axis.text.x = element_text(angle=45))
fviz_contrib(res.ca, choice = "col", axes = 3, top = 7)+
+ theme(axis.text.x = element_text(angle=45))
II
MN
LA
A.
On résume dans le tableau suivant les lignes et les colonnes qui contribuent à la formation
de l’axe 1 dont leurs qualités de représentation (cos2 (θ)) est proche de 1 en précisant le signe
donnant le sens de la contribution.
48
2.5. EXEMPLE : AFC AVEC R
II
USA France − +
Amerique Europe Economie Litterature
MN
Asie Paix
Afrique
L’axe 1, oppose le lignes ’France’, ’Europe’, ’Asie’ et ’Afrique’ aux lignes ’USA’ et ’Amerique’.
L’axe 1, oppose les colonnes ’Litterature’ et ’Paix’ à la colonne ’Economie’.
La synthèse entre l’analyse des lignes et des colonnes associe les pays ’France’, ’Europe’, ’Asie’
LA
et ’Afrique’ aux prix nobel ’Litterature’ et ’Paix’ et les pays ’USA’ et ’Amerique’ aux prix nobel
’Economie’. (voir figure)
On résume dans le tableau suivant les lignes et les colonnes qui contribuent à la formation
de l’axe 2 dont leurs qualités de représentation (cos2 (θ)) est proche de 1 en précisant le signe
A.
49
2.5. EXEMPLE : AFC AVEC R
− +
Japon Afrique − +
Russie Mathematiques Paix
Allemagne Physique
fviz_ca_biplot (res.ca, axes = c(1, 2), map = "colgreen", arrow = c (TRUE, TRUE), repel
= TRUE)
fviz_ca_biplot (res.ca, axes = c(1, 3), map = "colgreen", arrow = c (TRUE, TRUE), repel =
TRUE)
II
fviz_ca_biplot (res.ca, axes = c(2, 3), map = "colgreen", arrow = c (TRUE, TRUE), repel =
MN
TRUE)
LA
A.
Dans le graphique (biplot), les points qui contribuent très peu à la solution sont proches
du centre du biplot et sont relativement peu importants pour l’interprétation.
corrplot(row$cos2[,1 :3], is.corr = TRUE)
corrplot(col$cos2[,1 :3], is.corr = TRUE)
50
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
51
2.5. EXEMPLE : AFC AVEC R
II
Canada -0.1948375
> # Description de la dimension 1 par les 4 premières colonnes
MN
> head(res.desc[[1]]$col, 4)
coord
Economie -0.52914087
Medecine -0.16680745
Chimie -0.06233722
LA
Physique -0.05832033
coord
Allemagne -0.39774460
GB -0.15711075
Oceanie -0.14369882
Italie -0.08454396
Europe -0.06903571
Japon -0.05381460
Asie 0.02113544
Afrique 0.04799134
Canada 0.06113922
Amerique 0.07073538
USA 0.07511416
France 0.30007248
Russie 0.61234190
52
2.5. EXEMPLE : AFC AVEC R
coord
Chimie -0.15136269
Medecine -0.08106516
Litterature -0.05877768
Physique -0.02895130
Paix 0.05861028
Economie 0.28661399
Mathematiques 0.43368511
3D
library(rgl) plot3d(res.ca$row$contrib[,1], res.ca$row$contrib[,2], res.ca$row$contrib[,3],
type="s",radius=1.8,col="red")
II
MN
LA
A.
53
2.5. EXEMPLE : AFC AVEC R
II
Afrique 0.013 0.000 0.088 0.036 0.146 0.024 0.022
Amerique 0.186 0.230 0.081 0.238 0.116 0.214 0.084
MN
Asie 0.113 0.019 0.089 0.043 0.147 0.116 0.078
Europe 0.247 0.100 0.279 0.265 0.186 0.249 0.151
Oceanie 0.044 0.000 0.000 0.121 0.000 0.027 0.050
> dt = as.table(as.matrix (T))
LA
A.
summary(T)
Chimie Economie Litterature Medecine Paix Physique Mathematiques
Min. :0.0130 Min. :0.00000 Min. :0.00000 Min. :0.0180 Min. :0.00000 Min. :0.0240 Min. :0.01100
1st Qu.:0.0440 1st Qu.:0.01000 1st Qu.:0.03800 1st Qu.:0.0430 1st Qu.:0.01900 1st Qu.:0.0600 1st Qu.:0.02300
Median :0.0690 Median :0.03200 Median :0.07000 Median :0.0810 Median :0.09100 Median :0.1090 Median :0.05800
Mean :0.1009 Mean :0.06069 Mean :0.08062 Mean :0.1093 Mean :0.07854 Mean :0.1135 Mean :0.06938
3rd Qu.:0.1560 3rd Qu.:0.05900 3rd Qu.:0.08900 3rd Qu.:0.1420 3rd Qu.:0.11600 3rd Qu.:0.1440 3rd Qu.:0.08400
Max. :0.2470 Max. :0.23000 Max. :0.27900 Max. :0.2650 Max. :0.18600 Max. :0.2490 Max. :0.15100
> summary(t(T))
Allemagne Canada France GB Italie Japon Russie
Min. :0.01000 Min. :0.01900 Min. :0.03200 Min. :0.04000 Min. :0.01300 Min. :0.0000 Min. :0.01800 Mi
1st Qu.:0.02800 1st Qu.:0.02950 1st Qu.:0.06000 1st Qu.:0.05400 1st Qu.:0.01850 1st Qu.:0.0235 1st Qu.:0.04000 1s
54
2.5. EXEMPLE : AFC AVEC R
Median :0.07000 Median :0.04900 Median :0.08100 Median :0.09100 Median :0.02200 Median :0.0320 Median :0.04300 Me
Mean :0.07757 Mean :0.04129 Mean :0.08271 Mean :0.08957 Mean :0.04257 Mean :0.0460 Mean :0.06371 Me
II
3rd Qu.:0.12550 3rd Qu.:0.05150 3rd Qu.:0.10500 3rd Qu.:0.12300 3rd Qu.:0.06000 3rd Qu.:0.0635 3rd Qu.:0.07800 3r
Max. :0.15600 Max. :0.05900 Max. :0.13600 Max. :0.14200 Max. :0.10600 Max. :0.1160 Max. :0.14900 Ma
Amerique Asie Europe Oceanie
MN
Min. :0.0810 Min. :0.01900 Min. :0.1000 Min. :0.00000
1st Qu.:0.1000 1st Qu.:0.06050 1st Qu.:0.1685 1st Qu.:0.00000
Median :0.1860 Median :0.08900 Median :0.2470 Median :0.02700
Mean :0.1641 Mean :0.08643 Mean :0.2110 Mean :0.03457
3rd Qu.:0.2220 3rd Qu.:0.11450 3rd Qu.:0.2570 3rd Qu.:0.04700
Max. :0.2380 Max. :0.14700 Max. :0.2790 Max. :0.12100
LA
library(PerformanceAnalytics)
dt1= as.table(as.matrix (t(T)))
mydata <- dt[, c(1:7)]
mydata1 <- dt1[, c(1:13)]
A.
55
2.5. EXEMPLE : AFC AVEC R
> library(FactoMineR)
> NdtPCA = PCA(T, graph = TRUE)
> print(NdtPCA)
**Results for the Principal Component Analysis (PCA)**
The analysis was performed on 13 individuals, described by 7 variables
*The results are available in the following objects:
name description
1 "$eig" "eigenvalues"
2 "$var" "results for the variables"
3 "$var$coord" "coord. for the variables"
4 "$var$cor" "correlations variables - dimensions"
5 "$var$cos2" "cos2 for the variables"
6 "$var$contrib" "contributions of the variables"
7 "$ind" "results for the individuals"
II
8 "$ind$coord" "coord. for the individuals"
9 "$ind$cos2" "cos2 for the individuals"
MN
10 "$ind$contrib" "contributions of the individuals"
11 "$call" "summary statistics"
12 "$call$centre" "mean of the variables"
13 "$call$ecart.type" "standard error of the variables"
14 "$call$row.w" "weights for the individuals"
LA
name description
1 "$eig" "eigenvalues"
2 "$var" "results for the variables"
3 "$var$coord" "coord. for the variables"
4 "$var$cor" "correlations variables - dimensions"
5 "$var$cos2" "cos2 for the variables"
6 "$var$contrib" "contributions of the variables"
7 "$ind" "results for the individuals"
8 "$ind$coord" "coord. for the individuals"
9 "$ind$cos2" "cos2 for the individuals"
10 "$ind$contrib" "contributions of the individuals"
11 "$call" "summary statistics"
12 "$call$centre" "mean of the variables"
56
2.5. EXEMPLE : AFC AVEC R
II
MN
> CornbT=round(cor(T),2) # line
> CornbT
Chimie Economie Litterature Medecine Paix Physique Mathematiques
LA
> library("factoextra")
> eig.val = get_eigenvalue(NdtPCA)
57
2.5. EXEMPLE : AFC AVEC R
> eig.val
eigenvalue variance.percent cumulative.variance.percent
II
Dim.1 4.25380193 60.7685990 60.76860
Dim.2 1.30728436 18.6754908 79.44409
Dim.3 0.65994198 9.4277425 88.87183
MN
Dim.4 0.38714323 5.5306176 94.40245
Dim.5 0.22588584 3.2269405 97.62939
Dim.6 0.14592346 2.0846208 99.71401
Dim.7 0.02001921 0.2859887 100.00000
> inertie=eig.val[,2]
> inertie
Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
LA
> head(NdtPCA$ind$coord, 4)
Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
Allemagne -0.2928395 -0.7752210 -1.11038451 -0.94763607 -0.5248827
Canada -1.8480760 -0.7532494 -0.08966275 0.04534612 0.2698616
France -0.2351848 1.5052489 0.93682698 0.31001907 0.2208324
GB 0.1164520 -0.5315559 -0.65468342 0.08801349 -0.1808102
> library("corrplot")
> corrplot(NdtPCA$var$cos2, is.corr=FALSE)
> fviz_pca_var(NdtPCA, col.var = "cos2",gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE)
> fviz_pca_ind(NdtPCA , geom =c("point","text"),habillage = 7)
> #avec le package factoextra#
> p=fviz_pca_biplot(NdtPCA,habillage = 2)
> fviz_pca_ind(NdtPCA, pointsize = "cos2", pointshape = 21, fill = "#E7B800", repel = TRUE, addEllipses = TRUE)
58
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
59
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
60
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
61
2.5. EXEMPLE : AFC AVEC R
II
MN
LA
A.
62
Chapitre 3
Classification
3.1 Introduction
Action de ranger par classes, par catégories des choses présentant des critères en commun.
Le but de la classification automatique est de découper l’ensemble des données étudiées en
un ou plusieurs sous-ensembles nommés classes, chaque sous-ensemble devant être le plus
homogène possible. Les membres d’une classe ressemblent plus aux autres membres de la
même classe qu’aux membres d’une autre classe. Deux types de classification peuvent être
relevés : d’une part la classification (partitionnement ou recouvrement) ń à plat ż et d’autre
part le partitionnement hiérarchique. Dans les deux cas, classifier revient à choisir une mesure
II
de la similarité/dissimilarité, un critère d’homogénéité, un algorithme, et parfois un nombre
de classes composant la partition (wikipedia).
MN
Qu’est-ce que la classification ?
— La classification automatique (cluster analysis ou clustering en anglais) cherche à ré-
partir un ensemble donné de N observations en groupes (catégories, classes, clusters)
LA
But
— Classer en groupes (les plus homogènes possibles) des unités statistiques en partant
d’un ensemble de variables.
— Identifier des groupes d’individus ayant un comportement homogène.
Définition 3.1.1
Hypothèse 3.1.2
63
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Représentation
La représentation synthétique peut être :
— une typologie,
— une partition,
— une hiérarchie de partitions (arbre hiérarchique),
— une hiérarchie de recouvrements (pyramide).
II
MN
3.2 Classification supervisé et non supervisé
La classification automatique consiste à regrouper divers objets (les individus) en sous-
ensembles d’objets (les classes). Elle peut être : supervisée et non supervisée :
LA
Classification Supervisé
— Essayer de prédire une information spécifique
— Disposer d’un modèle (training set) avec des étiquettes(labels)
— On peut mesurer la précision directement
A.
64
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Français Anglais
Classification Clustering
Classement Classification
Opposition
— supervisé (classement) : groupes fixés, exemples d’objets de chaque groupe
— non supervisé (classification) : on ne connaît pas de groupe
Classification Supervisé
— On dispose d’éléments déjà classés
II
— Exemple : articles en rubrique cuisine, sport, culture...
On veut classer un nouvel élément
MN
Attribuer un nom parmi cuisine, sport, culture...
Définition 3.2.3
65
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Définition 3.2.4
66
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
67
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
On donne :
— X, un ensemble de données,
— K, le nombre des plus proches voisins de cet ensemble de données à retrouver,
— x l’ensemble de données à traiter,
— L’idée est de chercher x1 · · · xk les K plus proches voisins de x dans X et de
retourner.
— L’algorithme des k plus proches voisins est souvent utilisé dans les méthodes
d’apprentissage supervisé pour le raisonnement à partir de cas. La phase d’ap-
prentissage consiste à stocker les exemples de cas résolus. Le classement de
nouveaux cas s’opère en calculant la distance entre les critères de description
des données du cas à traiter et ceux des exemples de la mémoire d’apprentis-
sage.
II
Algorithme 3.2.12 (K-NN)
MN
# fonction qui va retourner la liste des k kvoisins
# les plus proches d’un élément du plus proche au plus lointain.
fonction k_plus_proches_voisins,
paramètres: liste des objets connus
nouvel objet
k: nombre de voisins
Pour tous les objets connus calculer la distance entre objet connu et nouvel objet
LA
nouvel objet
k: nombre de voisins
kppv = k_plus_proches_voisins(liste objets connus,nouvel objet, k)
initialiser compteur_etiquette à [0] * nombre d’étiquettes différentes
(liste donc de 0)
pour tous les éléments de kppv
pour i de 0 au nombre d’étiquettes-1
si étiquette de l’élément égal à étiquette[i]
ajouter 1 à compteur_etiquette[i]
renvoyer (etiquette[index_maxi(compteur_etiquette)])
En 1936, Edgar Anderson a collecté des données sur 3 espèces d’iris : "iris setosa", "iris
virginica" et "iris versicolor".
68
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Le jeu de données IRIS est constitué de 150 données. 150 fleurs (des iris) sont décrites par
5 variables. L’une d’elles est catégorielle et décrit le type d’iris (setosa, versicolor, virginica)
est la variable d’intérêt.
II
(a) iris setosa (b) iris virginica (c) iris versicolor
MN
LA
A.
69
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Données
# Chargement bibliothèque library(knitr)
library(class)
library(tidyverse)
library(GGally)
# Premières rangées
head(iris)
Visualisation de 2 variables
II
MN
plot(iris\$Petal.Length, iris\$Petal.Width, pch=21, bg=c("red","green3","blue")
[unclass(iris\$Species)], main="Les données Iris de Edgar Anderson")\\
legend(x = "topleft", legend = levels(iris\$Species), col=c("red","green3","blue"),
pch = 19)
LA
A.
70
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Nous obtenons des "nuages" de points, on remarque ces points sont regroupés par espèces
d’iris (sauf pour "iris virginica" et "iris versicolor", les points ont un peu tendance à se mélan-
ger).
Imaginez maintenant qu’au cours d’une promenade vous trouviez un iris, n’étant pas un
spécialiste, il ne vous est pas vraiment possible de déterminer l’espèce.
Vous êtes capables de mesurer la longueur et la largeur des pétales de cet iris.
Partons du principe qu’un pétale fasse 0,5 cm de large et 2 cm de long.
Plaçons cette nouvelle donnée sur notre graphique :
points(2.0, 0.5, pch=10, col="black", cex=2)
il y a de fortes chances que votre iris soit de l’espèce "iris setosa" (voir figure). Il est possible
II
MN
LA
A.
de rencontrer des cas plus difficiles, par exemple : largeur du pétale = 0,75 cm ; longueur du
pétale = 2,5 cm.
Dans ce genre de cas, il peut être intéressant d’utiliser l’algorithme des "k plus proches
voisins" :
— on calcule la distance entre notre point (largeur du pétale = 0,75 cm ; longueur du
pétale = 2,5 cm) et chaque point issu du jeu de données "iris" (à chaque fois c’est un
calcul de distance entre 2 points tout ce qu’il y a de plus classique)
— on sélectionne uniquement les k distances les plus petites (les k plus proches voisins)
— parmi les k plus proches voisins, on détermine quelle est l’espèce majoritaire. On asso-
71
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
cie à notre "iris mystère" cette "espèce majoritaire parmi les k plus proches voisins"
II
MN
Classification : knn de R
LA
Usage
kNN(form, train, test, norm = T, norm.stats = NULL, ...)
Arguments
— form : Un objet la forme fonctionnelle du modèle de classification.
A.
72
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
print(spec_new_iris)
[1] setosa
Levels : setosa versicolor virginica
On obtient le même résultat :
— train contient la partie du data frame utilisé pour l’apprentissage (les 150 iris de la
base, décrits par les 4 premières colonnes/variables)
— test contient les descripteurs de notre nouvel iris
— cl contient les valeurs de la variable d’intéret pour notre échantillon d’apprentissage
(Species)
— k est le nombre de voisins (le paramètre de l’algorithme, ici, 3)
II
jeu de données en sous-groupes). Par exemple :
mutate(Species=fct_recode(Species, "Setosa"="setosa",
"Versicolor"="versicolor",
"Virginica"="virginica"))
# Histogram for each species
A.
iris2 %>%
gather(Attributes, Value, 1:4) %>%
ggplot(aes(x=Value, fill=Attributes)) +
geom_histogram(colour="black") +
facet_wrap(~Species) +
theme_bw() +
labs(x="Values", y="Frequency",
title="Iris data set",
subtitle="Histogram for each species") +
theme(legend.title=element_blank(),
legend.position="bottom")
73
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
facet_wrap(~Attributes, scales="free_x") +
labs(x="Values", y="Density",
MN
title="Iris data set",
subtitle="Density plot for each attribute") +
theme_bw() +
theme(legend.position="bottom",
legend.title=element_blank())
LA
A.
74
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
— La valeur centrale du graphique est la médiane (il existe autant de valeur supérieures
qu’inférieures à cette valeur dans l’échantillon).
— Les bords du rectangle sont les quartiles (Pour le bord inférieur, un quart des observa-
tions ont des valeurs plus petites et trois quart ont des valeurs plus grandes, le bord
supérieur suit le même raisonnement).
— Les extrémités des moustaches sont calculées en utilisant 1.5 fois l’espace interquartile
II
(la distance entre le 1er et le 3ème quartile).
La boîte à moustache est une méthode rapide pour représenter et résumer le profil d’une
MN
variable continue.
On peut remarquer que 50% des observations se trouvent à l’intérieur de la boîte.
Les valeurs à l’extérieur des moustaches sont représentées par des points. On ne peut pas dire
que si une observation est à l’extérieur des moustaches alors elles est une valeur aberrante.
Par contre, cela indique qu’il faut étudier plus en détail cette observation.
LA
75
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
theme(axis.title.y=element_blank(),
axis.title.x=element_blank())
II
MN
LA
A.
76
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
sur un attribut de description.
— Les arcs contiennent les résultats du test.
MN
— Les feuilles sont étiquetés par une classe par défaut.
CART est une méthode non-paramétrique efficace, simple à implémenter et utilisable à la fois
en régression et en classification.
Le principe général de CART est de construire une règle de prédiction au moyen d’un parti-
LA
Exemple
library(rpart)
library(rpart.plot)
arbre.classif<-rpart(Species ~ . ,iris)
rpart.plot(arbre.classif)
library("partykit")
#bodyfat_rpart <- rpart(iris$Species ~ .,data = iris,control =
77
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
rpart.control(minsplit = 10,cp=0.01))
#bodyfat_rpart <- rpart(iris$Petal.Length ~ .,data = iris,control =
rpart.control(minsplit = 10,cp=0.01))
LA
78
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
79
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
Dans ce cas, la plupart des clusters seront générés sur la base de la dernière fonctionnalité
car la différence entre 1 à 10 et 1-20 est plus petite par rapport à 1-1000. Pour éviter cette
classification manquante, nous devons normaliser les variables d’entité.
LA
KnnTestPrediction_k1
setosa versicolor virginica
setosa 14 0 0
versicolor 0 13 2
virginica 0 3 10
KnnTestPrediction_k1
80
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Pour voir graphiquement les valeurs de k qui donnent une meilleurs classification, nous
II
traçons l’exactitude en fonction de k.
MN
# Empty variables
KnnTestPrediction <- list()
accuracy <- numeric()
# From k=1 to k=100...
for(k in 1:100){
LA
# Accuracy vs Choice of k
plot(accuracy, type="b", col="dodgerblue", cex=1, pch=20,
xlab="k, number of neighbors", ylab="Classification accuracy",
main="Accuracy vs Neighbors")
81
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Séparons nos données en un jeu d’entraînement et un jeu de test. Le jeu de test contiendra
30% des données.
Prédire la classe des mesures suivantes en utilisant l’algorithme k-nn pour k=3
> A=dataNorm[88,c(1,2,3,4)]
> A
Sepal.Length Sepal.Width Petal.Length Petal.Width
II
88 0.5514857 -1.737536 0.3636779 0.1320673
MN
> KnnTestPred_A
[1] versicolor
attr(,"prob")
[1] 0.75
Levels: setosa versicolor virginica
LA
Meilleurs k possible
# Execution of k-NN with k=1
A.
82
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
KnnTestPrediction_k1
setosa versicolor virginica
setosa 14 0 0
versicolor 0 13 2
virginica 0 3 10
KnnTestPrediction_k1
setosa versicolor virginica
setosa 14 0 0
versicolor 0 13 2
virginica 0 3 10
II
[1] 90.90909
> sum(KnnTestPrediction_k3==testData$Species)/length(testData$Species)*100
MN
[1] 97.72727
> sum(KnnTestPrediction_k4==testData$Species)/length(testData$Species)*100
[1] 97.72727
Pour voir graphiquement les valeurs de k qui donnent une meilleurs classification, nous tra-
LA
# Empty variables
KnnTestPrediction <- list()
A.
# Accuracy vs Choice of k
plot(accuracy, type="b", col="dodgerblue", cex=1, pch=20,
xlab="k, number of neighbors", ylab="Classification accuracy",
main="Accuracy vs Neighbors")
83
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
84
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
Propriétés principales
— regroupement des individus puis des groupes les plus semblables
— le nombre de groupes n’est pas fixé
— suggestion sur la classi
abilité des données mais pas d’affectation directe dans les k groupes
— visualisation sous la forme d’un dendrogramme
Présentation de l’algorithme
II
4 grandes étapes
— Préparation des données
MN
— Choix de l’indice de dissimilarité entre les individus
— Choix de l’indice d’agrégation
— Choix de la partition finale
— Le choix de la mesure de distance entre individus dépend des données étudiées et des
objectifs.
— Exemples :
A.
85
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
3. Le critère de Ward
Ce critère ne s ?applique que si on est muni d’un espace euclidien.
La dissimilarité entre 2 individus doit être égale à la moitié du carré de la distance
euclidienne.
II
n
1X
— l’inertie totale du nuage est égale à : It = d (ei , g)2
n i=1
MN
k
1X
— l’inertie interclasse est égale à : Ie = ni × d (gi , g)2
n i=1
k Xni
1X
— l’inertie intra-classe est égale à : Ia = d (ej , gi )2
n i=1 j=1
La méthode de Ward consiste à regrouper les classes de façon que l’augmentation de l’inertie
LA
interclasse soit maximum (de façon que l’augmentation de l’inertie intraclasse soit minimum).
86
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
avec 1<=k<=classes.longueur et k+1<=l<=classes.longueur;
// Fusion de classes[i] et classes[j]
MN
Pour tout element dans classes[j] Faire
classes[i].ajouter(element);
Fin pour
supprimer(classes[j]);
Fin Tant Que
LA
unique. La hauteur d’une branche est proportionnelle à la distance entre les objets
regroupés. Pour la distance de Ward, la distance est simplement la perte de variance
interclasses.
— Plus l’arbre est coupé bas, plus la classification est fine
— Une hauteur découpe est pertinente si elle se trouve entre deux noeuds dont les dis-
tances sont relativement élevées.
En pratique :
— une partition triviale au plus bas de la hiérarchie : chacun objet forme une classe
— à chaque niveau (passage à une partition moins fine) : fusion de classes
— une partition triviale au plus haut de la hiérarchie : tous les objets dans une seule
classe
87
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
ristiques similaires.
MN
Chargement et description des données
library("FactoMineR")
library("ggplot2")
library("factoextra")
LA
pairs(fromage)
Nous constatons par exemple que ń lipides ż est fortement corrélé avec "calories" et "choles-
térol" ... (voir figure).
88
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
Centrage et réduction des données
Le principal avantage de la centration-réduction est de rendre comparables des variables
LA
qui ne le seraient pas directement parce qu’elles ont des moyennes et ou des variances trop
différentes.
Pour éviter que l’échelle des variables n’influe sur les résultats.
A.
Pour regrouper les individus qui se ressemblent (et bien séparer ceux qui ne se ressemblent
pas), "critère de ressemblance".
89
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
1. Effectuez une ACP, AFC, ACM, AFDM ou AFM en fonction du type de don-
nées. Choisissez le nombre de dimensions à retenir en spécifiant l’argument
ncp. La valeur par défaut est 5.
2. Appliquez la classification hiérarchique sur le résultat de l’étape 1.
3. Choisissez le nombre de groupes en fonction du dendrogramme obtenu à
l’étape 2. Un partitionnement initial est effectué.
4. Effectuez le k-means pour améliorer le partitionnement initiale obtenu à
l’étape 3.
L’extension FactoMineR fournit une fonction HCPC permettant de réaliser une classifica-
II
tion hiérarchique à partir du résultats d’une analyse factorielle réalisée avec la même exten-
sion (voir la section dédiée du chapitre sur l’ACM).
MN
HCPC réalise à la fois le calcul de la matrice des distances, du dendrogramme et le partition-
nement de la population en classes.
Par défaut, l’arbre est affiché à l’écran et l’arbre sera coupé selon la partition ayant la plus
grande perte relative d’inertie (comme avec best.cutree). Utilisez graph=FALSE pour ne pas
LA
library(FactoMineR)
# 1. ACP
res.pca <- PCA(USArrests, ncp = 3, graph = TRUE)
# 2. HCPC
res.hcpc <- HCPC(res.pca, graph = TRUE)
# 3. Visualiser le dendrogramme généré par la classification.
# Fonction R: fviz_dend()
90
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
— data.clust : Données d’origine avec une colonne supplémentaire appelée clust conte-
nant les groupes.
— desc.var : les variables décrivant les groupes
— desc.ind : les individus les plus typiques de chaque groupes
— desc.axes : les axes décrivant les groupes
91
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
head(res.hcpc$data.clust, 5)
calor. sod. calc. lipid. retinol folates proteines choles. magnes. clust
CarredelEst 0.151 1.319 -1.559 0.263 -0.660 1.474 0.119 -0.162 -0.615 3
Babybel 0.151 0.256 0.331 0.115 -0.159 -0.563 0.349 -0.162 0.003 3
Beaufort 1.098 -0.902 1.015 1.124 -0.524 -1.007 0.924 1.607 1.239 4
Bleu 0.456 1.158 0.349 0.583 -1.260 1.235 0.004 0.545 0.003 3
Camembert -0.392 0.956 0.415 -0.573 1.466 1.995 0.464 -0.516 -0.615 2
res.hcpc$desc.var$quanti
$‘1‘
v.test Mean in category Overall mean sd in category Overall sd p.value
magnesium -2.990908 -1.388494 7.549038e-17 0.1448404 0.9826074 2.781491e-03
sodium -3.277039 -1.521327 8.637727e-17 0.2545298 0.9826074 1.049018e-03
proteines -4.013916 -1.863414 1.327363e-16 0.2846583 0.9826074 5.971949e-05
cholesterol -4.296288 -1.994502 -1.837611e-16 0.2723716 0.9826074 1.736817e-05
calories -4.646911 -2.157274 -8.776804e-17 0.3113926 0.9826074 3.369421e-06
lipides -4.738523 -2.199804 -8.207037e-17 0.3654534 0.9826074 2.152815e-06
$‘2‘
v.test Mean in category Overall mean sd in category Overall sd p.value
II
retinol 4.228946 1.963239 1.674905e-17 0.9314525 0.9826074 2.347889e-05
folates 3.865861 1.794681 -6.221077e-17 0.2013602 0.9826074 1.106978e-04
MN
$‘3‘
v.test Mean in category Overall mean sd in category Overall sd p.value
sodium 3.406384 0.6111009 8.637727e-17 0.6798035 0.9826074 0.0006582959
retinol -2.059766 -0.3695195 1.674905e-17 0.4979629 0.9826074 0.0394208810
$‘4‘
v.test Mean in category Overall mean sd in category Overall sd p.value
LA
res.hcpc$desc.axes$quanti
$‘1‘
v.test Mean in category Overall mean sd in category Overall sd p.value
Dim.2 -2.556153 -1.640127 9.810160e-17 0.8610474 1.358094 1.058366e-02
Dim.1 -4.223309 -4.483544 1.052798e-17 0.2174935 2.247023 2.407416e-05
$‘2‘
v.test Mean in category Overall mean sd in category Overall sd p.value
Dim.2 3.530279 2.265164 9.810160e-17 0.2656446 1.3580937 0.0004151222
Dim.3 2.766746 1.217700 -3.373738e-17 0.5135161 0.9315583 0.0056618834
$‘3‘
v.test Mean in category Overall mean sd in category Overall sd p.value
Dim.3 -4.35853 -0.7412923 -3.373738e-17 0.4282785 0.9315583 1.309387e-05
$‘4‘
v.test Mean in category Overall mean sd in category Overall sd p.value
Dim.1 3.080089 2.5608265 1.052798e-17 0.6186832 2.2470233 0.002069386
Dim.3 2.792348 0.9624738 -3.373738e-17 0.4573145 0.9315583 0.005232699
92
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
res.hcpc$desc.ind$para
Pour chaque groupe, les 5 meilleurs individus les plus proches du centre du cluster sont
affichés. Ces individus sont appelés paragones. La distance entre chaque individu et le centre
du groupe est fournie.
Cluster: 1
Fr.frais20nat. Fr.frais40nat. Petitsuisse40 Yaotlaitt.nat.
0.3713450 0.7728515 0.8220029 1.4356469
-------------------------------------------------------------
Cluster: 2
Chaource Camembert Chabichou Fr.chmolle
II
0.5117528 0.6351719 1.1457658 2.0707189
-------------------------------------------------------------
MN
Cluster: 3
Tome Pyrenees Reblochon Babybel Morbier
0.4299936 0.5201860 0.6057267 0.7009267 0.8360276
-------------------------------------------------------------
LA
Cluster: 4
Beaufort Comte Parmesan Emmental Edam
0.5939427 0.6529028 0.9127630 0.9765425 1.1009528
CAH : frequency
library(rmarkdown)
library(frequency)
freq(res.hcpc$data.clust$clust)
93
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
94
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
fviz_dend(res.hcpc,
cex = 0.6, # Taille du text
palette = "jco", # Palette de couleur ?ggpubr::ggpar
rect = TRUE, rect_fill = TRUE, # Rectangle autour des groupes
rect_border = "jco", # Couleur du rectangle
labels_track_height = 0.8 # Augment l’espace pour le texte
)
II
MN
LA
A.
fviz_cluster()
La fonction fviz_cluster() permet de visualiser le résultat dans un diagramme de disper-
sion.
Le regroupement peut être un outil très utile pour l’analyse des données dans le cadre non-
supervisé.
fviz_cluster(res.hcpc,
repel = TRUE, # Evite le chevauchement des textes
show.clust.cent = TRUE, # Montre le centre des clusters
palette = "jco", # Palette de couleurs, voir ?ggpubr::ggpar
ggtheme = theme_minimal(),
main = "Factor map")
95
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
— fromages frais.
— fromages à pâte molle.
— fromages durs.
— fromages fourre-tout.
Graphique 3D combinant la classification hiérarchique et le plan des facteurs
hclust() exige en entrée une matrice de distancesOn calcule d’abord la matrice des dis-
tances euclidiennes avec dist().
96
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
library("FactoMineR")
library("ggplot2")
library("factoextra")
fromage.cr <- scale(fromage,center=T,scale=T)
#matrice des distances entre individus
d.fromage <- dist(fromage.cr)
97
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
d.fromage
plot(cah.ward)
Découper le dendrogramme
Pour obtenir une partition de la population nous utilisons représentons les sauts d’inertie
du dendrogramme selon le nombre de classes retenues.
98
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
99
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
100
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
Un moyen d’examiner la qualité de la topologie obtenue est de calculer les distances
d’arbre, puis la corrélation appelée corrélation cophénétique entre les distances d’arbre et les
distances euclidiennes initiales. Plus cette corrélation est élevée, meilleure est la représenta-
tion obtenue.
LA
d=cophenetic(cah.ward)
cor(d,d.fromage)
A.
[1] 0.8597509
101
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
— On calcule le tableau de distances entre tous les individus et les nouveaux k centres.
— On forme alorsk groupes, chaque groupe étant constitué d’un centre et des individus
les plus proches de ce centre que d’un autre. On a une nouvelle partition P2 de Γ.
— On itère la procédure précédente jusqu’à ce que deux itérations conduisent à la même
partition.
x y
A 1.0 1.0
B 1.0 1.8
C 1.5 1.0
D 4.0 6.0
II
E 5.0 5.0
F 4.0 2.0
MN
G 5.0 2.2
H 5.0 1.0
I 5.5 6.5
x<-c(1,1,1.5,4,5,4,5,5,5.5)
LA
y<-c(1,1.8,1,6,5,2,2.2,1,6.5)
nom<-c(’A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’I’)
plot(x, y, pch = 15, cex=1, col="blue", bg="red", lwd=1)
text(x+0.1,y+0.1,nom) # affichage des noms des points
A.
Distance minimum
A B C D E F G H
B 0.8000000
C 0.5000000 0.9433981
D 5.8309519 5.1613952 5.5901699
E 5.6568542 5.1224994 5.3150729 1.4142136
F 3.1622777 3.0066593 2.6925824 4.0000000 3.1622777
G 4.1761226 4.0199502 3.7000000 3.9293765 2.8000000 1.0198039
H 4.0000000 4.0792156 3.5000000 5.0990195 4.0000000 1.4142136 1.2000000
I 7.1063352 6.5069194 6.8007353 1.5811388 1.5811388 4.7434165 4.3289722 5.5226805
102
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
(a) Les données. (b) Étape 1 (c) Étape 2
MN
LA
103
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
# 1. ACP
res.pca <- PCA(L, ncp = 3, graph = FALSE)
# 2. HCPC
res.hcpc <- HCPC(res.pca, graph = TRUE)
Indice de silhouette Pour tout i ∈ {1, · · · , n}, on appelle indice de silhouette associé à
l’individu wi le réel :
bi − ai
S(i) =
max(ai , bi )
où
— ai est la moyenne des distances entre wi et les individus de son groupe,
— bi est la moyenne des distances entre wi et les individus du groupe le plus proche de
celui auquel il appartient.
104
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
On a S(i) ∈] − 1, 1[.
Plus S(i) est proche de 1, plus l’appartenance de wi a son groupe est justifiée.
MN
library(cluster)
ag = agnes(d.L, method = "average")
ag3 = cutree(ag, 3)
si = silhouette(ag3, d.L)
LA
La fonction hclust()dans stats est la plus simple d’utilisation. Elle contient les approches
agglomératives ascendantes classiques et ne nécessite pas le chargement d’une bibliothèque
additionnell. hclust() exige en entrée une matrice de distancesOn calcule d’abord la matrice
A.
105
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
plot(dend1)
A.
set.seed(12345)
library(cluster)
pc_cluster <-kmeans(L, 3)
pc_cluster
106
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
107
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
1 1.166667 1.266667
2 4.833333 5.833333
MN
3 4.666667 1.733333
Clustering vector:
A B C D E F G H I
1 1 1 2 2 3 3 3 2
LA
Available components:
[1] "cluster" "centers" "totss" "withinss" "tot.withinss" "betweenss" "size"
[8] "iter" "ifault"
library(animation)
library(cluster)
kmeans.ani(L, 3)
saveGIF({kmeans.ani(L, 3)})
fanny_L<-fanny(L,3)
fviz_silhouette(fanny_L, palette =
"jco", ggtheme = theme_minimal())
108
3.2. CLASSIFICATION SUPERVISÉ ET NON SUPERVISÉ
II
MN
LA
A.
109
Chapitre 4
Transformée en ondelettes
a0 +∞
X
f (t) = + (an cos(nw1 t) + bn sin(nw1 t))
2 n=1
II
La pulsation ω1 s’appelle la pulsation fondamentale.
Les pulsations ωn = nω1 s’appellent les harmoniques de rang n.
MN
Les coefficients an et bn sont les coefficients de Fourier de la fonction f .
Calcul et interprétation des coefficients de Fourier
Z t0 +T1
a0 1
= f (t)dt
2 T1 t0
LA
ment dit, dès qu’un coefficient de rang n est non nul, cela signifie qu’une partie de la fonction f vibre
à la pulsation wn .
— Si f est paire, la partie impaire du développement est nulle : bn = 0
— Si f est impaire, la partie paire du développement est nulle : an = 0
110
4.1. RAPPEL : SÉRIES ET TRANSFORMÉES DE FOURIER
II
On peut calculer les coefficients an à l’aide de la formule, mais dans cet exemple on peut linéariser f
en utilisant la formule d’Euler : cos(t)3 = 14 (3cos(t) + cos(3t))
MN
3 1
a1 = , a2 = 0, a3 = , a4 = 0.
4 4
a0 +∞
X
f (t) = + cn cos(nw1 t + φn )
2 n=1
avec q
A.
an bn
cn = a2n + b2n , cos(φn ) = p , sin(φn ) = − p 2
a2n + b2n an + b2n
cn est l’amplitude de l’harmonique de rang n et φn est sa phase.
Le spectre de Fourier de la fonction f est le diagramme obtenu en portant sur un axe horizontal gradué
en multiples de la pulsation fondamentale ω1 des segments de longueur proportionnelle à l’amplitude
cn de l’harmonique considérée.
111
4.1. RAPPEL : SÉRIES ET TRANSFORMÉES DE FOURIER
II
MN
LA
∞
−2j X 1
f (t) = e2jπ(2q+1)f0 t
π q=−∞ 2q + 1
A.
1 t =[0:0.001:6];
2 % c r e a t i o n base t e m p o r e l l e
3 s = z e r o s (1 , l e n g t h ( t ) ) ;
4 % c r e a t i o n d ’ un s i g n a l nul
5 Nharm =12;
6 % creation + i n i t i a l i s a t i o n
7 f 0 =1;
8 % creation + i n i t i a l i s a t i o n
9 f o r q = −( Nharm −1) : Nharm −1
10 % c r e a t i o n d ’ une b o u c l e
11 c =1/(2∗ q +1) ;
12 s = s + c ∗ exp (2∗ j ∗ p i ∗(2∗ q +1)∗ f 0 ∗ t ) ;
13 end
14 s =(( −2∗ j ) / p i ) ∗ s ;
15 plot ( t , real ( s ) ) ;
112
4.2. INTRODUCTION AUX ONDELETTES
II
2
cn =
1−(−1)n
π 2 n2
, si, n 6= 0
MN
LA
A.
113
4.2. INTRODUCTION AUX ONDELETTES
Ondelettes
— Hauteur
— Durée
— Localisation temporelle
Ondes
— Hauteur (fréquence)
— Durée infinie (ou presque !)
— Délocalisation temporelle totale
Utilisation
— Une petite onde (ou vague) qui a un début et une fin
— Utilisation : Représenter une fonction (ou un signal) comme une somme pondérée de ces
II
petites ondes translatées et/ou dilatées.
— Matlab :
MN
>> help wavelet
>> wavedemo
>> wavemenu
Définition 4.2.2 (Définition d’une ondelette)
LA
Une ondelette est une fonction oscillante (ce qui explique le mot "onde") de moyenne nulle
possédant un certain degré de régularité et dont le support est fini (ce qui explique le mot
"ondelette", qui veut dire petite onde).
A.
— Cette condition qui entraîne, en particulier, que l’ondelette est d’intégrale nulle.
Cette condition minimale, est souvent renforcée en exigeant que l’ondelette ait des moments nuls :
la fonction ψ a m + 1 moments nuls si pour tout k = 0, · · · , m
Z
tk ψ(t)dt = 0
R
114
4.2. INTRODUCTION AUX ONDELETTES
Remarque 4.2.4
II
0, sinon
MN
LA
— Ondelette de Morlet :
t2 2
ψ(t) = e− 2 cos(5t) ou ψ(t) = e−πt e10iπx
8
(t− 12 ) cos[ 8π
3 (
t− 12 )]+ π1 sin[ 4π
3 (
t− 21 )]
ψ2 (t) = 3π
3
(t− 21 )− 649 (
t− 21 )
115
4.2. INTRODUCTION AUX ONDELETTES
II
dn −πx2
Elles sont de la forme ψn (x) = dx ne , pour n ≥ 1.
On utilise essentiellement la dérivée seconde, qu’on écrit le plus souvent sous la forme :
MN
2 1
x2
ψ(x) = √ π − 4 1 − x2 e− 2
3
3 y=(2/ s q r t ( 3 ) ) ∗( p i ^(−1/4)) . . .
4 ∗(1−x.^2) . ∗ exp (−(x.^2) /2) ;
5 p l o t ( x , y , ’ b ’ , ’ LineWidth ’ , 2 )
6 box on , g r i d on
A.
116
4.2. INTRODUCTION AUX ONDELETTES
II
MN
LA
A.
1 f u n c t i o n []= t r a n s l a t i o n _ e t _ d i l a t a t i o n ( )
2 clc ; clear a l l ; close a l l
3 a1=1;
4 a2 =0.5;
5 a3=4;
6 a1=a2 ; % a1=a3 ;
7 t=a1 ∗ 5 : 0 . 0 1 : a1 ∗70;
8 hold on
9 p l o t ( t , 0 ∗ t , ’ k ’ , ’ LineWidth ’ , 2 )
10 i =0; t i =−4∗a1 : 0 . 0 1 : 4 ∗ a1 ; t 1=t i ;
11 y=(1/ s q r t ( abs ( a1 ) ) ) ∗ ond_d_g ( ( t i ) / a1 ) ;
12 f o r i =0:3
13 t 1=t 1+15∗a1 ;
14 p l o t ( t1 , y , ’ r ’ , ’ LineWidth ’ , 2 )
15 end
16 box on , g r i d on
117
4.3. TRANSFORMÉE EN ONDELETTES CONTINUE
17 end
18 f u n c t i o n [ y]=ond_d_g ( t )
19 y=(2/ s q r t ( 3 ) ) ∗( p i ^(−1/4)) . . .
20 ∗(1− t .^2) . ∗ exp (−( t .^2) /2) ;
21 y=y.∗((−4< t ) &( t <4)) ;
22 end
II
— Tψ (f )(a, b) permet de faire une analyse locale de f par l’ondelette ψ a est appelé facteur
d’échelle. On peut le lier à la fréquence :
MN
— si a > 1 l’ondelette sera plus étalée et correspondra donc à une fréquence plus faible,
— si a < 1 l’ondelette sera plus étroite et correspondra à une fréquence plus élevée que celle
de l’ondelette mère le paramètre b est un paramètre de position pour l’ondelette.
Linéarité, invariance par dilatation et translation
— La transformée en ondelettes est une application linéaire.
LA
— Inversion
Soit f ∈ L2 (Rn ) et ψ ∈ L2 (Rn ) une ondelette admissible. Alors :
Z Z
1 dadb
∀t ∈ R f (t) = Cf (a, b)ψa,b (t)
cψ R∗+ R a2
118
4.3. TRANSFORMÉE EN ONDELETTES CONTINUE
II
Z +∞
−m
T ond
f (m, n) = α 2 f (t)ψ α−m t − nβ dt
−∞
MN
Si on choisit α = 2 et β = 1, on parle alors de transformée dyadique.
— a = α−m , m ∈ Z et α > 0
— b = nβα−m , (m, n) ∈ Z2 , β 6= 0
— En pratique, on prend le plus souvent α = 2 et β = 1
Les fonctions de bases sont dénombrables et générées à partir d’une fonction mère par dilatations et
translations dyadiques :
A.
119
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
Soit m ∈ N un entier. Une fonction ψ d’une variable réelle sera appelée une ondelette si les
quatre propriétés suivantes sont satisfaites :
— Si m = 0, ψ ∈ L∞ (R) et si m ≥ 1, ψ, ψ ′ , ..., ψ (m) ∈ L∞ (R)
— ψ, ψ ′ , ..., ψ (m) sont à décroissance rapide à l’infini.
R
— xk ψ(x)dx = 0, ∀ 0 ≥ k ≥ m, i.e., Ceci veut dire que ψ est orthogonale à tous les
polynômes de degré
≤m
j
j
— 2 2 ψ(2 x − k) est une base orthonormée de L2 (R), i.e.,
j,k∈Z
X j
f (x) = aj,k 2 2 ψ(2j x − k), ∀f ∈ L2 (R)
j,k∈Z
II
Exemple 4.4.2 (Cas de Haar (1909))
— m = 0, la base de Haar
MN
Reconstruction et conservation de l’énergie
— Deux exigences sur les outils définis ci-dessus : assurer l’existence d’une formule de recons-
LA
truction de f à partir de (4.1) et une analyse non redondante. Elles conduisent à choisir Ψ de
sorte que
{ψm,n , m, n ∈ Z} (4.2)
— Dans l’équation (??), le double intégral est remplacé par une double somme :
1 XX 1 x−b
f (x) = wf (a, b) p ψ (4.3)
cψ |a| a
120
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
Principe de Heisenberg
Une limite théorique c’est l’inégalité de Heisenberg.
Soit une fonction de base ψ, qu’on suppose de norme L2 (R) égale à 1 :
Z
|ψ(t)|2 dt = 1
Z sZ
c(ψ) = t|ψ(t)|2 dt, ∆(ψ) = (t − c(ψ))2 |ψ(t)|2 dt
II
∆(ψ)∆(ψ̂) >
2
MN
Si on appelle largeur fréquentielle d’une fonction ψ la largeur de sa transformée de Fourier ψ̂, cette
inégalité interdit donc d’avoir une fonction avec des largeurs temporelle et fréquentielle toutes deux
aussi petites que l’on veut.
Les fonctions gaussiennes translatées réalisent le minimum de cette limite théorie.
LA
Si B = (e1 , . . . , en ) est une base orthogonale, la base est kee11 k , . . . , keenn k orthonormée.
121
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
2. V j = {0} et V j = L2 (R)
j∈Z j∈Z
Remarque 4.4.5
— V j est une ’grille de lecture’ du signal de taille 2j . Cela revient à dire que la projection P V j f
d’un signal f ∈ L2 (R) est une approximation du signal à la résolution 2j .
— (1) dit qu’une approximation à la taille à la résolution 2j+1 contient toute l’information néces-
saire pour calculer l’approximation plus grossière à la résolution 2j .
— Si on dilate une fonction par 2, les détails sont deux fois plus gros.
— La condition (3) dit que la même chose est vraie pour les approximations.
— (2) dit que si on fait tendre la résolution vers +∞ on retrouve tous les détails de f .
— Les espaces V j se déduisent par dilatation de l’espace V 0 :
j
V j = vect{φj,k : x 7−→ 2 2 φ(2j x − k)|k ∈ Z}
122
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
— Soit f ∈ L2 (R), sa décomposition en ondelettes s’écrit :
MN
V0
z
X }| { XX
f (x) = ck φ(x − k) + dj,k ψj,k (x)
k j k
R R
avec ck = R f (x)φ(x − k)dx et dj,k = R f (x)ψj,k (x)dx
LA
(
1, si x ∈ [0, 1[
φ(x) = ,
0, sinon
( √
√ 2j , si x ∈ [ 2kj , k+1
[
φj,k = 2j φ(2j x − k) = 2j
0, sinon
123
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
√
si x ∈ [ 2kj , 2kj + 2j+1
j
2 ,
1
[
√ √
et ψj,k = 2j ψ(2j x − k) = j k 1 k+1
− 2 , si x ∈ [ 2j + 2j+1 , 2j [
0, sinon
— La famille ψj,k forme une base orthonormée d’un espace vectoriel W j (dimension 2j − 1) tel
que W j est le supplémentaire orthogonal de V j dans V j+1 . i.e., V j+1 = V j ⊕ W j
Remarque 4.4.8
2j+1
X−1
fj+1 (x) = cj+1,k φj+1,k (x)
II
k=0
MN
Remarque 4.4.9 (Algorithme de décomposition)
j −1
2X j −1
2X
fj+1 (x) = cj,k φj+1,k (x) + dj,k ψj+1,k (x)
k=0 k=0
cj+1,2k +cj+1,2k+1 cj+1,2k −cj+1,2k+1
avec cj,k = √
2
et dj,k = √
2
LA
j −1
2X j −1
2X
fj (x) = cj,k φj+1,k (x) et gj (x) = dj,k ψj+1,k (x)
k=0 k=0
2j+1
X−1
fj+1 (x) = cj+1,k φj+1,k (x)
k=0
cj,k +dj,k cj,k −dj,k
avec cj+1,2k = √
2
et cj+1,2k+1 = √
2
124
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
7
X
f3 (x) = c3 [k] φ3,k (x)
k=0
avec
c3 = [0.25, 0.5, 1, 1.5, 1.75, 0, 0.25, 0.125]
II
Exemple 4.4.11
Solution
1 f u n c t i o n [ y]= p h i _ j k ( x , j , k )
2 y=s q r t (2^ j ) ∗ p h i(2^ j ∗x−k ) ;
3 end
4
5 f u n c t i o n [ y]=p h i ( x )
6 y=(0<=x ) &(x<1) ;
7 end
1 f u n c t i o n [ y]= p s i _ j k ( x , j , k )
2 y=s q r t (2^ j ) ∗ p s i(2^ j ∗x−k ) ;
3 end
4 f u n c t i o n [ y]= p s i ( x )
125
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
5 y=(0<=x ) &(x<1/2) − . . .
6 (1/2<=x ) &(x<1) ;
7 end
1 f u n c t i o n [ c0 , d0 , d1 , d2]=decop_haat1 ( )
2 C3 = [ 0 . 2 5 , 0 . 5 , 1 , 1 . 5 , 1 . 7 5 , 0 , 0 . 2 5 , 0 . 1 2 5 ] ;
3 x = 0 : 0 . 0 0 5 : 0 . 9 9 ; s o r i g =0∗x ; j =3; n=2^j −1;
4 f o r k=0:n
5 s o r i g=s o r i g+C3( k+1)∗ p h i _ j k ( x , j , k ) ;
6 end
7 [ c2 , d2]=decomp (C3) ; [ c_x2 , d_x2]=decomp_x ( c2 , d2 , x , 2 ) ;
8 [ c1 , d1]=decomp ( c2 ) ; [ c_x1 , d_x1]=decomp_x ( c1 , d1 , x , 1 ) ;
9 [ c0 , d0]=decomp ( c1 ) ; [ c_x0 , d_x0]=decomp_x ( c0 , d0 , x , 0 ) ;
10 s u b p l o t ( 3 , 2 , [ 1 , 2 ] ) ; p l o t ( x , s o r i g , ’ LineWidth ’ , 2 )
11 t i t l e ( ’ O r i g i n a l s i g n a l : f_3 ’ ) ;
12 s u b p l o t ( 4 , 2 , 3 ) ; p l o t ( x , c_x2 , ’ LineWidth ’ , 2 ) , t i t l e ( ’ f _ 2 ’ ) ;
II
13 s u b p l o t ( 4 , 2 , 4 ) ; p l o t ( x , d_x2 , ’ LineWidth ’ , 2 ) , t i t l e ( ’ d_2 ’ ) ;
14 s u b p l o t ( 4 , 2 , 5 ) ; p l o t ( x , c_x1 , ’ LineWidth ’ , 2 ) , t i t l e ( ’ f _ 1 ’ ) ;
MN
15 s u b p l o t ( 4 , 2 , 6 ) ; p l o t ( x , d_x1 , ’ LineWidth ’ , 2 ) , t i t l e ( ’ d_1 ’ ) ;
16 s u b p l o t ( 4 , 2 , 7 ) ; p l o t ( x , c_x0 , ’ LineWidth ’ , 2 ) , t i t l e ( ’ f _ 0 ’ ) ;
17 s u b p l o t ( 4 , 2 , 8 ) ; p l o t ( x , d_x0 , ’ LineWidth ’ , 2 ) , t i t l e ( ’ d_0 ’ ) ;
18 end
19 f u n c t i o n [ c , d]=decomp (C)
C p a i r=C ( 1 : 2 : end−1) ; Cimpair=C ( 2 : 2 : end ) ;
LA
20
25 f o r k=0:n
26 c_x=c_x+c ( k+1)∗ p h i _ j k ( x , j , k ) ; d_x=d_x+d ( k+1)∗ p s i _ j k ( x , j , k ) ;
27 end
28 end
1 f u n c t i o n [ c0 , d0 , d1 , d2]=haar_dwt ( )
2 C3 = [ 0 . 2 5 , 0 . 5 , 1 , 1 . 5 , 1 . 7 5 , 0 , 0 . 2 5 , 0 . 1 2 5 ] ;
3 %C3=rand ( 1 , 8 ) ;
4 x = 0 : 0 . 0 0 5 : 0 . 9 9 ; s o r i g =0∗x ; j =3; n=2^j −1;
5 f o r k=0:n
6 s o r i g=s o r i g+C3( k+1)∗ p h i _ j k ( x , j , k ) ;
7 end
8 [ c2 , d2 ] = dwt (C3 , ’ haar ’ ) ; [ c_x2 , d_x2]=decomp_x ( c2 , d2 , x , 2 ) ;
9 [ c1 , d1]=dwt ( c2 , ’ haar ’ ) ; [ c_x1 , d_x1]=decomp_x ( c1 , d1 , x , 1 ) ;
10 [ c0 , d0]=dwt ( c1 , ’ haar ’ ) ; [ c_x0 , d_x0]=decomp_x ( c0 , d0 , x , 0 ) ;
11 s u b p l o t ( 3 , 2 , [ 1 , 2 ] ) ; p l o t ( x , s o r i g , ’ LineWidth ’ , 2 )
126
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
12 t i t l e ( ’ Original s i g n a l : f_3 ’ ) ;
13 subplot (4 ,2 ,3) ; p l o t ( x , c_x2 , ’ LineWidth ’ ,2) , title ( ’ f_2 ’);
14 subplot (4 ,2 ,4) ; p l o t ( x , d_x2 , ’ LineWidth ’ ,2) , title ( ’ d_2 ’);
15 subplot (4 ,2 ,5) ; p l o t ( x , c_x1 , ’ LineWidth ’ ,2) , title ( ’ f_1 ’);
16 subplot (4 ,2 ,6) ; p l o t ( x , d_x1 , ’ LineWidth ’ ,2) , title ( ’ d_1 ’);
17 subplot (4 ,2 ,7) ; p l o t ( x , c_x0 , ’ LineWidth ’ ,2) , title ( ’ f_0 ’);
18 subplot (4 ,2 ,8) ; p l o t ( x , d_x0 , ’ LineWidth ’ ,2) , title ( ’ d_0 ’);
19 end
1 f u n c t i o n []=Recon ( )
2 [ c0 , d0 , d1 , d2]=decop_haat1 ( ) ;
3 c r 1=r e c o n s t r ( c0 , d0 ) ;
4 c r 2=r e c o n s t r ( cr1 , d1 ) ;
5 c r 3=r e c o n s t r ( cr2 , d2 ) ;
6 x = 0 : 0 . 0 0 5 : 0 . 9 9 ; s o r i g R=0∗x ; j =3; n=2^j −1;
7 f o r k=0:n
II
8 s o r i g R=s o r i g R+c r 3 ( k+1)∗ p h i _ j k ( x , j , k ) ;
9 end
MN
10 f i g u r e (2)
11 p l o t ( x , s o r i g R , ’ LineWidth ’ , 2 ) , g r i d on , box on
12 end
13 f u n c t i o n [ c r ]= r e c o n s t r ( c , d )
14 n=l e n g t h ( c ) ; c r =[];
f o r i =1:n
LA
15
16 c r =[ c r ( c ( i )+d ( i ) ) / s q r t ( 2 ) ( c ( i )−d ( i ) ) / s q r t ( 2 ) ] ;
17 end
18 end
f u n c t i o n []=Recon ( )
A.
2 [ c0 , d0 , d1 , d2]=haar_dwt ( ) ;
3 idwt ( c0 , d0 , ’ haar ’ ) ;
4 c r 1=idwt ( c0 , d0 , ’ haar ’ ) ;
5 c r 2=idwt ( cr1 , d1 , ’ haar ’ ) ;
6 c r 3=idwt ( cr2 , d2 , ’ haar ’ ) ;
7 x = 0 : 0 . 0 0 5 : 0 . 9 9 ; s o r i g R=0∗x ; j =3; n=2^j −1;
8 f o r k=0:n
9 s o r i g R=s o r i g R+c r 3 ( k+1)∗ p h i _ j k ( x , j , k ) ;
10 end
11 f i g u r e (2)
12 p l o t ( x , s o r i g R , ’ LineWidth ’ , 2 ) , g r i d on , box on
13 end
14 f u n c t i o n [ c r ]= r e c o n s t r ( c , d )
15 n=l e n g t h ( c ) ; c r =[];
16 f o r i =1:n
17 c r =[ c r ( c ( i )+d ( i ) ) / s q r t ( 2 ) ( c ( i )−d ( i ) ) / s q r t ( 2 ) ] ;
18 end
127
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
19 end
II
MN
LA
1 f u n c t i o n []=Recon_comr ( )
2 [ c0 , d0 , d1 , d2]=haar_dwt ( ) ;
3 idwt ( c0 , d0 , ’ haar ’ ) ;
4 e c i l o n =0.95∗sum( d2 ) / l e n g t h ( d2 ) ;
5 k1 = f i n d ( abs ( d2 )<e c i l o n ) ; d2 ( k1 ) =0;
6 k2 = f i n d ( abs ( d1 )<e c i l o n ) ; d1 ( k2 ) =0;
7 k3 = f i n d ( abs ( d0 )<e c i l o n ) ; d0 ( k3 ) =0;
8 c r 1=idwt ( c0 , d0 , ’ haar ’ ) ;
9 c r 2=idwt ( cr1 , d1 , ’ haar ’ ) ;
10 c r 3=idwt ( cr2 , d2 , ’ haar ’ ) ;
11 x = 0 : 0 . 0 0 5 : 0 . 9 9 ; s o r i g R=0∗x ; j =3; n=2^j −1;
12 f o r k=0:n
128
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
Exemple 4.4.12
II
MN
Tracer cette fonction
2 h
1
ln 1 + x − 2 , if x ∈ 0, 12 [
h
1
sin(2πx), if x ∈ 2 , [1
f (x) =
LA
− ln(2)
(1 − x) exp x , if x ∈ [1, 2[,
2
(3 − x) x − 5 ,
2 if x ∈ [2, 3]
A.
Solution
1 f u n c t i o n [ y]=s s 1 ( x )
2 a1=0; a2 =0.5; a3=1;a4=2;a5=3;
3 y=l o g (1+(x −0.5).^2) . ∗ ( ( a1<=x ) &(x<a2 ) ) + . . .
4 s i n (2∗ p i ∗x ) . ∗ ( ( a2<=x ) &(x<a3 ) ) + . . .
5 (1−x ) . ∗ exp(−x∗ l o g ( 2 ) /2) . ∗ ( ( a3<=x ) &(x<a4 ) ) + . . .
6 (3−x ) . ∗ ( x−5/2) . ∗ ( ( a4<=x ) &(x<=a5 ) ) ;
7 end
129
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
4.4.13 cwtft : Transformation continue en ondelettes (FFT)
— cwtft renvoie la transformée en ondelettes continues (CWT) du signal d’entrée 1-D sig.
— cwtft utilise un algorithme de FFT pour calculer la CWT. sig peut être un vecteur, un tableau
de structure ou un tableau de cellules.
— Par défaut, cwtft utilise l’ondelette analytique de Morlet.
LA
a une valeur réelle, le signal d’origine ainsi que les amplitudes des coefficients CWT et les
coefficients CWT signés sont tracés.
— Si l’ondelette d’analyse a une valeur complexe, le signal d’origine est tracé avec les modules,
les parties réelles, les parties imaginaires et les angles des coefficients CWT.
— Vous pouvez sélectionner la case à cocher en bas à gauche du graphique pour superposer la
reconstruction du signal à l’aide de l’icwtft.
130
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
12 M o r l e t F o u r i e r F a c t o r = 4∗ p i /(6+ s q r t (2+6^2)) ;
13 freq = 1./( scales .∗ MorletFourierFactor ) ;
14 contour ( t , freq , r e a l ( cwtsig . c f s ) ) ;
15 x l a b e l ( ’ Seconds ’ ) ; y l a b e l ( ’ Pseudo−f r e q u e n c y ’ ) ;
16 a x i s ( [ 0 t ( end ) 0 15]) ;
II
MN
LA
A.
131
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
— Une singularité dans un signal (qui peut être à plusieurs dimensions pour une image) corres-
pond mathématiquement à un point où le signal n’est pas continu ou n’admet pas de dérivée
première continue. discontinuités, maxima locaux de la courbure.
— A l’échelle fixée les coefficients en ondelettes seront maximum autour du point où le signal est
singulier.
LA
5 figure
6 hold on
7 cwt ( y , 1 : 3 0 , ’ db4 ’ , ’ p l o t ’ ) ;
8 colormap j e t ; c o l o r b a r ;
9 p l o t ( x , y ∗10 , ’ LineWidth ’ , 5 )
10 f i g u r e % Quelques e c h e l l e s de v i s u a l i s a t i o n
11 s u b p l o t (311) ; p l o t ( CWTcoeffs ( 5 , : ) ) ; t i t l e ( ’ S c a l e 5 ’ ) ;
12 s u b p l o t (312) ; p l o t ( CWTcoeffs ( 1 0 , : ) ) ; t i t l e ( ’ S c a l e 10 ’ ) ;
13 s u b p l o t (313) ; p l o t ( CWTcoeffs ( 3 0 , : ) ) ; t i t l e ( ’ S c a l e 30 ’ ) ;
14 figure
15 s u r f ( CWTcoeffs ) ; colormap j e t ;
16 p l o t 3 ( x , 0 ∗ y , y ’ , ’ LineWidth ’ , 5 )
17 shad ing ( ’ i n t e r p ’ ) ;
18 % Compute and p l o t t h e scalogram ( c o n t o u r o p t i o n )
19 figure ;
20 SC = wscalogram ( ’ c o n t o u r ’ , CWTcoeffs ) ;
132
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
LA
A.
133
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
LA
134
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
LA
A.
135
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
LA
A.
136
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
qu’on peut écrire sous la forme matricielle fk,l = vkT Ck,l vl , où Ck,l = (Ck,l (i, j)) .
1≤i≤nk
1≤j≤nl
D’après les décompositions Vk = Vk−1 ⊕ Wk−1 et Vk = Vk−1 ⊕ Wk−1 on obtient : d’où fk,l se décompose
(1) (2) (3)
comme suit : fk,l = fk−1,l−1 + dk−1,l−1 + dk−1,l−1 + dk−1,l−1 Avec
II
T
fk−1,l−1 = vk−1 Ck−1,l−1 vl−1 ∈ Vk−1 ⊗ Vl−1 ,
(1) T (1)
dk−1,l−1 = vk−1 Dk−1,l−1 wl−1 ∈ Vk−1 ⊗ Wl−1 ,
MN
(2) T (2)
dk−1,l−1 = wk−1 Dk−1,l−1 vl−1 ∈ Wk−1 ⊗ Vl−1 ,
(3) T (3)
dk−1,l−1 = wk−1 Dk−1,l−1 wl−1 ∈ Wk−1 ⊗ Wl−1 .
On note Gk = (hvi,k , vj,k i)1≤i,j≤nk , Hk = (hwi,k , wj,k i)1≤i,j≤nk , Gl = (hvi,l , vj,l i)1≤i,j≤nl et Hl =
LA
(hwi,l , wj,l i)1≤i,j≤nl les matrices de Gram associées aux bases {vi,k }, {wi,k }, {vi,l } et {wi,l } respective-
ment.
Comme ces familles sont linéairement indépendantes alors les matrices Gk , Hk , Gl et Hl sont inver-
sibles. De plus, il est facile de vérifier que Hk−1 = Qk Gk Qk T et Hl−1 = Ql Gl Ql T . Pour calculer les
A.
(r)
matrices Ck−1,l−1 et Dk−1,l−1 , 1 ≤ r ≤ 3, en fonction de Ck,l et inversement, on utilise les deux
algorithmes suivants :
(1)
Gk−1 Ck−1,l−1 Gl−1 = Pk Bk,l Pl T , Gk−1 Dk−1,l−1 Hl−1 = Pk Bk,l Ql T ,
(2) (3)
Hk−1 Dk−1,l−1 Gl−1 = Qk Bk,l Pl T et Hk−1 Dk−1,l−1 Hl−1 = Qk Bk,l Ql T
où Bk,l = Gk Ck,l Gl .
137
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
(1)
Ck−ρ,l−ρ D
k−ρ,l−ρ
MN
D
(2)
D
(3)
k−ρ,l−ρ k−ρ,l−ρ
(1)
Dk−1,l−1
..
.
A= .
LA
(2) (3)
Dk−1,l−1 Dk−1,l−1
A.
(r)
Les éléments des matrices Dk−j,l−j , 1 ≤ j ≤ ρ et 1 ≤ r ≤ 3, sont les coefficients d’ondelettes.
Seuillage :
• Eeliminer tous les cœfficients d’ondelettes dont le module est inférieur à un seuil ǫ donné.
Reconstruction :
c .
En utilisant l’algorithme de reconstruction on obtient fk,l
Compression : Définitions
La compression de données traite la manière dont on peut réduire l’espace nécessaire à la représenta-
tion d’une certaine quantité d’information.
T aille Initial
Quotient de compression : Qcomp = T aille F inale .
1
Taux de compression : τcomp = Qcomp .
T aille Initial−T aille F inale
Gain de compression : Gcomp = 1 − τcomp = T aille Initial .
138
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
Résultat de la décomposition en ondelettes = 4 petites images
— Une image ’Flou’ : représente la réduction de l’image source
MN
— Trois images ’Détails’ : contiennent les infos de hautes fréquences spatiales perdues lors de la
réduction.
— Le passage d’une couche à une autre se fait en prenant l’image réduite (Flou), il y a alors 4 fois
moins de points à traiter.
LA
A.
139
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
cj,2k+1,2l = (1/2) cj−1,k,l − dhj−1,k,l + dvj−1,k,l − ddj−1,k,l
MN
LA
A.
Exemple 4.4.22
140
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
1 o r i g=imread ( ’ I 2 . png ’ ) ;
2 A=rgb2gray ( o r i g ) ;
3 Im = i m r e s i z e (A , [256 256]) ; n=l e n g t h ( Im ) ;
4 imshow ( Im )
5 A=double ( Im ( 1 : 2 : n −1 ,1:2: n−1) ) ;
6 B=double ( Im ( 2 : 2 : n , 2 : 2 : n ) ) ;
7 C=double ( Im ( 1 : 2 : n −1 ,2:2: n ) ) ;
II
8 D=double ( Im ( 2 : 2 : n , 1 : 2 : n−1) ) ;
9 Im0=(A+B+C+D) / 4 ;
MN
10 I m v e r t =(1/2) ∗(A−B+C−D) ;
11 Imhor =(1/2) ∗(A−C−B+D) ;
12 Imdiag =(1/2) ∗(A−C+B−D) ;
13 f i g u r e , imshow ( [ Im0 im2uint8 ( mat2gray ( I m v e r t ) ) ; . . .
14 im2uint8 ( mat2gray ( Imhor ) ) im2uint8 ( mat2gray ( Imdiag ) ) ] )
LA
dwt2
1 o r i g=imread ( ’ I 2 . png ’ ) ;
2 X=rg b2gr ay ( o r i g ) ;
A.
3 n b c o l = s i z e (map, 1 ) ;
4 % Perform s i n g l e −l e v e l d e c o m p o s i t i o n
5 % o f X u s i n g haar .
6 [ cA1 , cH1 , cV1 , cD1 ] = dwt2 (X , ’ haar ’ ) ;
7
141
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
2 o r i g=imread ( ’ I 2 . png ’ ) ;
3 img=rgb2gray ( o r i g ) ;
MN
4 f i g u r e ; imshow ( img ) ;
5 [ c , s]=wavedec2 ( double ( img ) , 1 , ’ haar ’ ) ;
6
7 % appcoef2 : E x t r a c t a p p r o x i m a t i o n c o e f f i c i e n t s
8 % at l e v e l 1.
LA
11 % detcoef2 : Extract d e t a i l s c o e f f i c i e n t s at l e v e l 1
12 % i n each o r i e n t a t i o n , from w a v e l e t d e c o m p o s i t i o n
13 % structure [c , s ].
A.
142
4.4. DÉFINITION DES ONDELETTES : DÉFINITION D’YVES MEYER
II
MN
LA
A.
143