1. [Date] Étude Comparatives
des Algorithmes de
Machine Learning
pour la classification
[Sous-titre du document]
IBRAHIM ALI MAHADI
ELEVE INGENIEUR A IAI, TMP
2. Table des Matière
Intrduction..................................................................................................................................1
I. La regression linéaire..........................................................................................................3
II. K-nn pour la classification et la régression ........................................................................3
1. Presentation......................................................................Erreur ! Signet non défini.
III. La régression logistique une méthode de classification (supervisée) ............................4
IV. Support Vector Machine (SVM) algorithme de classification supervise .......................5
V. Neurals Networks pour la classification et la regression....................................................5
A. Le perceptron, un modèle linéaire parametrique ............................................................5
2. Apprentissage d'un perceptron ....................................................................................7
1. Fonction eureur ...........................................................................................................8
B. Architecture d'un perceptron multi-couche ( multilayer perceptron, souvent abrégé «
MLP », en anglais). ................................................................................................................8
1. Perceptron avec une unique couche intermédiaire......................................................8
2. PERCEPTRON MULTI-COUCHES..........................................................................9
VI. Naïve Bayes un algorithme de classification supervise binaire....................................11
VII. Anomaly Detection .......................................................................................................11
VIII. Decision Trees for classification et regression .............................................................12
IX. K-Means classification non supervisee.........................................................................12
X. Gradient Descent ..............................................................................................................13
XI. Learning Vector Quantization (LVQ) pour la classification et la regression for me....15
XII. RandomForest...............................................................................................................15
XIII. Boosting & AdaBoost...................................................................................................16
XIV. Comparaison des algos de classification.......................................................................16
A. Comparaison d'algorithmes supervisés.........................................................................17
B. Resume Algo.......................................................................Erreur ! Signet non défini.
C. Difference Classifixation regression.............................................................................18
D. Aprentissage supervisee, non supersee et renforcee.....................................................18
XV. Resume.................................................................................Erreur ! Signet non défini.
4. I. La régression linéaire
La régression linéaire explique, de manière linéaire, une variable Y en fonction
d'une variable explicative X
• Relation entre la variable à expliquer et la variable explicative
Y=β1+β2X+ε
• Matriciellement, on peut avoir :
on considère:
• Y est une variable aléatoire, observable ;
• X est une explicative, observable vectorielle ou matricielle;
• β, β1 et β2 sont des paramètres inconnus (non observables);
• ε est une variable aléatoire centrée (autour de 0) de variance σ² inconnue
Pour les régressions linéaires simple et multiple, les erreurs (εi) i∈ {1, …, n} vérifient
pour (i, j) i∈ {1, …, n} ² :
• E(εi) =0 (elles sont centrées autour de 0) ;
• Var(εi) =σ² (leur variance, inconnue, est constante et égale à σ² ) ;
• Cov (εi, εj) =0 si i≠j (elles n'ont pas de dépendance linéaire).
• On ajoute pour le modèle linéaire gaussien multiple ε∼N (0, σ2)
II. K-nn pour la classification et la régression
Le k-NN est le diminutif de k Nearest Neighbors. Est un algorithme aussi répandu que la
régression linéaire. Le principe de ce modèle consiste en effet à choisir les k données les
plus proches du point étudié afin d’en prédire sa valeur.
1. Présentation
Le k-NN est "non paramétrique”, un type spécial d’algorithme qui n’utilise pas de modèle
statistique. Il se base uniquement sur les données d’entraînement. Ce type d’algorithme est
appelé memory-based
5. Le k-NN, doit conserver toutes les données d'entraînement en mémoire (memory-based).
Aussi choisir le bon nombre de voisins k, en fonction de l’erreur de généralisation du modèle.
K n'est pas un paramètre mais un hyperparamètre, c'est-à-dire que contrairement aux
paramètres classiques, il ne va pas pouvoir être appris automatiquement par l'algorithme à
partir des données d'entraînement
Pour trouver le k optimal, on va simplement tester notre modèle pour tous les k de 2 à 15,
mesurer l’erreur test et afficher la performance en fonction de k :
III. La régression logistique une méthode
de classification (supervisée)
La régression logistique est une méthode statistique pour des classifications binaires. Elle
prend en entrée des variables prédictives qualitatives et/ou ordinales et mesure la probabilité
de la valeur de sortie en utilisant la fonction sigmoïde (figure)
6. IV. Support Vector Machine (SVM) algorithme de
classification supervise
Machine à Vecteurs de Support (SVM) est un algorithme de classification binaire. Dans
l’image ci-dessus, nous avons deux classes (il s’agit de e-mails, les Spam sont en rouge et les
non spam sont en bleu). La régression Logistique pourra séparer ces deux classes en
définissant le trait en rouge. Le SVM va opter à séparer les deux classes par le trait vert.
Pour des considérations mathématiques, le SVM choisira la séparation la plus nette
possible entre les deux classes (comme le trait vert). C’est pour cela qu’on le nomme
aussi Large Margins classifier (classifieur aux marges larges).
V. Neurals Networks pour la classification et la
régression
B. Le perceptron, un modèle linéaire paramétrique
Le perceptron est formé d'une première couche d'unités (ou neurones) qui permettent de «
lire » les données : chaque unité correspond à une des variables d'entrée. On peut rajouter
une unité de biais qui est toujours activée (elle transmet 1 quelles que soient les données).
Ces unités sont reliées à une seule et unique unité de sortie, qui reçoit la somme des unités
qui lui sont reliées, pondérée par des poids de connexion. Pour p variables x1, x2, …, xp la
7. sortie reçoit donc w0+∑j=1wjxj L'unité de sortie applique alors une fonction d'activation a à
cette sortie.
Un perceptron prédit donc grâce à une fonction de décision f définie
par f(x)=a(∑pj=1wjxj+w0). C’est un modèle paramétrique.
Perceptron Pour la régression, La fonction d'activation est la fonction identité, elle
retourne ce qu'elle a reçu en entier.
Pour la classification binaire, on peut utiliser une fonction de seuil :
On peut aussi utiliser une fonction sigmoïde pour prédire la probabilité d'appartenir à la
classe positive (la fonction d'activation est la fonction logistique)
Pour la classification multi-classe, Au lieu d'utiliser une seule unité de sortie, le perceptron
va en utiliser autant que de classes. Chacune de ces unités sera connectée à toutes les unités
d'entrée. On aura donc ainsi K.(p+1) poids de connexion, où K est le nombre de classes.
8. On peut alors utiliser comme fonction d'activation la fonction softmax. Une généralisation de
la sigmoïde.
a) Algorithme DE HEBB
µ est une constante positive.
Initialiser aléatoirement les coefficients wi
Répéter :
Prendre un exemple (e, c) dans S
Calculer la sortie o du réseau
Pour l ’entrée e
Si c ≠ o
Modification des poids wij :
wij = wij + µ ∗ (ai ∗ aj)
Fin Si
Fin Pour
Fin Répéter
2. Apprentissage d'un perceptron
L'entraînement d'un perceptron est un processus itératif. Après chaque observation, nous
allons ajuster les poids de connexion de sorte à réduire l'erreur de prédiction faite par le
perceptron dans son état actuel. Pour cela, nous allons utiliser l'algorithme du gradient :
Ainsi, nous commençons par choisir aléatoirement des valeurs initiales pour nos poids de
connexion. Ensuite, après chaque observation, nous allons appliquer à chacun des poids la
règle de mise à jour suivante :
ηest un hyperparamètre du réseau de neurones, appelé la vitesse
d'apprentissage (ou Learning rate en anglais).
On peut itérer plusieurs fois sur l'intégralité du jeu de données.
9. a) Apprentissage par l ’algorithme du perceptron
Algorithme
On note S la base d ’apprentissage.
S est composée de couples (x, c) où :
x est le vecteur associé à l ’entrée (x0, x1, …, xn)
c la sortie correspondante souhaitée
On cherche à déterminer les coefficients (w0, w1, …, wn).
Initialiser aléatoirement les coefficients wi.
Répéter :
Prendre un exemple (x, c) dans S
Calculer la sortie o du réseau pour l ’entrée x
Mettre à jour les poids :
Pour i de 0 à n :
wi = wi + ε ∗ (c − o) ∗ xi
Fin Pour
Fin Répéter
1. Fonction erreur
Dans le cas de la régression, nous allons choisir l'erreur quadratique. Pour
la classification, nous allons choisir l'entropie croisée.
C. Architecture d'un perceptron multi-couche (multi layer perceptron,
souvent abrégé « MLP », en anglais).
1. Perceptron avec une unique couche intermédiaire.
10. La sortie est obtenue en appliquant la fonction d'activation du neurone de sortie à la
combinaison linéaire des sorties de la couche intermédiaire :
Utilisant la fonction logistique la fonction d'activation est alors paramétrique non linéaire
Les réseaux de neurones profonds (Deep Learning) requièrent souvent des quantités massives
de données. On utiliser comme fonction d'activation des couches intermédiaires la
fonction tangente hyperbolique on parle d’architecture feed-forward.
a) Théorème d’approximation universelle
Toute fonction f continue définie sur ℝn peut être approximée, avec une précision arbitraire,
par un réseau de neurones formé d'une seule couche intermédiaire.
2. PERCEPTRON MULTI-COUCHES
On peut interpréter un réseau de neurones multi-couche en considérant que la sortie de
chaque couche intermédiaire est une nouvelle représentation des données.
a) ALGORITHME PERCEPTRON MULTI-COUCHES
Ajout d ’un paramètre inertiel (momentum) β : éviter les oscillations
Algorithme
Initialiser aléatoirement les coefficients wi dans [-0.5 ; 0.5]
Répéter
Prendre un exemple (x, c) de S
Calculer la sortie o
Pour toute cellule de sortie i
δi = σ‘(yi) ∗ (ci − oi) = oi ∗ (1 − oi) ∗ (ci − oi)
Fin Pour
Pour chaque couche de q − 1 à 1
11. Pour chaque cellule i de la couche courante
δi = σ‘(yi) ∗ [Σ(k ∈ Succ(i)) (δk ∗ wki)]
= oi ∗ (1 − oi) ∗ [Σ(k ∈ Succ(i)) (δk ∗ wki)]
Fin Pour
Fin Pour
Pour tout poids wij à l’itération k
wij(k) = wij(k-1) + ε∗δi ∗ xij + β ∗ (wij(k − 1) - wij(k − 2))
Fin Pour
Fin Répéter
b) CARTE DE KOHONEN
Algorithme d’apprentissage :
Initialiser aléatoirement les coefficients wij
Répéter
Prendre une entrée e = (e1, …, ei, …, en)
Calculer la distance dj de chaque neurone xj par rapport à e
Sélectionner le neurone xk le plus proche de e : dk = Min(dj)
Modifier les coefficients pour le neurone sélectionné et ses plus proches
voisins (4 pour une carte 2D) :
Pour tout i :
wik = wik + µ ∗ (ej − wik)
wil = wil + β ∗ (ej − wil) où xl est un voisin de xk
Fin Pour
Fin Répéter
12. c) Autre Algo : LES RESEAUX RECURRENTS / BOUCLES
On peut citer également:
• Le RESEAUX DE HOPFIELD
o Réseaux totalement connectés
o Mémoires auto-associatives
• Optimisation : Algorithmes Génétiques AG (rappels)
Naïve Bayes un algorithme de classification supervise
binaire
Naïve Bayes est un classifieur qui se base sur le théorème de Bayes des probabilités
conditionnelles. L’image ci-dessus est la formule du théorème de Bayes.
Naïve Bayes assume une hypothèse forte (naïve). Car on suppose que les variables sont
indépendantes entre elles, Généralement, utilisé pour les classifications de texte.
Anomaly Detection
Anomaly Detection est un algorithme pour détecter des patterns anormaux. Par exemple si
vous receviez dans votre compte en banque 2000€ mensuellement et que un jour vous
déposiez 10 000€ d’un coup. L’algorithme détectera cela comme une anomalie.
Utile pour la détection de fraudes dans les transactions bancaires, et les détections
d’intrusions.
13. Décision Trees for classification et régression
L’arbre de décision est un algorithme qui se base sur un modèle de graphe (les arbres) pour
définir la décision finale. Chaque nœud comporte une condition, et les branchements sont en
fonction de cette condition (Vrai ou Faux).
K-Means classification non supervisée
Par Exemple lancer une campagne publicitaire on aimerait envoyer un message publicitaire
différent en fonction du public visé. Nous allons d’abord regrouper la population ciblée sous
forme de groupes. Les individus de chaque groupe auront un degré de similarité (âge, salaire
etc…) C’est ce que nous fera l’algorithme K-Means !
14. Algorithme
Gradient Descent
Le Gradient Descent est un algorithme itératif de minimisation de fonction de coût. Cette
minimisation servira à produire des modèles prédictifs comme la régression logistique et le
linéaire.
d) Apprentissage par descente de gradient : algorithme
Algorithme
Initialiser aléatoirement les coefficients wi.
Répéter :
Pout tout i :
∆wi = 0
Fin Pour
15. Pour tout exemple (x, c) dans S
Calculer la sortie o du réseau pour l ’entrée x
Pout tout i :
∆wi = ∆wi + ε ∗ (c − o) ∗ xi ∗ σ’(x.w)
Fin Pour
Fin Pour
Pour tout i :
wi = wi + ∆wi
Fin Pour
Fin Répéter
a) Algorithme de rétropropagation du gradient :
Initialiser aléatoirement les coefficients wij dans [-0.5 ; 0.5]
Répéter
Prendre un exemple (x, c) de S
Calculer la sortie o
Pour toute cellule de sortie i
δi = σ‘(yi) ∗ (ci − oi) = oi ∗ (1 − oi) ∗ (ci − oi)
Fin Pour
Pour chaque couche de q − 1 à 1
Pour chaque cellule i de la couche courante
δi = σ’(yi) ∗ [Σ(k ∈ Succ(i)) (δk ∗ wki)] = oi ∗ (1 − oi) ∗ [Σ(k ∈
Succ(i)) (δk ∗ wki)]
Fin Pour
Fin Pour
Pour tout poids wij
wij = wij + ε∗δi ∗ xij
Fin Pour
Fin Répéter
16. VI. Learning Vector Quantization (LVQ) pour la
classification et la régression for me
LVQ en abrégé est un algorithme de réseau de neurones artificiel qui permet de choisir le
nombre d'instances de formation sur Lesquelles se suspendre et d'apprendre exactement à
quoi ces instances Devraient ressembler.La représentation de LVQ est une collection de
vecteurs de ‘codebook’.
VII. Random Forest
C’est un type d’algorithme d’apprentissage appelé «Bootstrap Aggregation» ou «bagging».
• Le Bootstrap est une méthode statistique puissante permettant d’estimer une quantité
à partir d’un échantillon de données
Random Forest est un ‘tweak’ les arbres de décision sont créés de telle sorte que plutôt que
de sélectionner les points de partage optimaux, les séparations sous-optimales sont effectuées
17. VIII. Boosting & AdaBoost
• Le boosting est une technique d'ensemble qui tente de créer un classificateur fort à
partir d'un certain nombre de classificateurs faibles. Cela se fait en construisant un
modèle à partir des données d'apprentissage, puis en créant un deuxième modèle qui
tente de corriger les erreurs du premier modèle. Les modèles sont ajoutés jusqu'à ce
que l'ensemble d'apprentissage soit parfaitement prévu ou jusqu'à ce qu'un nombre
maximal de modèles soit ajouté.
• AdaBoost a été le premier algorithme de boosting réellement réussi développé pour la
classification binaire.
IX. Comparaison des algos de classification
Le choix de l'algorithme optimal pour un problème dépend de ses fonctionnalités telles que la
vitesse, la précision des prévisions, la durée de la formation, la quantité de données
nécessaires à la formation, sa facilité de mise en œuvre, sa difficulté à l'expliquer à d'autres
Un algorithme ne peut pas résoudre tous les problèmes d'apprentissage
A. Résume Algo
A. Comparaison d'algorithmes supervisés