Vous êtes sur la page 1sur 108

IRM-2-BDBI

Data Mining et analyse de données


Méthodes Prédictives

Zouaoui Slim

Année universitaire 2022-2023


Sommaire

Analyse en composantes principales

Analyse factorielle de correspondance


anaconda.com
Méthodes de classification non supervisée

modélisation linéaire simple et multiple

Analyse discriminante
cran.r-project.org
Arbre de Décision

réseaux de neurones
Deep Learning
Modèle linéaire
En étudiant le comportement simultané de deux variables X et Y, on
pourrait trouver une certaine variation simultanée dans les valeurs que peuvent
prendre ces deux variables et ce dans une certaine proportion et même dans deux sens
opposés.

Citons par exemple le cas où X est une variable qui décrit le facteur travail
dans une entreprise et Y est une variable relative à la production de l’entreprise. On
constate que plus la valeur de X s’élève, celle de Y s’élève aussi. Ceci nous ramène à
prédire qu’il pourrait y avoir une relation entre X et Y. On parle alors de régression.

Parmi les objectifs principaux d’une analyse de la régression, on peut citer


les deux points suivants :

1. comprendre comment et dans quelles mesures une variable X influence la


variable dépendante Y.
2. développer un modèle pour prévoir des valeurs de Y futures à partir de celles
que pourrait prendre la variable X.
Dans ce qui suit nous allons nous intéresser au modèle de régression linéaire simple.
C'est-à-dire le cas où la variable Y est en relation linéaire avec une variable X.
Autrement, Y peut s’écrire sous la forme d’une constante donnée à laquelle on ajoute
un coefficient multiplié par X.

I - Présentation et hypothèses du modèle :

I.1. Présentation du modèle :

On cherche à établir s’il y a un lien linéaire entre deux variables X et Y. Le modèle est :

Dans ce modèle, appelé modèle de régression linéaire simple, les composantes ont la
signification suivante :

• Y est la variable dépendante (expliquée ou endogène) à caractère aléatoire.


• X est la variable indépendante (explicative ou exogène) mesurée sans erreur ou fixée à
des niveaux arbitraires.
respect whats causing the other:phenomene de causalité
Exemple : Soit un exemple dans lequel nous voudrions étudier l’existence d’une relation
linéaire entre le prix de vente d’une maison et son estimation municipale et en analysant le
nuage de points obtenu, on peut alors ajouter une droite de tendance qui illustre cette
relation linéaire. On obtient alors le graphique suivant :
II – Les paramètres du modèle :

Les paramètres inconnus du modèle sont de deux sortes : Il y a les coefficients β0 et β1

Dans ce qui suit, on va estimer respectivement ces paramètres par la méthode des moindres
carrés ordinaires (MCO) qui s’avère appropriée pour l’obtention des estimateurs ˆ0 et ˆ1
respectifs des paramètres β0 et β1.

II.1. Estimation des paramètres β0 et β1 :

Le principe consiste à calculer le terme d’erreur qui est l’écart entre yt observé et yt estimé.
On aura alors :
εt = yt - (β0 + β1 X)

La méthode des moindres carrés ordinaires consiste à minimiser, par rapport au


paramètres inconnus du modèle, la somme des carrés des écarts (ou des résidus) appelée
SCR et qui est égale à :
n
SCR    t
2

t 1
Nous allons alors minimiser l’expression SCR par rapport à β0 et β1. Les conditions de
minimisation sont les suivantes :
n
Min SCR  Min  t
2

t 1
 ;
0 1

 SCR
 0
  0  2 SCR
Conditions de premier ordre :
 Condition de deuxième ordre : 0
 SCR 0  0 1

 1
La condition de second ordre est vérifiée. On obtient alors les estimateurs des moindres
carrés ordinaires suivants :
ˆ0  y  1 x
 n
ˆ0  y  1 x

  x (y  y) 
 ˆ cov( X , Y )
t t
ˆ
 1 
1  var( X )
t 1
n Ou bien



 x (x
t 1
t t  x)

Exemple :
Le syndic s’intéresse au rapport entre l’âge et le revenu des résidents d’une ville. Il
sélectionne un échantillon aléatoire simple de taille n = 12. .

Revenu infulencé par age


Exemple (suite) :

β̂1

β̂0 revenue=39885+279.7*age+e
Calcul SCR :
Tests de significativité des paramètres :

Après avoir estimé les paramètres du modèle par leurs estimateurs respectifs, on voudrait
savoir si le modèle qu’on a établi peut admettre la constante ou non. D’autre part, on
voudrait connaître si la variable X explique la variable Y ou non.
Autrement, dans notre modèle, nous avons postulé qu’il y a une relation de cause à effet
entre les variables X et Y. D’après l’échantillon composé de n observations qu’on a, nous
allons confirmer le modèle ou bien l’infirmer. Pour cela, nous allons procéder à des tests de
significativité des paramètres du modèle.

Nous allons chercher la loi de probabilité à utiliser pour effectuer le test de significativité.
On connaît que

β̂ i  β i
~ N 0 ;1
var(β̂ i )
On pose une hypothèse nulle H0 selon laquelle la valeur du paramètre est nulle (le modèle
n’admet pas de constante) contre une hypothèse alternative H1 selon laquelle le paramètre
est significatif (différent de 0). Les hypothèses sont présentées ainsi :

H 0 : β i  0

H1 : β i  0

Nous allons comparer le terme tc (la statistique t calculée) à la valeur tα/2 (la valeur critique
qui est extraite à partir de la table de la loi de Student à (n-2) degrés de liberté).

β̂ i  β i
tc 
Vˆ ( ˆ )
i

Sous l’hypothèse H0, on a βi  0


Si t c t / 2 c'est-à-dire  t  / 2  t c  t  / 2 , nous allons accepter l’hypothèse H0 qui stipule
que la constante β i  0 avec un risque de se tromper égal à  (pour cela  doit être
faible et généralement égale à 0.05).

Si t c  t  / 2 c'est-à-dire t c  t  / 2 ou t c  t  / 2 , nous allons rejeter l’hypothèse H0 et


accepter l’hypothèse alternative H1 selon laquelle la constante β i est significative.

On peut représenter le test


par le schéma suivant où
la zone hachurée
représente la zone de rejet
alors que la zone vide
représente la zone
d’acceptation du test
III – coefficient de détermination R² :
On note l’expression suivante : R 2 
SCE Avec
SCT
n

 y t  y 
n n

  ŷt  y 2  ˆ 12 m XX  ˆ
2
SCT   m YY SCE  SCR 
2
 m YY  ˆ 12 m XX
t
t 1 t 1
t 1

SCE représente la variation expliquée.


SCR représente la variation inexpliquée due aux variables omises dans le modèle.

Si R²=0,9 ; on dit que 90% de la variation de X est expliquée par la variation de Y .

Si R²=0,1 ; la variation de X contribue à hauteur de 10% dans l’explication de la variation


de Y. Par conséquent, la variable explicative ne suffit pas à elle seule à expliquer la
variable expliquée . On doit dans ce cas introduire d’autres variables dans le modèle sans
pour autant rejeter automatiquement la variable X. Ce qu’on appelle modèle linéaire
multiple
Modèle linéaire multiple

Estimer la relation entre une variable dépendante(Y ) quantitative et plusieurs


variables indépendantes (X1,X2, …)
•Equation de régression multiple : Cette équation précise la façon dont la variable
dépendante est reliée aux variables explicatives :
Ecriture matricielle du modèle

La méthode des moindres carrés donne pour résultat :

E ( ˆ )   
V ( ˆ )   2 X T X 
1

Le principale du test et l’intervalle de confiance sont les même comme dans le cas du
modèle linéaire simple pour chaque paramètre βi quelconque.
Sommaire

Analyse en composantes principales

Analyse factorielle de correspondance


anaconda.com
Méthodes de classification non supervisée

modélisation linéaire simple et multiple

Analyse discriminante
cran.r-project.org
Arbre de Décision

réseaux de neurones
Deep Learning
Analyse discriminante
Situation : on a un ensemble d’individus caractérisés par une variable à
expliquer Y qualitative et des variables explicatives Xi quantitatives
• Analyse discriminante descriptive: trouver une représentation des
individus qui sépare le mieux les groupes.
• Analyse discriminante prédictive: trouver des règles d’affectation des
individus à leur groupe

 L’analyse discriminante offre des solutions à ces deux problématiques

Principe de l’analyse discriminante

• Créer une méthode pour choisir entre les combinaisons linéaires des
variables celle qui maximise l'homogénéité de chaque classe (Fisher 1936)
Domaines d’application

Médecine : Connaissant les symptômes présentés par un patient,


peut-on porter un diagnostic sur sa maladie ?
Finance :
- A partir des bilans d’une société, est-il possible d’estimer son risque de
faillite à 2 ans ou 3 ans (scoring financier) ?
- Au moment d’une demande de prêt par un client, peut-on prévoir en
fonction des caractéristiques du client, le risque des crédits (scoring)
Pétrole : Au vu des analyses des carottes issues d’un forage, est-il
possible de présumer de l’existence d’une nappe de pétrole ?
Télédétection : A partir de mesures par satellite des ondes réfléchies ou
absorbées par le sol dans différentes longueurs d’onde, peut-on
reconstituer automatiquement la nature du terrain étudié (forêt, sable,
ville, mer...) ?
Marketing : Connaissant les caractéristiques d’un client, peut-on prévoir
sa réponse à une offre de produit par courrier ?
I - Analyse discriminante descriptive
I - Analyse discriminante descriptive
Critère d’optimisation de la projection
Exemple : analyse discriminante pour k=3

• Géométriquement: le 1er facteur détermine un axe dans le nuage de points (passant par
l'origine) tel que les projections des points sur cet axe aient une variance inter-classes
(variance des moyennes de classe) maximale.

• Le 2eme facteur (F2) est non corrélé (perpendiculaire) au 1er et de variance inter-classes
max. Etc pour le 3eme ...
II - Analyse discriminante prédictive

• Les facteurs discriminants donnent la meilleure représentation de


la séparation des k centroïdes de classe (dans un espace orthonormé)

 pour un individu x projeté dans l'espace des facteurs: attribuer la


classe dont le centroïde est le plus proche.

détermination de 3 régions de
décision (R1, R2 , R3) délimitant les
points ‘sensés’ appartenir aux
différentes classes.
Analyse discriminante prédictive

• Distance d de 2 points x et y : d²(x,y) = (x-y)’ W-1 (x-y)

avec W : matrice intra-classes des groupes.

• On classe x dans le groupe Gi pour lequel la distance au centre gi est


minimale :

d²(x,gi) = (x-gi)’ W-1(x-gi) = x’ W-1 x – 2gi’ W-1 x + gi’ W-1 gi

Minimiser d²(x,gi) Maximiser 2gi’ W-1 x - gi’ W-1 gi

gi’ W-1 gi est une constante ne dépend pas de x


Analyse discriminante prédictive

Minimiser d²(x,gi) Maximiser 2gi’ W-1 x

• Pour chacun des k groupes Gi, on a une fonction discriminante de


Fisher :

2gi’ W-1 x = αi + βi,1X1 + βi,2X2 + … βi,pXp

• et on classe x dans le groupe pour lequel la fonction est maximale


Exemple analyse discriminante (Logiciel R)
La collection des iris de Fisher est probablement l’une des plus célèbres
dans le domaine de la reconnaissance de formes. Bien qu’ancienne, elle
continue de faire référence dans le domaine. Le corpus consigne des
mesures biométriques relevées sur des échantillons végétaux de type iris

1. longueur du sépale (en centimètres)


2. largeur du sépale (en centimètres)
3. longueur du pétal (en centimètres)
4. largeur du pétal (en centimètres)
5. espèces florales (setosa, versicolor et virginica)

Les 150 individus de la base sont répartis en trois classes équilibrées (50
individus dans chaque catégorie) correspondant à trois espèces florales :
iris setosa, iris versicolor et iris virginica.
> plot(iris[1:4], pch=20,col=c("red", "green", "blue")[as.numeric(iris$Species)])
> res= lda(Species~.,data=iris)
> res
Call:
lda(Species ~ ., data = iris)

Prior probabilities of groups:


setosa versicolor virginica
0.3333333 0.3333333 0.3333333

Group means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
setosa 5.006 3.428 1.462 0.246
versicolor 5.936 2.770 4.260 1.326
virginica 6.588 2.974 5.552 2.026

Coefficients of linear discriminants:


LD1 LD2
Sepal.Length 0.8293776 0.02410215
Sepal.Width 1.5344731 2.16452123
Petal.Length -2.2012117 -0.93192121
Petal.Width -2.8104603 2.83918785

Proportion of trace:
LD1 LD2
0.9912 0.0088
> res.pred=predict(res)
> res.pred
$class
[1] setosa setosa setosa setosa setosa setosa
[7] setosa setosa setosa setosa setosa setosa
………………………………….
[[139] virginica virginica virginica virginica virginica virginica
[145] virginica virginica virginica virginica virginica virginica
Levels: setosa versicolor virginica
$posterior
setosa versicolor virginica
1 1.000000e+00 3.896358e-22 2.611168e-42
2 1.000000e+00 7.217970e-18 5.042143e-37
3 9 1.000000e+00 1.902813e-15 9.482936e-34
…………………….
149 1.613687e-40 1.257468e-05 9.999874e-01
150 2.858012e-33 1.754229e-02 9.824577e-01

$x
LD1 LD2
1 8.0617998 0.300420621
2 7.1286877 -0.786660426
…………………….
149 -5.8861454 2.345090513
150 -4.6831543 0.332033811
 plot(res.pred$x[,1],res.pred$x[,2],bg=iris$Sp,pch=21, main="Analyse factorielle
discriminante sur les données Iris", xlab="premier axe discriminant",ylab="second axe
discriminant", cex.lab=1.5,cex.main=2)
 points(m[,1],m[,2],pch=15,bg=1:3,cex=2,col=1:3)
Exemple analyse discriminante prédictive

Question: prédire la classe de la fleur de coordonnées (4.5, 3, 1.5, 0.2 )

 Réponse :
Score_Setosa= (2.35*4.5)+(2.35*3)+(-1.64*1.5)+(-1.73*0.2)-86.3=-71.48
Score_Versicolor= (1.56*4.5)+(0.7*3)+(0.52*1.5)+(0.64*0.2)-72.85= -62.82
Score_Virginica= (1.24*4.5)+(0.36*3)+(1.27*1.5)+(2.1*0.2)-104.36= -95.37

F appartient à la classe Versicolor car Score_Versicolor est la valeur


maximal
Sommaire

Analyse en composantes principales

Analyse factorielle de correspondance


anaconda.com
Méthodes de classification non supervisée

modélisation linéaire simple et multiple

Analyse discriminante
cran.r-project.org
Arbre de Décision

réseaux de neurones
Deep Learning
Arbre de Décision
Arbre de Décision
Objectifs des méthodes prédictives
Arbre de Décision – classification supervisée
Comparaison entre méthodes de classification supervisée et non
supervisée
Arbre de Décision
Principe arbre de décision
 Réaliser la classification d'un objet par une
suite de tests sur les attributs qui le décrivent.
 Organiser l'ensemble des tests possible
comme un arbre

 Une feuille de cette arbre désigne une des


C classes (mais à chaque classe peut
correspondre plusieurs feuilles).
 Chaque nœud est associé un test portant
sur un ou plusieurs attributs.
 La classification s’effectue en partant de la
racine pour poursuivre récursivement le
processus jusqu’à ce qu’on rencontre une feuille.
Exemple bancaire
Prédire si un client pourra rembourser son prêt avec succès (classe OUI) ou un
client qui a des difficultés de remboursement (classe NON)
Représentation par arbre de décision

 Chaque nœud interne teste un attribut


 Chaque branche correspond à une valeur d’attribut
 Chaque feuille correspond à une classe unique (décision OUI ou décision
NON) ou une classe majoritaire
 On cherche un arbre le plus «simple» possible expliquant l’ensemble des cas
Construction de l’arbre de décision
 Comment choisir, parmi l’ensemble des variables disponibles, la variable de
segmentation d’un sommet ?

 Lorsque la variable est continue, comment déterminer le seuil de coupure lors de


la segmentation ?

 Comment déterminer la bonne taille de l’arbre ?


 Comment affecter la valeur de la variable à prédire dans les feuilles?
Déroulement de la construction
 Recherche de la variable qui sépare le mieux
 Appliquer la séparation à la population
 Obtention des nouveaux nœuds
 Arrêt de l’approfondissement de l’arbre lorsque les conditions d’arrêts sont
rencontrées.
Algorithme Arbre de décision
Conditions d’arrêts existantes
1- Profondeur de l’arbre atteint une limite fixée (=nombre de variables utilisées)
2- Nombre de feuilles atteint un maximum fixé
3- L’effectif de chaque nœud est inférieur à un seuil fixé
4- La qualité de l’arbre est suffisante
5- La qualité de l’arbre n’augmente plus de façon sensible

Choix du meilleur attribut


Comment trouver les variables qui séparent le mieux les individus de chaque classe ?

Plusieurs critères de choix de variables correspondant à différents types d’arbres :

1- CART (Classification And Regression Tree : Indice de Gini)


2- CHAID (Chi square Automatic Interaction Detection)
3- C5.0 (Entropie de Shannon)
Algorithme de CART
Parmi les plus performants et plus répandus
- Accepte tout type de variables
- Utilise le Critère de séparation : Indice de Gini
Avec
n : nombre de classes à prédire
fi : fréquence de la classe dans le nœud

 Plus l’indice de Gini est bas, plus le nœud est pure


 En séparant 1 nœud en 2 nœuds fils on cherche la plus grande hausse de la
pureté
 La variable la plus discriminante doit maximiser
IG(avant séparation)-[ffils1 * IG(fils1)+……+ ffilsn*IG(filsn)]
Exemple bancaire (suite)
Arbre de décision associé
Arbre de décision associé
Construction arbre – Exemple Bancaire: Etape 1
N=14
N(oui)=9 14(9,5) 1‐(9/14)^(2)‐(5/14)^(2) 1‐(9/14)^(2)‐(5/14)^(2)
N(non)=5 0,459 0,459
Logement Salaire

5(2,3) 4(4,0) 5(3,2) 7(3,4) 7(6,1)


locataire propriétaire famille Moyen Elevé
1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2) 1‐(3/7)^(2)‐(4/7)^(2) 1‐(6/7)^(2)‐(1/7)^(2)
0,480 0,000 0,480 0,490 0,245
0,116 0,092

1‐(9/14)^(2)‐(5/14)^(2) 1‐(9/14)^(2)‐(5/14)^(2)
0,459 0,459
Grade Salaire.Part

4(2,2) 6(4,2) 4(3,1) 6(3,3) 8(6,2)


A B C Faible Elevé
1‐(2/4)^(2)‐(2/4)^(2) 1‐(4/6)^(2)‐(2/6)^(2) 1‐(3/4)^(2)‐(1/4)^(2) 1‐(3/6)^(2)‐(3/6)^(2) 1‐(6/8)^(2)‐(2/8)^(2)
0,500 0,444 0,375 0,500 0,375
0,019 0,022
Construction arbre – Exemple Bancaire : Etape 2

1‐(9/14)^(2)‐(5/14)^(2)
0,459
Logement

5(2,3) 4(4,0) 5(3,2)


locataire propriétaire famille
1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2)
0,480 0,000 0,480
Salaire Salaire

3(0,3) 2(2,0) 3(2,1) 2(1,1)


Moyen Elevé Elevé Moyen
1‐(0/3)^(2)‐(3/3)^(2) 1‐(2/2)^(2)‐(0/2)^(2) 1‐(2/3)^(2)‐(1/3)^(2) 1‐(1/2)^(2)‐(1/2)^(2)
0,000 0,000 0,444 0,500
0,480 0,013
Construction arbre – Exemple Bancaire : Etape 2

1‐(9/14)^(2)‐(5/14)^(2)
0,459
Logement

5(2,3) 4(4,0) 5(3,2)


locataire propriétaire famille
1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2)
0,480 0,000 0,480
Salaire.Part Salaire.Part

2(1,1) 3(1,2) 3(3,0) 2(0,2)


Faible Elevé Elevé Faible
1‐(1/2)^(2)‐(1/2)^(2) 1‐(1/3)^(2)‐(2/3)^(2) 1‐(3/3)^(2)‐(0/3)^(2) 1‐(0/2)^(2)‐(2/2)^(2)
0,500 0,444 0,000 0,000
0,013 0,480
Construction arbre – Exemple Bancaire : Etape 2

1‐(9/14)^(2)‐(5/14)^(2)
0,459
Logement

5(2,3) 4(4,0) 5(3,2)


locataire propriétaire famille
1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2)
0,480 0,000 0,480
Grade Grade

2(2,0) 2(1,1) 1(1,0) 0(0,0) 3(2,1) 2(1,1)


A B C A B C
1‐(2/2)^(2)‐(0/2)^(2) 1‐(1/2)^(2)‐(1/2)^(2) 1‐(1/1)^(2)‐(0/1)^(2) ‐ 1‐(2/3)^(2)‐(1/3)^(2) 1‐(1/2)^(2)‐(1/2)^(2)
0,000 0,500 0,000 0,000 0,444 0,500
0,280 0,013
Construction arbre – Exemple Bancaire : Etape 2 1‐(9/14)^(2)‐(5/14)^(2)
1‐(9/14)^(2)‐(5/14)^(2)
0,459
0,459
Logement Logement

5(2,3) 4(4,0) 5(2,3) 4(4,0)


locataire propriétaire locataire propriétaire
1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2) 1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2)
0,480 0,000 0,480 0,000
Salaire Salaire.Part

3(0,3) 2(2,0) 2(1,1) 3(1,2)


Moyen Elevé Faible Elevé
1‐(0/3)^(2)‐(3/3)^(2) 1‐(2/2)^(2)‐(0/2)^(2) 1‐(1/2)^(2)‐(1/2)^(2) 1‐(1/3)^(2)‐(2/3)^(2)
0,000 0,000 1‐(9/14)^(2)‐(5/14)^(2)
0,500 0,444
0,480 0,459 0,013
Logement

5(2,3) 4(4,0)
locataire propriétaire
1‐(2/5)^(2)‐(3/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2)
0,480 0,000
Grade

2(2,0) 2(1,1) 1(1,0)


A B C
1‐(2/2)^(2)‐(0/2)^(2) 1‐(1/2)^(2)‐(1/2)^(2) 1‐(1/1)^(2)‐(0/1)^(2)
0,000 0,500 0,000
0,280
Construction arbre – Exemple Bancaire : Etape 2
1‐(9/14)^(2)‐(5/14)^(2) 1‐(9/14)^(2)‐(5/14)^(2)
0,459 0,459
Logement Logement

4(4,0) 5(3,2) 4(4,0) 5(3,2)


propriétaire famille propriétaire famille
1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2) 1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2)
0,000 0,480
0,000 0,480
Salaire
Salaire.Part

3(2,1) 2(1,1)
Elevé Moyen 3(3,0) 2(0,2)
1‐(2/3)^(2)‐(1/3)^(2) 1‐(1/2)^(2)‐(1/2)^(2) Elevé Faible
0,444 0,500 1‐(3/3)^(2)‐(0/3)^(2) 1‐(0/2)^(2)‐(2/2)^(2)
0,013 0,000 0,000
0,480

1‐(9/14)^(2)‐(5/14)^(2)
0,459
Logement

4(4,0) 5(3,2)
propriétaire famille
1‐(4/4)^(2)‐(0/4)^(2) 1‐(3/5)^(2)‐(2/5)^(2)
0,000 0,480
Grade

1(1,0) 0(0,0) 3(2,1) 2(1,1)


C A B C
1‐(1/1)^(2)‐(0/1)^(2) ‐ 1‐(2/3)^(2)‐(1/3)^(2) 1‐(1/2)^(2)‐(1/2)^(2)
0,000 0,000 0,444 0,500
0,013
Base de règles d’apprentissage
Points forts
1- connaissances « intelligibles » -- validation d’expert
2- traduction directe de l’arbre vers une base de règles
3- sélection automatique des variables pertinentes
4- non paramétrique
5- traitement indifférencié selon le type des variables
6- robuste face aux données aberrantes
7- rapidité intéressante sur des bases de taille moyenne

Points faibles
1- problème de stabilité sur les petites bases de données
2- masque l’intérêt des variables non sélectionnées
3- recherche « pas-à-pas » : difficulté à trouver les interactions
TP : Arbre de Décision
Exemple : Jeu de tennis
Exemple : Jeu de tennis
Les commandes suivantes permettent de construire l'arbre de décision.
Tout d'abord, on doit spécifier quelques paramètres qui précise comment l'arbre
de décision doit être construit.
On tapera la commande suivante :

> ad.tennis.cnt = rpart.control (minsplit = 1)


 La variable ad.tennis.cnt stocke les paramètres de l'algorithme.
 minsplit = 1 signifie que le nombre minimal d'exemples nécessaires à la
création d'un nœud est 1. La valeur par défaut est 20. Comme le jeu de données
contient moins de 20 exemples, utiliser la valeur par défaut ne produirait pas
d'arbre du tout, juste une racine ! .
 Remarque : le nom utilisé pour cette variable, ad.tennis.cnt suit la convention R :
il indique qu'il s'agît d'un arbre de décision (préfixe ad), pour le jeu de tennis
(tennis !) et qu'il s'agît des paramètres de contrôle (cnt) ; des points (.) séparent ces
différentes informations. Tout cela est complètement libre .
On va construire l'arbre de décision en indiquant :

- l'attribut qui doit être prédit (la classe : Jouer) ;


- les attributs qui doivent être utilisés pour effectuer cette prédiction (pour l'instant,
ce seront les 4 autres attributs) ;
- le jeu d'exemples avec lequel on construit l'arbre ;
- le nom de la variable qui contient les paramètres.
C'est ce que fait la commande suivante :

> ad.tennis = rpart (Jouer ~ Ciel + Température + Humidité + Vent, tennis,


control = ad.tennis.cnt)
 Dans cette commande, la notation :

Jouer ~ Ciel + Température + Humidité + Vent, tennis


est courante en R, lorsqu'il s'agît de construire un modèle de prédiction
(classification supervisée ou régression). Elle signifie : prédire l'attribut Jouer en
fonction des attributs Ciel, Température, Humidité et Vent
Après avoir effectuer cette commande, la variable ad.tennis contient l'arbre de
décision qui a été construit. Regardons à quoi il ressemble.
Essayer chaque commande et toutes les valeurs affichées :

plot (ad.tennis, uniform=T); text (ad.tennis, use.n=T, all=T)


plot (ad.tennis, branch=0); plot (ad.tennis, branch=.7); text (ad.tennis, use.n=T)
plot (ad.tennis, branch=.4, uniform=T, compress=T); text (ad.tennis, all=T,use.n=T)
plot (ad.tennis, branch=.2, uniform=T, compress=T, margin=.1); text (ad.tennis,
all=T, use.n=T, fancy=T)
La prédiction de la classe d'une donnée par un arbre de décision

La fonction predict() utilise un arbre de décision pour prédire la classe de


nouvelles données. Elle prend en paramètres l'arbre et un data frame qui contient
les données dont il faut prédire la classe. Pour prédire la classe des données du jeu
d'exemples (avec lesquels on a construit l'arbre de décision), on tapera la
commande :

> predict(ad.tennis, tennis)


Exercice : utilisez l'arbre pour donner une prédiction dans les situations suivantes :

Fichier Tennis2

> tennis_pred=read.table("tennis2.txt", header=T)


> predict(ad.tennis, tennis_pred)
Sommaire

Analyse en composantes principales

Analyse factorielle de correspondance


anaconda.com
Méthodes de classification non supervisée

modélisation linéaire simple et multiple

Analyse discriminante
cran.r-project.org
Arbre de Décision

Réseaux de neurones
Deep Learning
Réseaux de neurones
Types d’applications
Méthodes supervisées
Fondement biologique
 L’élément fondamental du systèmes nerveux est le neurone ou cellule nerveuse.
 Le système nerveux peut être vu comme un ensemble de neurones interconnectés.
 Les dendrites sont donc les organes d'entrées du neurone et l'axone son unité de
sortie.
Fondement biologique
L'axone se divise et ses ramifications sont reliées aux dendrites d'autres neurones
ainsi qu'éventuellement aux siennes : les points de jonction sont les synapses; elles
sont caractérisées par une efficacité synaptique qui peut être vue comme un
amplificateur de l'impulsion qui traverse la synapse.
Fondement biologique
Chaque neurone possède en son noyau un additionneur qui somme les impulsions
électriques amplifiées par les synapses à l'entrée dans le neurone et un seuil de
stimulation. Si l'excitation totale du neurone excède le seuil de stimulation, le
noyau initie une impulsion.
Fondement biologique

Quelques chiffres:

 La durée d'une impulsion est de l'ordre de la milliseconde et l'amplitude


d'environ 0,1 Volt.

 La vitesse de propagation de l'influx nerveux est de 100 m/s environ donc bien
inférieure à la vitesse de transmission de l'information dans un réseau électronique.

 Chaque neurone intègre en permanence jusqu'à 1000 synaptiques mais le


nombre de contacts synaptiques par neurones peut atteindre plusieurs dizaine de
milliers.

 Le cerveau contient environ 100 milliards de neurones donc, par analogie


avec la théorie des graphes, le nombre de connexions (arcs) est de l'ordre de
104(degré) * 1011(nombre de sommets) soit 1015environ.
Neurone artificiel
De façon naturelle, on représente un neurone par une unité de calcul ayant :

• des entrées (dendrites +synapses)


• une sortie (axone)
• des connexions pondérées avec les autres neurones (efficacité synaptique)
• un additionneur
• un seuil d'activation
• un signal de sortie

Principes :
- coefficient synaptique : coefficient réel
- sommation des signaux arrivant au
neurone
- sortie obtenue après application
d’une fonction de transfert
Les réseaux de neurones
Modélisation :
• Le neurone reçoit les entrées x1, …, xi, …, xn.
• Le potentiel d’activation du neurone p est défini comme la somme pondérée (les
poids sont les coefficients synaptiques wi) des entrées.
• La sortie o est alors calculée en fonction du seuil θ

Soit : p = x.w= x1.w1 + … + xi.wi+ … +xn.wn

Alors : o = 1 si p > θ
o = 0 si p ≤ θ
Les réseaux de neurones
Définitions
- Déterminer un réseau de neurones = Trouver les coefficients synaptiques.
- On parle de phase d’apprentissage : les caractéristiques du réseau sont modifiées
jusqu’à ce que le comportement désiré soit obtenu.
Les réseaux de neurones
Définitions

- Base d’apprentissage : exemples représentatifs du comportement ou de le


fonction à modéliser . Ces exemples sont sous la forme de couples (entrée ; sortie)
connus.
- Base d’essai ou de test : pour une entrée quelconque (bruitée ou incomplète),
calculer la sortie. On peut alors évaluer la performance du réseau.
Simulation du perceptron simple

Le perceptron simple est un modèle de prédiction linéaire


Apprentissage du perceptron simple

calculer la sortie. On peut alors évaluer la performance du réseau.


Apprentissage par l ’algorithme du perceptron
Perceptron : exemple
Apprentissage par l’algorithme de perceptron du OU : les descriptions
appartiennent à {0,1}2, les entrées du perceptron appartiennent à {0,1}3, la
première composante correspond à l'entrée x0 et vaut toujours 1, les deux
composantes suivantes correspondent aux variables x1 et x2 .
On suppose qu'à l'initialisation, les poids suivants ont été choisis w0=0 ; w1 = 1 et
w2 = -1.
Perceptron : exemple
Apprentissage par l’algorithme de perceptron : exemple

Donc : w0 = 0 ; w1 = 1 ; w2 = 1
Ce perceptron calcule le OU logique pour tout couple (x1 ; x2)
Avantages des réseaux de neurones
Aptitude à modéliser des structures complexes et des données irrégulières

Assez bonne robustesse aux données bruitées

Aptitude à modéliser des problèmes très variés.

La variable cible peut être quantitative ou qualitative

Inconvénients des réseaux de neurones


Résultats totalement non explicites

Sensibilité à un trop grand nombre de variables non discriminantes (contrairement aux arbres de
décision)
Inconvénients des réseaux de neurones
Résultats totalement non explicites

Sensibilité à un trop grand nombre de variables non discriminantes


(contrairement aux arbres de décision)
PERCEPTRON : EXERCICE 1
Apprentissage d'un ensemble linéairement séparable :
les descriptions appartiennent à R2, le concept cible est défini à
l'aide de la droite d'équation y=x/2. Les couples (x,y) tels que
y>x/2 sont de classe 1 ; Les couples (x,y) tels que y <= x/2 sont de
classe 0. L'échantillon d'entrée est :
S={((0,2),1), ((1,1),1), ((1,2.5),1), ((2,0),0), ((3,0.5),0)}.
On suppose qu'à l'initialisation, les poids ont été choisis :
w0=0 ; w1 = 0 et w2 = 0.
On choisit de présenter tous les exemples en alternant exemple
positif (de classe 1) et exemple négatif.
PERCEPTRON : EXERCICE 1
L'échantillon d'entrée est :
S={((0,2),1), ((2,0),0), ((1,1),1), ((3,0.5),0), ((1,2.5),1)}.
On suppose qu'à l'initialisation, les poids ont été choisis :
w0=0 ; w1 = 0 et w2 = 0.

x0 x1 x2

somme xi*wi
New wi=old wi+(c-o)*xi

o depend du somme voir cours


PERCEPTRON : EXERCICE 1
L'échantillon d'entrée est :
S={((0,2),1), ((2,0),0), ((1,1),1), ((3,0.5),0), ((1,2.5),1)}.
On suppose qu'à l'initialisation, les poids ont été choisis :
w0=0 ; w1 = 0 et w2 = 0.
PERCEPTRON : EXERCICE 2
Apprentissage de parité :
Considérons un afficheur numérique à sept segments et formons
un perceptron donnant la parité du chiffre écrit, à savoir 0 s'il est
pair et 1 sinon.
PERCEPTRON : EXERCICE 2
PERCEPTRON : EXERCICE 2
Trace de l’algorithme
Sommaire

Analyse en composantes principales

Analyse factorielle de correspondance


anaconda.com
Méthodes de classification non supervisée

modélisation linéaire simple et multiple

Analyse discriminante
cran.r-project.org
Arbre de Décision

Réseaux de neurones

Deep Learning
descente du gradient, problèmes multi‐classes, Deep Learning

PLUS LOIN AVEC LE PERCEPTRON SIMPLE


Le Perceptron Simple Problème à deux classes (positif et négatif)
Y ∈ 1 ,0
Couche d’entrée Couche de sortie

Fonction de transfert
Biais X0=1
Fonction à seuil ‐‐ Fonction de Heaviside
a0
X1
a1 1

Entrées X2 0
Descripteurs a2 d(X )
 
a3
X3
Modèle de prédiction et règle d’affectation

Poids synaptiques ( )= + + +
0 1 1 2 2 3 3

Si ( ) > 0 Alors = 1 Sinon =0

Le perceptron simple est un modèle de prédiction (supervisé) linéaire


Exemple – Apprentissage de la fonction AND (ET logique)
Cet exemple est révélateur – Les premières applications proviennent de l’informatique

1.5

1.3

X1 X2 Y 1.1

0.9
1
0 0 0 0.7

0.5
0 1 0 0.3

1 0 0 0.1

- 0.1

1 1 1 - 0.3

- 0.5
- 0.5 0 0.5 1 1.5

Données Représentation dans le plan

Principales étapes :
1. Mélanger aléatoirement les observations
2. Initialiser aléatoirement les poids synaptiques
3. Faire passer les observations unes à unes Une observation peut
passer plusieurs fois !
• Calculer l’erreur de prédiction pour l’observation
• Mettre à jour les poids synaptiques
4. Jusqu’à convergence du processus
Le Perceptron
 On peut construire des Perceptrons capables de
réaliser les fonctions logiques : ET / OU

 Mais le Perceptron est incapable de distinguer les
patrons non séparables linéairement.
OU Exclusif (XOR)
Données non linéairement séparables !

Associer plusieurs
perceptrons :
perceptron multi-
couches

95
Pouvoir séparateur

L’augmentation du nombre de couches et du nombre de neurones accroit le


pouvoir de séparation
PERCEPTRON MULTICOUCHE
Problème du XOR – L’impossible séparation linéaire
1. 5

1. 3
1
X1 X2 Y 1.1

0 .9
0 0 0 0 .7
Non séparable linéairement
0 1 1 0 .5

1
0 .3
(Minsky & Papert, 1969)
1 0 1 0.1

- 0.1

1 1 0 - 0 .3

- 0 .5

Données
- 0.5 0 0 .5 1 1. 5

1.0

X0=1
0.8
0.6

X1
X2

0.4

Un perceptron simple ne sait  X2


0.2

traiter que les problèmes 


0.0

linéairement séparables. Trouver une droite de séparation


-0.4 -0.2 0.0 0.2 0.4

X1 efficace n’est pas possible.
Perceptron multicouche - Principe

Perceptron Multicouche (PMC)


1.0

Une combinaison de séparateurs linéaires


0.8

permet de produire un séparateur global 


0.6
X2

non‐linéaire (Rumelhart, 1986).


0.4

On peut avoir plusieurs couches cachées,


0.2
0.0

-0.4 -0.2 0.0 0.2 0.4

X1

X0=1

1 1
X0=1

X1 -116.47063
X1
Z

X2 63.08049
X2
Error: 14.163132 Steps: 22302
Couche d’entrée Couche cachée Couche de sortie
Descente de gradient
Algorithme du gradient (descente de gradient)

Parfois la résolution analytique n’est pas possible, parce que le nombre de paramètres est élevé par
exemple, ou parce que le calcul serait trop coûteux  approximation avec une approche itérative.

Quasiment impossible de suggérer des


Algorithme du gradient valeurs « intelligentes »

Le « gradient », généralisation 
1. Initialiser avec x0 (au hasard)
multidimensionnelle de la dérivée [si un seul
2. Répéter
paramètre], au point xt. Indique la direction et
,
l’importance de la pente au voisinage de x . t
3. Jusqu’à convergence

η est un paramètre qui permet de moduler la


— parce qu’on cherche à minimiser correction (η trop faible, lenteur de
f(), on prendrait + sinon. convergence ; η trop élevé, oscillation)

Nombre d’itérations fixé, ou différence entre


valeurs successives xt, ou très petit
Optimisation d’une fonction différentiable et convexe

Maximiser ou minimiser une fonction est un problème usuel dans de nombreux domaines.

https://academo.org/demos/3d-surface-plotter

Ex. f(x) = x² ‐ x + 1 ; à minimiser par rapport à x f() est la fonction à minimiser


x joue le rôle de paramètre ici c.‐à‐d. on
recherche la valeur de x qui minimise f()

25

20
La solution analytique passe par :
15

10

En s’assurant que
5

0
‐5 ‐4 ‐3 ‐2 ‐1 0 1 2 3 4 5
Optimisation d’une fonction différentiable et convexe
Optimisation d’une fonction différentiable et convexe

x1

x2
.
.
.
.
.
.
.

xn
35
Exemple : MNIST

MNIST

28 pixels

28 pixels = 784 pixels


784 pixels
Les Données : Base MNIST Structure des données
Reconnaissance de chiffres manuscrits. print (train_images.shape)
60k images d’apprentissage, 10k de test. print (train_labels.shape)
Normalisées, centrées, 28×28 pixels. print (test_images.shape)
http://yann.lecun.com/exdb/mnist print (test_labels.shape)

Les librairies Les résultats


import numpy as np (60000, 28, 28)
import (60000,)
matplotlib.pyplot as plt (10000, 28, 28)
import tensorflow as t f (10000,)
from tensorflow import keras

Chargement de données  Un exemple
mnist = keras.datasets.mnist plt.figure()
(train_images, train_labels), plt.imshow(train_images[0])
(test_images, test_labels) = plt.colorbar()
plt.grid(False)
mnist.load_data()
plt.show()
Résultats du test
t e s t _ l o s s , test_acc = model.evaluate(test_images, tes t_ la b els )
p r i n t("p er t e: {}, accuracy: {}".format( t e s t _ l o s s , test_acc))
Affichage

perte: 0.2213208372950554, accuracy: 0.9381

Un premier exemple avec Keras Les 105 premiers exemples de test

108

Vous aimerez peut-être aussi