Big Data Analytics - Support Vector Machine
Thèmes abordés
Big Data Analytics - Support Vector Machine
Thèmes abordés
Master ESA
Christophe Hurlin
Université d’Orléans
Septembre 2020
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 1 / 228
1. Introduction
Dé…nition (SVM)
Les machines à vecteurs de support ( support vector machine ou SVM), introduites par
Vladimir Vapnik (Vapnik (1995, 1998)), sont un ensemble de techniques d’apprentissage
supervisé destinées à résoudre des problèmes de classi…cation ou de régression.
Varian H.R. (2014). Big Data: New Tricks for Econometrics. The Journal of Economic
Perspectives, 28(2), 3-27.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 2 / 228
1. Introduction
Boser B.E, Guyon I.M., Vapnik V.N. (1992). A Training Algorithm for Optimal Margin
Classi…ers, Fifth Annual Workshop on Computational Learning Theory, pages 144–152.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 3 / 228
1. Introduction
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 4 / 228
1. Introduction
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 5 / 228
1. Introduction
Dans les SVM, la frontière de séparation optimale est choisie comme celle qui
maximise la marge.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 6 / 228
1. Introduction
Dans le cas où les données ne sont pas linéairement séparables, la deuxième idée
clé des SVM est de transformer l’espace de représentation des données d’entrées
en un espace de plus grande dimension (possiblement de dimension in…nie), dans
lequel il est probable qu’il existe une séparation linéaire.
L’astuce consiste à utiliser une fonction noyau qui ne nécessite pas la connaissance
explicite de la transformation à appliquer pour le changement d’espace.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 7 / 228
1. Introduction
Bibliographie
Hastie, T., Tibshirani R., and Friedman J. (2009). The elements of statistical learning. Data
mining, inference, and prediction. 2nd ed. Springer.
Suykens J. & Vandewalle J. (1999). Least Squares Support Vector Machine Classi…ers.
Neural Processing Letters, 9(3), 293-300.
Suykens J., Van Gestel T., De Brabanter J., De Moor B. and Vandewalle J. (2002). Least
Squares Support Vector Machine. Singapore: World Scienti…c.
Vapnik V.N. (1995). The Nature of Statistical Learning Theory. Springer, First Edition.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 8 / 228
1. Introduction
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 9 / 228
1. Introduction
Loterman G., Brown I., Martens D., Mues C. & Baesens B. (2012). Benchmarking
Regression Algorithms for Loss Given Default Modeling. International Journal of
Forecasting, 28(1), 161-170.
Tobback E., Martens D., Van Gestel T. & Baesens B. (2014). Forecasting Loss Given
Default Models: Impact of Account Characteristics and the Macroeconomic State. Journal
of the Operational Research Society, 65(3), 376-392.
Yao X., Crook J. & Andreeva G. (2015). Support Vector Regression for Loss Given Default
Modelling. European Journal of Operational Research, 240(2), 528-538.
Yao X., Crook J. & Andreeva G. (2017). Enhancing Two-Stage Modelling Methodology for
Loss Given Default with Support Vector Machines. European Journal of Operational
Research, 263(2), 679-689.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 10 / 228
1. Introduction
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 11 / 228
Section 2
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 12 / 228
2. Intuition des SVM
Objectifs
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 13 / 228
2. Intuition des SVM
Problème d’apprentissage
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 14 / 228
2. Intuition des SVM
Formalisation
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 15 / 228
2. Intuition des SVM
g (x ) = sgn (h (x ))
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 16 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 17 / 228
2. Intuition des SVM
g (x ) = sgn (h (x )) 8 x = ( x 1 , x 2 , x 3 ) 2 R3
d
h (x ) = hω, x i + b = ∑ ωj xj + b = 3x1 + 2x2 + 7x3 2
j =1
Individu A (y , x1 , x2 , x3 ) = (1, 0, 2, 4) h (x ) = 26 g (x ) = 1
Individu B (y , x1 , x2 , x3 ) = (1, 8, 1, 2) h (x ) = 38 g (x ) = 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 18 / 228
2. Intuition des SVM
Remarque : du fait des propriétés de la fonction sgn (.) , au sens strict, les points de
l’hyperplan ne sont pas classi…és en f 1, 1g
8
< 1
> si h (x ) > 0
g (x ) = sgn (h (x )) = 0 si h (x ) = 0 , x 2 H
>
:
1 si h (x ) < 0
Rappel : pour une variable continue, la probabilité d’être en un point est nulle.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 19 / 228
2. Intuition des SVM
h (x ) = 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 20 / 228
2. Intuition des SVM
Example (cas d = 2)
On considère le cas X = R2 et un classi…eur linéaire g (x ) dé…ni par ω = (1, 2) et
b= 1:
h (x ) = hω, x i + b = x1 + 2x2 1
(
1 si h (x ) = x1 + 2x2 1 0
g (x ) = sgn (h (x )) =
1 si h (x ) = x1 + 2x2 1 < 0
Par exemple :
h (0, 0) = 1 g (0, 0) = 1
1 1
h 1, =1 g 1, =1
2 2
L’hyperplan (droite) a¢ ne qui sépare X = R2 en deux demi-espaces correspondant
chacun à une classi…cation, est dé…ni par l’équation :
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 21 / 228
2. Intuition des SVM
1
h(x ,x )=0
1 2
Observati ons y=-1
Observati ons y=1
0.5
h(1;0.5)=1 g(1,0.5)=1
2
x
0 h(x ,x )=0
1 2
h(0,0)=-1 g(0,0)=-1
-0.5
-1 -0.5 0 0.5 1 1.5 2
x
1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 22 / 228
2. Intuition des SVM
Example (cas d = 3)
On considère le cas X = R3 et un classi…eur linéaire g (x ) = sgn (h (x )) dé…ni par
ω = (1, 2, 3) et b = 2 :
L’équation
h (x ) = x1 + 2x2 3x3 2 = 0, 8x = (x1 , x2 , x3 ) 2 R3
dé…nit un hyperplan qui sépare X = R3 en deux demi-espaces correspondant à une
classi…cation.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 23 / 228
2. Intuition des SVM
0
3
x
-1
-2
2
2
1
1
0
0
x -1 -1 x
2 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 24 / 228
2. Intuition des SVM
Classi…eur g (x ) = sgn (h (x ))
g (x ) = 1 g (x ) = 1
y = 1 Pas d’erreur g (y ) y = 1 > 0 g (x ) y = 1 < 0
y =1 g (x ) y = 1 < 0 Pas d’erreur g (x ) y = 1 > 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 25 / 228
2. Intuition des SVM
Pr (g (x ) 6= y ) = Pr (h (x ) y 0) = Pr (g (x ) y = 1)
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 26 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 27 / 228
2. Intuition des SVM
On considère X = R2 avec
xi = (xi 1 , xi 2 ) et un échantillon
fxi , yi g pour i = 1, . . . , n.
On représente chaque triplet
(xi 1 , xi 2 , yi ) par un point dans le
repère (x1 , x2 )
Lorsque yi = 1 ( 1), l’observation
est représentée par un point bleu
(vert)
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 28 / 228
2. Intuition des SVM
h (x ) = hω, x i + b = 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 29 / 228
2. Intuition des SVM
Si toutes classi…cations g (x ) = 1 se
situent dans la zone bleue et toutes
les classi…cations g (x ) = 1 sont
dans la zone verte, il y aucune erreur
de classi…cation.
Il existe donc un classi…eur linéaire
qui classe correctement toutes les
observations de l’échantillon.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 30 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 31 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 32 / 228
Introduction
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 33 / 228
2. Intuition des SVM
Même dans ce cas simple, le choix de l’hyperplan séparateur n’est pas évident.
Problem
Remarque
Pour un échantillon linéairement séparable, il peut exister plusieurs classi…eurs linéaires
(i.e. plusieurs couples (ω, b )) dont les performances en apprentissage sont identiques
(sans erreur de classi…cation). Quel est alors le classi…eur optimal ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 34 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 35 / 228
2. Intuition des SVM
Est-ce celui-ci ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 36 / 228
2. Intuition des SVM
Est-ce celui-ci ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 37 / 228
2. Intuition des SVM
Est-ce celui-ci ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 38 / 228
2. Intuition des SVM
On doit se doter d’un critère d’optimalité pour sélectionner les hyperplans : c’est le
critère des marge optimales
Dé…nition (marge)
La marge M représente le double de la distance d du point le plus proche a l’hyperplan.
Idée du SVM : choisir l’hyperplan qui classi…e correctement les données et qui se trouve
le plus loin possible de tous les observations (exemples).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 39 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 40 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 41 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 42 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 43 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 44 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 45 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 46 / 228
2. Intuition des SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 47 / 228
Concepts clés
2 Hyperplan séparateur.
4 Marge.
5 Vecteurs de support.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 48 / 228
Section 3
Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 49 / 228
3. Formalisation du SVM
Objectifs
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 50 / 228
3. Formalisation du SVM
Rappels
Soient deux vecteurs sur Rd , u = (u1 , . . . , ud )0 et v = (v1 , . . . , vd )0
Produit scalaire
d
8 (u, v ) 2 Rd , Rd , hu, v i = ∑ ui vi
i =1
Norme euclidienne
v
q u d
u
8u 2 Rd , ku k = hu, u i = t ∑ ui2
i =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 51 / 228
3. Formalisation du SVM
Rappels
hu, v i = 0
Tout vecteur directeur de cette droite est appelé vecteur normal à la surface en ce
point.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 52 / 228
3. Formalisation du SVM
Source : http://www.methodemaths.fr
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 53 / 228
3. Formalisation du SVM
Notations
h (x ) = hω, x i + b
avec ω 2 Rd et b 2 R.
Classi…eur associé
(
1 si h (x ) 0
8x 2 X , g (x ) = sgn (h (x )) =
1 si h (x ) < 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 54 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 55 / 228
3. Formalisation du SVM
Example (cas d = 2)
On considère le cas X = R2 et x = (x1 , x2 )0 . Soit un classi…eur linéaire
g (x ) = sgn (h (x )), avec h (x ) = hω, x i + b et
ω = (1, 2) b= 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 56 / 228
3. Formalisation du SVM
h (x ) = x1 + 2x2 1 = 0, 8 x = ( x 1 , x 2 ) 2 R2
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 57 / 228
3. Formalisation du SVM
2.5
2 Vecteur (1,2)
norme = 5
1.5
2
x2
1 v ecteur
normal
norme = 1
H
0.5
1
0
-0.5
-1 -0.5 0 0.5 1 1.5 2
x1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 58 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 59 / 228
3. Formalisation du SVM
Preuve :
d (x , H ) = e x x0 ij
jhω,
1
= jhω, x x0 ij
kω k
1
= jhω, x i hω, x0 ij
kω k
1
= jhω, x i + b j
kω k
jh (x )j
=
kω k
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 60 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 61 / 228
3. Formalisation du SVM
3 1 1
ω = (1, 2) b= 1 A 1; B ,
2 2 2
Solution :
p p
On sait que kω k = 12 + 22 = 5. Il vient :
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 62 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 63 / 228
3. Formalisation du SVM
Cet hyperplan peut être dé…ni de façon équivalente par n’importe quel couple (ωk, bk ),
avec k > 0, et une nouvelle fonction de décision h (x ) telle que 8k 2 R , 8x 2 H :
h (x ) = k e
h (x ) = hk ω, x i + kb = 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 64 / 228
3. Formalisation du SVM
Intuition (suite). Supposons que les vecteurs de support situés respectivement au dessus
+ ) et en dessous (x ) de l’hyperplan H véri…ent
(xsv sv
e +
h xsv = ω, +
e xsv + be = +c
e +
h xsv e=
e xsv + b
= ω, c
avec c 2 R . Il est toujours possible de dé…nir une nouvelle fonction de décision
h (x ) = e
h (x ) /c telle que
+ +
h xsv = ω, xsv + b = +1
h xsv = ω, xsv + b = 1
avec
e
ω e
b
ω= b=
c c
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 65 / 228
3. Formalisation du SVM
Intuition (suite).
e e=
e xi + b
h (xsv ) = hω, c
1e
h (xsv ) = h (xsv ) = hω, x i + b = 1
c
Les équations h (x ) = 0 et e
h (x ) = 0 dé…nissent le même hyperplan séparateur H.
/ H, h (x ) 6= e
Pour x 2 h (x ).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 66 / 228
3. Formalisation du SVM
Example (cas d = 2)
On considère le cas X = R2 et un classi…eur linéaire g (x ) = sgn (e
h (x )), avec
e e x = (x1 , x2 )0 et
e x i + b,
h (x ) = hω,
e = (1, 2)
ω e=
b 1
On admet que le vecteur (1, 1) est un vecteur de support. Question : quelle est la
fonction de décision associée à l’hyperplan canonique H ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 67 / 228
3. Formalisation du SVM
Solution : On pose
e
h (x ) = x1 + 2x2 1
Soit le vecteur de support xsv = (1, 1) :
e
h (xsv ) = 1 + 2 1=2 ge (xsv ) = sgn (2) = 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 68 / 228
e
h (x ) = x1 + 2x2 1 h (x ) = 0, 5x1 + x2 0, 5
2 2
h(x)=2,4 h(x)=1,2
h(x)=3 h(x)=1,5
1.5 1.5
h(x)=2,7 h(x)=1,35
1 h(x)=0 1 h(x)=0
h(x)=2 h(x)=1
x2
x2
0.5 0.5
0 0
h(x)=-2 h(x)=-1
-0.5 -0.5
h(x)=-2,5 h(x)=-1,25
-1 -1
-1 -0.5 0 0.5 1 1.5 2 -1 -0.5 0 0.5 1 1.5 2
x1 x1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 69 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 70 / 228
3. Formalisation du SVM
Remarque
Pour un hyperplan canonique, les conditions d’une classi…cation parfaite (sur
l’échantillon d’apprentissage) sont de la forme :
h (xi ) = hω, xi i + b 1 si yi = 1
h (xi ) = hω, xi i + b 1 si yi = 1
8i = 1, ..., n. Ces conditions peuvent se réécrire sous la forme :
yi h (xi ) 1 8i = 1, ..., n
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 71 / 228
3. Formalisation du SVM
Dé…nition (marge)
La marge M (ω, b ) correspond au double de la distance entre un vecteur de support xsv
et l’hyperplan canonique séparateur H.
jh (xsv )j 2
M (ω, b ) = 2 d (xsv , H ) = 2 =
kω k kω k
puisque par dé…nition h (xsv ) = 1.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 72 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 73 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 74 / 228
3. Formalisation du SVM
avec h (x ) = hω, x i + b, 8x 2 X .
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 75 / 228
3. Formalisation du SVM
1
min k ω k2
ω 2Rd ,b 2R 2
sc : yi h (xi ) 1 8i = 1, . . . , n
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 76 / 228
3. Formalisation du SVM
Dé…nition (Lagrangien)
Le Lagrangien associé au programme du SVM s’écrit
n
1
L (ω, b, λ) =
2
k ω k2 ∑ λi [yi (hω, xi i + b ) 1]
i =1
λi 0
λi [yi (hω, xi i + b ) 1] = 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 77 / 228
3. Formalisation du SVM
Remarques
n
1
L (ω, b, λ) =
2
k ω k2 ∑ λi [yi (hω, xi i + b ) 1]
i =1
λi [yi (hω, xi i + b ) 1] = 0 avec λi 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 78 / 228
3. Formalisation du SVM
2 j∑ ∑ λi ∑ ωj xij + b
= ωj yi 1
=1 i =1 j =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 79 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 80 / 228
3. Formalisation du SVM
puisque ∑ni=1 λi yi = 0.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 81 / 228
3. Formalisation du SVM
n n
1
L (ω, b, λ) =
2
hω, ω i ∑ λi yi hω, xi i + ∑ λi
i =1 i =1
De plus, nous savons que ω = ∑ni=1 λi yi xi , dès lors il vient :
1 n n
2 i∑ ∑ λi λj yi yj xi , xj
L (ω, b, λ) =
=1 j =1
n n n
∑ λi yi ∑ λj yj xi , xj + ∑ λi
i =1 j =1 i =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 82 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 83 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 84 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 85 / 228
3. Formalisation du SVM
b = yi h ω , xi i , 8i 2 S
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 86 / 228
3. Formalisation du SVM
h (x ) = h ω , x i + b = ∑ λi yi hxi , x i + b
i 2S
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 87 / 228
3. Formalisation du SVM
h (x ) = ∑ λi yi hxi , x i + b 8x 2 X
i 2S
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 88 / 228
3. Formalisation du SVM
h (x ) = h ω , x i + b ω = ∑ i 2S λ i y i x i
b = yi h ω , xi i , 8i 2 S
h (x ) = ∑ i 2S λ i y i hx i , x i + b
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 89 / 228
3. Formalisation du SVM
Les deux programmes (primal et dual) donnent bien évidemment la même solution.
Le programme dual montre que seuls les vecteurs de support sont nécessaires pour
classer toutes les observations
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 90 / 228
3. Formalisation du SVM
Example (SVM)
On considère x = (x1 , x2 )0 2 R2 et un échantillon d’apprentissage de taille n = 10 pour
lequel on observe les données suivantes. Question : en utilisant un programme
d’optimisation quadratique résoudre le programme primal du SVM et déterminez
l’équation de l’hyperplan séparateur canonique optimal.
x1 x2 y
4 8 -1
2 4 -1
4 6 -1
6 6 -1
8 8 -1
6 10 -1
12 6 1
10 6 1
8 2 1
6 2 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 91 / 228
3. Formalisation du SVM
12
Y=-1
Y=1
10
8
X2
0
0 2 4 6 8 10 12 14
X1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 92 / 228
3. Formalisation du SVM
(ω , b ) = arg min 1
2 k ω k2
ω 2R2 ,b 2R
sc : yi h (xi ) 1 8i = 1, ..., n
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 93 / 228
3. Formalisation du SVM
(ω , b ) = arg min 1
2 k ω k2
ω 2R2 ,b 2R
sc : yi h (xi ) 1 8i = 1, ..., n
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 94 / 228
3. Formalisation du SVM
Solution
On obtient comme solution
1 1 0
ω = , b = 1
2 2
La fonction de décision s’écrit donc :
1 1
h (xi ) = h ω , xi i + b = x x 1 8xi 2 R2
2 1i 2 2i
L’équation de l’hyperplan canonique optimale est dé…nie par :
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 95 / 228
3. Formalisation du SVM
Solution
1 1
h (xi ) = x x 1 h (xi ) yi 1
2 1i 2 2i
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 96 / 228
3. Formalisation du SVM
12
y=-1
y=1 -3
10 Support Vector
h(x)=0
-3 -1
8
-2 -1 1 2
X2
-2
4
1 2
2
0
0 2 4 6 8 10 12 14
X1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 97 / 228
3. Formalisation du SVM
xA = (6, 8)0
xB = (10, 2)0
Question : en n’utilisant que les multplicateurs de Lagrange λi des vecteurs de support
(cf. tableau précédent), déterminez la prévision sur les variables yA et yB ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 98 / 228
3. Formalisation du SVM
Solution
x1 x2 y h (x ) yh (x ) Statut λ
6 6 1 1 1 vecteur de support 0, 1423
8 8 1 1 1 vecteur de support 0, 1077
10 6 1 1 1 vecteur de support 0, 1789
6 2 1 1 1 vecteur de support 0, 0711
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 99 / 228
3. Formalisation du SVM
Solution
On obtient donc pour
xA = (6, 8)0 xB = (10, 2)0
les décisions suivantes
b
h (xA ) = 0, 1423 (6 6 + 6 8) 0, 1077 (8 6 + 8 8)
+0, 1789 (10 6 + 6 8) + 0, 0711 (6 6 + 2 8) 1= 2
b
h (xB ) = 0, 1423 (6 10 + 6 2) 0, 1077 (8 10 + 8 2)
+0, 1789 (10 10 + 6 2) + 0, 0711 (6 10 + 2 2) 1=3
ybA = sgn b
h (xA ) = sgn ( 2) = 1
ybB = sgn b
h (xB ) = sgn (3) = 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 100 / 228
3. Formalisation du SVM
12
y=-1
y=1
10 Support Vector
h(x)=0
-2
8
X2
3
2
0
0 2 4 6 8 10 12 14
X1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 101 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 102 / 228
3. Formalisation du SVM
Ici, il vient
0 1
80 40 64 72 96 104 96 88 48 40
B 40 20 32 36 48 52 48 44 24 20 C
B C
B 64 32 52 60 80 84 84 76 44 36 C
B C
B 72 36 60 72 96 96 108 96 60 48 C
B C
B 96 48 80 96 128 128 144 128 80 64 C
Ω =B B
C
C
(10 10 ) B 104 52 84 96 128 136 132 120 68 56 C
B 96 48 84 108 144 132 180 156 108 84 C
B C
B 88 44 76 96 128 120 156 136 92 72 C
B C
@ 48 24 44 60 80 68 108 92 68 52 A
40 20 36 48 64 56 84 72 52 40
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 103 / 228
3. Formalisation du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 104 / 228
3. Formalisation du SVM
n
λ = arg max ∑ λi
λ1 ,..,λn i =1
n n
1
2 i∑ ∑ λi λj yi yj xi , xj
=1 j =1
sc : λi 0
n
sc : ∑ λi yi =0
i =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 105 / 228
3. Formalisation du SVM
Solution
Le vecteur de coe¢ cients ω est dé…ni par
ω = ∑ λi yi xi
i 2S
6 8 10 6
= 0, 1423 0, 1077 + 0, 1789 + 0, 0711
6 8 6 2
1/2
=
1/2
La constante b véri…e
b = yi h ω , xi i , 8i 2 S
0
Donc, pour le vecteur de support (6, 6) , il vient :
1 1
b = 1 6 6 = 1
2 2
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 106 / 228
3. Formalisation du SVM
Solution
On sait que pour x = (x1 , x2 )0 2 R2 , la fonction de décision s’écrit comme :
h (x ) = ∑ λi yi hxi , x i + b = hω , x i + b
i 2S
1 1 0
ω = 2 2 b = 1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 107 / 228
3. Formalisation du SVM
Concepts clés
2 Marge.
3 Vecteurs de support.
6 Matrice de Gram.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 108 / 228
Section 4
Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 109 / 228
4. Soft margin
Objectifs
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 110 / 228
4. Soft margin
Hypothèse
On suppose à présent que l’échantillon d’apprentissage n’est pas linéairement séparable.
Deux cas :
1 l’échantillon est presque linéairement séparable : la séparation "optimale" est
linéaire, mais quelques observations ne peuvent pas être correctement classées.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 111 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 112 / 228
4. Soft margin
yi (hω, xi i + b ) 1 ξ i avec ξ i 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 113 / 228
4. Soft margin
yi (hω, xi i + b ) 1 ξ i avec ξ i 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 114 / 228
4. Soft margin
Soft Margin
yi (hω, xi i + b ) 1 ξ i avec ξ i 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 115 / 228
4. Soft margin
Source : https://towardsdatascience.com
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 116 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 117 / 228
4. Soft margin
Interpretation
n
1
(ω , b , ξ ) = arg min
2
k ω k2 + C
|{z} ∑ ξi
ω 2Rd ,b 2R,ξ 2Rn | {z } paramètre de coût i =1
marge
| {z }
Erreurs de classi…cation
sc : yi (hω, xi i + b ) 1 ξ i 8i = 1, ..., n
sc : ξi 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 118 / 228
4. Soft margin
Remarque :
Le paramètre de pénalisation C contrôle l’arbitrage entre la dimension de la marge et le
taux d’erreur.
Si C est petit, les erreurs de classi…cation sont moins pénalisées et l’accent est mis
sur la maximisation de la marge.
I Il y a un risque de sous-apprentissage (mauvais taux de classi…cation sur l’échantillon
d’apprentissage).
Si C est grand, l’accent est mis sur l’absence de mauvaise classi…cation au prix d’une
marge plus faible.
I Il y a un risque de sur-apprentissage (over-…tting).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 119 / 228
4. Soft margin
Formulation Lagrangienne
Dans le cas non linéairement séparable, le Lagrangien associé au programme du SVM
s’écrit
n
1
L (ω, b, ξ, λ, µ) = k ω k2 + C ∑ ξ i
2 i =1
n n
∑ λi [yi (hω, xi i + b ) (1 ξ i )] ∑ µi ξ i
i =1 i =1
0 0
avec λ = (λ1 , ..., λn ) et µ = (µ1 , ..., µn ) véri…ant 8i = 1, ..., n
λi 0 µi 0 ξi 0
λi [yi (hω, xi i + b ) (1 ξ i )] = 0 µi ξ i = 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 120 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 121 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 122 / 228
4. Soft margin
Remarque :
n
1 n n
λ = arg max ∑ λi 2 i∑ ∑ λi λj yi yj xi , xj
λ1 ,..,λn i =1 =1 j =1
sc : 0 λi C
n
sc : ∑ λi yi =0
i =1
Le programme est identique au cas séparable : la seule di¤érence est la borne supérieure
sur les multiplicateurs de Lagrange λi .
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 123 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 124 / 228
4. Soft margin
b = yi h ω , xi i , 8i 2 S
où S désigne l’ensemble des vecteurs de supports (0 < λi < C ) et des variables
ressorts (λi = C ).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 125 / 228
3. Formalisation du SVM
h (x ) = h ω , x i + b = ∑ λi yi hxi , x i + b
i 2S
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 126 / 228
4. Soft margin
sc : 0 λi C
sc : yi h (xi ) 1 ξ i 8i = 1, ..., n
sc : ∑ni=1 λi yi = 0
h (x ) = h ω , x i + b ω = ∑ i 2S λ i y i x i
— b = yi h ω , xi i , 8i 2 S
— h (x ) = ∑ i 2S λ i y i hx i , x i + b
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 127 / 228
4. Soft margin
Paramètre de pénalisation
Pour plus de détails cf. cours Big Data: Arbres de décision et les méthodes
d’agrégation (responsable : Sessi Tokpavi).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 128 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 129 / 228
4. Soft margin
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 130 / 228
4. Soft margin
Concepts clés
3 Soft margin.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 131 / 228
Section 5
Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 132 / 228
5. Kernel trick
Objectifs
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 133 / 228
5. Kernel trick
Idée générale
Mais l’espace des données peut toujours être plongé dans un espace de plus grande
dimension dans lequel les données peuvent être séparées linéairement.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 134 / 228
5. Kernel trick
1 14
0.8
12
0.6
10
0.4
0.2 8
X2
0
6
-0.2
4
-0.4
-0.6 2
-0.8
0
-1
-5 -4 -3 -2 -1 0 1 2 3 4 5 -5 -4 -3 -2 -1 0 1 2 3 4 5
X X
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 135 / 228
5. Kernel trick
La résolution des SVM s’appuie sur le produit scalaire xi , xj entre les vecteurs
d’entrée.
K xi , xj = Φ (xi ) , Φ xj
Pour implémenter le SVM, seul le noyau est important sans qu’il soit nécessaire
d’appliquer la transformation Φ (.) = > astuce du kernel
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 136 / 228
5. Kernel trick
Φ : X !F
x 7 ! Φ (x )
Example
Soit x = (x1 , x2 ) 2 R2 , on considère la transformation
Φ : R2 ! R3
p
(x1 , x2 ) 7! Φ (x ) = x12 , 2x1 x2 , x22
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 137 / 228
5. Kernel trick
Problème
Φ : R2 ! R3
p
(x1 , x2 ) 7! Φ (x ) = x12 , 2x1 x2 , x22
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 138 / 228
5. Kernel trick
Kernel trick : dans cet espace intermédiaire, nous n’avons besoin que du produit scalaire
dé…nit par :
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 139 / 228
5. Kernel trick
Example
Soit x = (x1 , x2 ) 2 R2 , on considère la transformation
Φ : R2 ! R6
p p p
(x1 , x2 ) 7! Φ (x ) = 1, 2x1 , 2x2 , x12 , x22 , 2x1 x2
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 140 / 228
5. Kernel trick
K (u, v ) = hΦ (u ) , Φ (v )i
= 1 + 2u1 v1 + 2u2 v2 + u12 v12 + u22 v22 + 2u1 v1 u2 v2
= (1 + u1 v1 + u2 v2 )2
= (1 + hu, v i)2
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 141 / 228
5. Kernel trick
Example
p 0 p 0
On considère deux vecteurs u = 1, 3 2 et v = 1, 2 2 et la transformation Φ (.)
suivante
Φ : R2 ! R6
p p p
(x1 , x2 ) 7! Φ (x1 , x2 ) = 1, 2x1 , 2x2 , x12 , x22 , 2x1 x2
Question : Montrez que la fonction kernel K (u, v ) = (1 + hu, v i)2 est associée à la
transformation Φ (x ) pour ces deux vecteurs.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 142 / 228
5. Kernel trick
Φ : R2 ! R6
p p p
(x1 , x2 ) 7! Φ (x1 , x2 ) = 1, 2x1 , 2x2 , x12 , x22 , 2x1 x2
p 0 p 0
Pour les deux vecteurs u = 1, 3 2 et v = 1, 2 2 , il vient
p
Φ (u ) = 1, 2, 6, 1, 18, 6
p
Φ (v ) = 1, 2, 4, 1, 8, 4
On obtient donc :
p p
hΦ (u ) , Φ (v )i = 1 1+ 2 2+4 6+1 1 + 18 8+4 6
= 196
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 143 / 228
5. Kernel trick
Dès lors
K (u, v ) = (1 + hu, v i)2 = (1 + 13)2 = 196
On véri…e que
K (u, v ) = hΦ (u ) , Φ (v )i
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 144 / 228
5. Kernel trick
Φ : Rd ! Rm m > d
K xi , xj = Φ (xi ) , Φ xj ()
x 7 ! Φ (x )
Dans la pratique, l’astuce du noyau consiste à choisir une fonction kernel, sans
nécessairement caractériser l’espace F et la fonction Φ (.).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 145 / 228
5. Kernel trick
Démarche
2 Dans cet espace, il est probable qu’il existe une séparation linéaire.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 146 / 228
5. Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 147 / 228
5. Kernel trick
Remarque
n
1
(ω , b , ξ ) = arg min k ω k2 + C ∑ ξ i
ω 2Rd ,b 2R,ξ 2Rn 2 i =1
sc : yi (hω, Φ (xi )i + b ) 1 ξ i 8i = 1, ..., n
sc : ξi 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 148 / 228
5. Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 149 / 228
5. Kernel trick
h (x ) = hω , Φ (x )i + b = ∑ λi yi K (xi , x ) + b
i 2S
b = yj ∑ λi yi K (xi , x ) , 8j 2 S
i 2S
où S désigne l’ensemble des vecteurs de support et des ressorts. Le classi…eur associé est :
(
1 si h (x ) 0
g (x ) = sgn (h (x )) =
1 si h (x ) < 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 150 / 228
5. Kernel trick
sc : 0 λi C
sc : yi h (Φ (xi )) 1 ξ i 8i = 1, ..., n
sc : ∑ni=1 λi yi = 0
h (x ) = hω , Φ (x )i + b h (x ) = ∑ i 2S λ i y i K (x i , x ) + b
— b = yj ∑ i 2S λ i y i K (x i , x ) , 8j 2 S
— ω = ∑ i 2S λ i y i Φ (x i )
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 151 / 228
5. Kernel trick
2 Quels sont les fonctions kernel disponibles dans SAS, R, Python et Matlab ?
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 152 / 228
5. Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 153 / 228
5. Kernel trick
Matrice de Gram
0 1
K (x1 , x1 ) K (x1 , x2 ) ... ... K (x1 , xn )
B K (x2 , x1 ) K (x2 , x2 ) ... ... ... C
B
matrice de Gram = Ω = @ C
n n ... ... ... ... ... A
K (xn , x1 ) ... ... ... K (xn , xn )
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 154 / 228
5. Kernel trick
Kernels usuels
K xi , xj = xi , xj
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 155 / 228
5. Kernel trick
Kernels usuels
K xi , xj = tanh θ 1 xi , xj + θ 2
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 156 / 228
5. Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 157 / 228
5. Kernel trick
K (x , y ) = αK1 (x , y )
K (x , y ) = hK1 (x , y ) , K2 (x , y )i
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 158 / 228
5. Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 159 / 228
5. Kernel trick
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 160 / 228
5. Kernel trick
Concepts clés
3 Kernel.
5 Conditions de Mercer.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 161 / 228
Section 6
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 162 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 163 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 164 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 165 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 166 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 167 / 228
6. Application du SVM
2 De paralléliser les calculs sur plusieurs coeurs ou plusieurs machines, et d’utiliser des
données distribuées.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 168 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 169 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 170 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 171 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 172 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 173 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 174 / 228
6. Application du SVM
Example (SVM)
On considère x = (x1 , x2 )0 2 R2 et un échantillon d’apprentissage de taille n = 10 pour
lequel on observe les données suivantes (cf. tableau infra). Question : en utilisant la
procédure HPSVM, retrouvez les résultats obtenus par programmation quadratrique dans
la section 3 (Formalisation du SVM).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 175 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 176 / 228
6. Application du SVM
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-1
-0.8 1
Support Vectors
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 177 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 178 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 179 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 180 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 181 / 228
6. Application du SVM
Example (SVM)
On considère x = (x1 , x2 )0 2 R2 et un échantillon d’apprentissage de taille n = 10 pour
lequel on observe les données suivantes (cf. tableau infra). Question : en utilisant la
fonction …tcsvm,retrouvez les résultats obtenus par programmation quadratrique dans la
section 3 (Formalisation du SVM).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 182 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 183 / 228
6. Application du SVM
12
y=-1
y=1 -3
10 Support Vector
h(x)=0
-3 -1
8
-2 -1 1 2
X2
-2
4
1 2
2
0
0 2 4 6 8 10 12 14
X1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 184 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 185 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 186 / 228
6. Application du SVM
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-1
-0.8 1
Support Vectors
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 187 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 188 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 189 / 228
6. Application du SVM
Les codes pour les SVM/SVR sont disponibles dans le package e1071 (David Meyer
et al.).
[..] latent class analysis, short time Fourier transform, fuzzy clustering,
support vector machines, shortest path computation, bagged clustering, naive
Bayes classi…er, ...
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 190 / 228
6. Application du SVM
predict.svm : prédit les labels basés à partir d’un SVM construit sur un échantillon
d’apprentissage.
svm : est utilisée pour entraîner un SVM. Cette fonction peut être utilisée pour
e¤ectuer une régression, une classi…cation ou l’estimation d’une densité.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 191 / 228
6. Application du SVM
Exemple de code R
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 192 / 228
6. Application du SVM
Example (SVM)
On considère x = (x1 , x2 )0 2 R2 et un échantillon d’apprentissage de taille n = 10 pour
lequel on observe les données suivantes (cf. tableau infra). Question : en utilisant la
fonction svm de R , retrouvez les résultats obtenus par programmation quadratrique dans
la section 3 (Formalisation du SVM).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 193 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 194 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 195 / 228
6. Application du SVM
Meyer D. (2017), Support Vector Machines: the Interface to libsvm in package e1071,
Working Paper TU Wien.
Rakotomalala R. (2016), Mise en oeuvre des SVM sous R et Python, Université Lumière
Lyon 2. .
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 196 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 197 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 198 / 228
6. Application du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 199 / 228
Section 7
Extensions du SVM
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 200 / 228
7. Extensions
1 SVM et scores
2 SVM multi-classes
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 201 / 228
7. Extensions
1 SVM et scores
2 SVM multi-classes
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 202 / 228
7.1. SVM et scores
Deux questions :
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 203 / 228
7.1. SVM et scores
h (x ) = h ω , x i + b = ∑ λi yi hxi , x i + b
i 2S
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 204 / 228
7.1. SVM et scores
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 205 / 228
7.1. SVM et scores
Méthode de Platt
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 206 / 228
7.1. SVM et scores
Exemples :
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 207 / 228
7. Extensions
1 SVM et scores
2 SVM multi-classes
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 208 / 228
7.2. SVM multi-classes
SVM multi-classes
Les SVM peuvent être adaptés pour traiter des problèmes multi-classes.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 209 / 228
7.2. SVM multi-classes
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 210 / 228
7.2. SVM multi-classes
Approche un contre un
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 211 / 228
7.2. SVM multi-classes
Approche un contre un
k
D j (x ) = ∑ sgn hij (x )
i 6=j ,i =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 212 / 228
7. Extensions
1 SVM et scores
2 SVM multi-classes
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 213 / 228
7.3. Régression à vecteurs de support (SVR)
Prédicteur : soit β 2 Rd et b 2 R
h (x ) = x > β + b
Norme : q
kh k = k β k = β> β
Critère : moindres carrés
n
∑ (yi h (xi ))2
i =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 214 / 228
7.3. Régression à vecteurs de support (SVR)
Dé…nition (SVR)
L’idée de la régression à vecteur de support (SVR) consiste à imposer une contrainte
sur la norme L2 des poids
n
b b
β, b = arg min ∑ (yi h (xi ))2
β2Rd ,b 2R i =1
sc : kh k λ
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 215 / 228
7.3. Régression à vecteurs de support (SVR)
On obtient ainsi une régression de type ridge (cf. cours Régressions Pénalisées).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 216 / 228
7.3. Régression à vecteurs de support (SVR)
Solution
n
b b = arg min
β, b ∑ (yi h (xi ))2 + C kh k2
β2Rd ,b 2R i =1
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 217 / 228
7.3. Régression à vecteurs de support (SVR)
kh k2K = α> Ωα
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 218 / 228
7.3. Régression à vecteurs de support (SVR)
>
avec α = (α1 , ..., αn ) et Ω = K xi , xj i ,j la matrice de Gram associée au kernel
K (., .).
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 219 / 228
7.3. Régression à vecteurs de support (SVR)
Solution
n
b
α = arg min
α2Rn
∑ (yi Ωα)2 + C α> Ωα
i =1
La solution est de la forme
1
α = ( Ω + C In )
b Y
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 220 / 228
7.3. Régression à vecteurs de support (SVR)
source : www.quora.com
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 221 / 228
7. Extensions
1 SVM et scores
2 SVM multi-classes
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 222 / 228
7.4. Extension de type LS-SVM
Le LS-SVM et son équivalent pour la régression LS-SVR, ont été introduits par
Suykens et Vandewalle (1999) et Suykens et al. (2002).
Cette méthode a un faible coût de calcul car elle équivaut à résoudre un système
linéaire d’équations au lieu de résoudre un problème de programmation quadratique.
Suykens J., Van Gestel T., De Brabanter J., De Moor B. et Vandewalle J. (2002). Least
Squares Support Vector Machine. Singapore World Scienti…c.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 223 / 228
7.4. Extension de type LS-SVM
Dé…nition (LS-SVM)
Le problème primal du LS-SVM est dé…ni par
C1 C2 n 2
2 i∑
(ω , b ) = arg min k ω k2 + ξi
ω 2Rd ,b 2R 2 =1
sc : yi (hω, Φ (xi )i + b ) 1 ξ i 8i = 1, ..., n
sc : ξi 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 224 / 228
7.4. Extension de type LS-SVM
C1 C2 n
2 i∑
(ω , b ) = arg min k ω k2 + [yi (hω, Φ (xi )i + b )]2
ω 2Rd ,b 2R 2 =1
sc : yi (hω, Φ (xi )i + b ) 1 ξ i 8i = 1, ..., n
sc : ξi 0
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 225 / 228
7.4. Extension de type LS-SVM
Solution (LS-SVM)
On peut montrer à partir des conditions du premier ordre, que déterminer la solution
revient à résoudre un système linéaire : c’est le principal avantage du LS-SVM
0 en> ω 0
=
en Ω + γ 1 In b Y
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 226 / 228
7.4. Extension de type LS-SVM
Loterman G., Brown I., Martens D., Mues C. & Baesens B. (2012). Benchmarking
Regression Algorithms for Loss Given Default Modeling. International Journal of
Forecasting, 28(1), 161-170.
Nazemi A., Fatemi Pour F., Heidenreich K. & Fabozzi F.J. (2017). Fuzzy Decision Fusion
Approach for Loss-Given-Default Modeling. European Journal of Operational Research,
262(2), 780-791.
Yao X., Crook J. & Andreeva G. (2015). Support Vector Regression for Loss Given Default
Modelling. European Journal of Operational Research, 240(2), 528-538.
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 227 / 228
Fin du chapitre
Christophe Hurlin (Université d’Orléans) Support Vector Machine Septembre 2020 228 / 228