2012PFE Elhassani Imane
2012PFE Elhassani Imane
2012PFE Elhassani Imane
DPARTEMENT INFORMATIQUE
64, Avenue Jean Portalis
37200 TOURS, FRANCE
Tl. +33 (0)2 47 36 14 18
www.polytech.univ-tours.fr
Encadrant:
tudiante :
Melle Imane EL HASSANI
M. Aymen CHERIF
CONCLUSION ......................................................................................................................... 52
GLOSSAIRE ............................................................................................................................. 54
REFERENCES BIBLIOGRAPHIQUES .................................................................................... 55
REMERCIEMENTS
Je tiens remercier M Aymen CHERIF pour son encadrement tout au long de ce PFE, pour temps
quil a pris sur sa thse afin de suivre lavancement de ce travail, pour son sens du partage et sa
gentillesse. Merci davoir t disponible toute les fois quil la fallu, ni nonchalant ni encombrant: Le
Juste parfait.
INTRODUCTION
Le prsent document est la synthse de mon projet de fin d'tudes intitul : "SVR avec Boosting
pour la prvision long terme", il dcrit mon travail de huit mois sur la mise en uvre d'un outil
logiciel, permettant de combiner la mthode SVR et l'algorithme de Boosting afin d'amliorer les
rsultats des prdictions sur les sries de donnes temporelles, et ce sur des horizons de prdiction
tendus.
Le rapport prsente les objectifs du projet dvelopper, rappelle les spcifications techniques du
systme et expose des notions thoriques dans le domaine de la prdiction sur sries temporelles.
Une deuxime partie pratique prsente lapplication dveloppe et sachve par une description des
expriences et rsultats obtenus.
Ce projet de fin dtudes est encadr par M. Aymen CHERIF, doctorant Polytech Tours dont la
thse traite des sries temporelles.
1.1.
Contexte:
L'application raliser pour le prsent PFE s'inscrit dans le cadre de la prdiction long terme,
plus exactement celle relative au temps. La prdiction temporelle consiste prvoir les valeurs
futures dune srie temporelle en se basant sur des valeurs passes supposes connues. C'est un
domaine d'tude particulirement convoit depuis quelques annes, mais galement un des plus
ardus car contraint pas l'accroissement de l'incertitude avec le temps.
On arrive actuellement faire des prdictions justes et fiables sur les sries temporelles pour le
court moyen terme, toutefois les performances chutent considrablement ds que l'horizon de
prdiction dpasse un certain seuil. Le rsultat espr par les chercheurs actuels est donc de
diminuer le taux d'erreur sur un horizon de prdiction important.
1.2.
Objectifs du projet:
L'application raliser n'est pas une suite proprement dite de ce travail, mais s'inscrit dans le
mme registre: Il s'agit de crer un outil de prdiction pour les sries de donnes temporelles. Avec
pour objectif la mise en vidence de l'effet du Boosting sur les donnes modlises non pas en
rseaux de neurones cette fois-ci, mais sur des Machines Vecteurs de Support (SVM), reconnues
meilleures en performances. Le dtail des outils utiliss et de limplmentation seront abords plus
amplement dans les chapitres suivants.
1.3.
Description du projet
Pour mettre en uvre le cur mtier de l'application, nous utiliserons la version Java de la
librairie LIBSVM, c'est une librairie ddie aux Machines Vecteurs de Support, permettant de faire
des classifications et des rgressions.
Le fonctionnement de la LIBSVM traduit bien ces deux phases, il consiste dfinir des paramtres
d'entre, utiliser des fichiers d'apprentissage pour gnrer un fichier modle, puis exploiter ce
dernier pour faire des prdictions sur le fichier de test. A noter que les donnes traiter sont
contenues dans des fichiers plats, format standard interprt par la quasi-totalit des plateformes
logicielles.
File.Learn
Systme
Modle
File.predict
LibSVM.jar
Taux d'erreur
File.test
Diffrents ?
L'application sera dveloppe en langage Java, du Swing/SWT seront utiliss pour la gestion des
interfaces graphiques, et le plugin GWT pour faciliter l'dition des interfaces sous LIDE Eclipse. Les
fonctions de la librairie LibSVM sont compresses dans un fichier .jar, qui sera inclus dans le package
de l'application.
Anne scolaire 2011 -2012
2.1.
10
sur des horizons moyens, mais elle est toutefois contrainte par laccroissement du taux derreur avec
llargissement de lhorizon de prdiction.
Il existe toute une gamme de problmes spcifiques aux sries chronologiques qui ne sont pas
trangers aux praticiens de statistiques descriptives et qui vont ncessiter la mise au point dun
certain nombre de techniques pour un traitement conomtrique (cest--dire fondements
probabilistes). Cest l la premire raison du dveloppement de lconomtrie des sries temporelles.
Ces problmes sont les suivants : la prvision, lidentification et le retrait de la tendance, la correction
des variations saisonnires, la dtection de rupture, la sparation du court terme et du long terme,
ltude des anticipations des agents
Source : Sbastien LECHEVALIER, Une introduction lconomtrie des sries temporelles ,
Universit Paris-I
2.2.
2.2.1. Prsentation
SVM (Support Vector Machines) ou Machines vecteurs supports sont des classifieurs faisant
partie des techniques dapprentissage supervis. Introduits par Vapnik (1995) pour rsoudre des
problmes de classification, ils ont connu depuis un grand succs car utiliss massivement dans
divers domaines : reconnaissance de formes, OCR, bioinformatique Lusage sest galement
rpandu vers la rsolution des problmes de rgression, aussi bien grs que les classifications.
Cette technique fait appel un jeu de donnes dit d'apprentissage dont les instances
contiennent une valeur cible (target) galement appele tiquette de classe ainsi que plusieurs
attributs (attributes) reprsentant lensemble des variables observes, et ce pour produire un
modle permettant de prdire les valeurs cibles dun autre ensemble dit de test , en ne
fournissant ce modle-l que les attributs des donnes de test. En dautres termes, si on considre
un jeu de donnes divis en deux groupes : un groupe pour les exemples connus et un autre pour les
exemples non connus, le but des SVM est dapprendre une fonction qui traduit le comportement des
exemples connus pour prdire les cibles des exemples inconnus.
11
dimension. La marge est la distance entre la frontire de sparation et les chantillons les plus
proches, ces derniers sont appels vecteurs supports. Une marge maximale permet dobtenir une
plus petite dimension de VC (Vapnik-Chervonenkis, Thorie statistique de l'apprentissage ,1990),
ce qui assure de bonnes performances en gnralisation.
En considrant un jeu de donnes dapprentissage avec des exemples (xi; yi); i = 1,l, o xi Rn
et y {-1,+1} l, les SVM (Boser et al., 1992; Cortes et Vapnik, 1995) requirent la rsolution du
problme doptimisation suivant :
12
2.2.4. SVR
Lorsque les SVM sont utiliss dans des problmes de rgression pour prdire des valeurs relles,
on parle des SVR (Support Vector Regression).
Les SVM peuvent galement tre mis en oeuvre en situation de rgression,cest--dire pour
lapproximation de fonctions quand Y est quantitative. Dans le cas non linaire, le principe consiste
rechercher une estimation de la fonction par sa dcomposition sur une base fonctionnelle. La forme
gnrale des fonctions calcules par les SVM se met sous la forme :
Le problme se pose toujours comme la minimisation dune fonction cot, mais plutt que dtre
base sur un critre derreur quadratique (moindres carrs), celle-ci sinspire des travaux de Huber sur
la recherche de modles robustes et utilise des carts absolus.
On note |.| la fonction qui est paire, continue, identiquement nulle sur lintervalle [0,] et qui
croit linairement sur [,+oo]. La fonction cot est alors dfinie par :
2.3.
Boosting (SVM)
2.3.1. Dfinition
Le Boosting est une technique servant amliorer les capacits de gnralisation dun systme de
classification ou de prdiction en optimisant les performances de son algorithme dapprentissage. Il
fait partie des mthodes de combinaison de modles, dont lobjectif est de combiner plusieurs
hypothses pour obtenir des estimations meilleures que celles dun modle unique. Ces mthodes
ont la capacit damliorer les performances dun algorithme dapprentissage faible (weak learner),
Anne scolaire 2011 -2012
13
pourvu quil fasse mieux que le hasard (se trompe moins dune fois sur deux en moyenne). Lide est
quen divisant lensemble dapprentissage en plusieurs sous-ensembles moins complexes, il est plus
facile dapprendre les donnes, et par consquent dobtenir une meilleure gnralisation.
Cest (Schapire 1989) qui a introduit le premier algorithme de boosting temps dexcution
polynomial. (Freund 1990) a pu dvelopper une anne aprs, un algorithme plus efficace mais qui
avait cependant quelques inconvnients pratiques. La vritable mergence du boosting a dbut
avec la cration de AdaBoost -pour Adaptative Boosting- (Freund & Schapire, 1995), dont le dtail est
donn plus loin par un pseudo-code de lalgorithme.
2.3.2. Fonctionnement
Diverses mthode sinscrivent dans le mme registre que le boosting, tels le bagging,le cascading,
le stacking, qui agissent toutes par combinaison de modles, mais qui diffrent dans leur manire de
gnrer ces modles-l. Le bagging par exemple divise lensemble dapprentissage en plusieurs sousensembles et applique par la suite son algorithme dapprentissage sur chacun dentre eux.
Sousensemble 1
Hypothse 1
Sousensemble 2
Hypothse 2
.
.
.
.
.
.
.
Ensemble de
donnes
dapprentissage
Sousensemble N
Algo
.
.
.
.
.
.
.
Hypothse
finale
Hypothse N
Le boosting quant lui procde de faon squentielle, chaque itration la slection dun
lment du nouveau sous-ensemble dpend des rsultats obtenus lors de lapprentissage prcdent
sur cet lment-l. Une faon de rduire rapidement lerreur dapprentissage en se concentrant sur
les exemples les plus difficiles.
14
Sousensemble 1
Sousensemble 2
Ensemble de
donnes
dapprentissage
Hypothse 1
Hypothse 2
Algo
.
.
.
.
.
.
.
.
.
.
.
Hypothse
finale
Hypothse N
Sousensemble N
15
Depuis sa cration, plusieurs versions dAdaboost ont vu le jour, entre autre des versions
spcifiques la rgression. Adaboost.R (Freund & Schapire, 1995) est un algorithme qui traite le
16
Source : Mohammad Assaad (2006), Thse : Un nouvel algorithme de Boosting pour les
rseaux de neurones rcurrents , Polytech Tours
17
Source : Mohammad Assaad (2006), Thse : Un nouvel algorithme de Boosting pour les
rseaux de neurones rcurrents , Polytech Tours
Figure 6: Version Drucker de lalgorithme Adaboost Pour la rgression.
Anne scolaire 2011 -2012
18
Dans ltape 4 de cet algorithme, le choix de la fonction de cot parmi les 3 proposes est laiss
lutilisateur. Les deux fonctions quadratique et exponentielle croissent de faon plus rapide que la
fonction linaire en fonction de x, donc les fortes erreurs de prvision seront davantage pris en
compte.
Pour le calcul de lestimation finale par mdiane pondre, chaque rgresseur hn a une estimation
y(n)q sur le q me exemple et une mesure de confiance associe n dans le rgresseur. Pour un exemple
q, les estimations sont renumrotes de manire avoir
(1)
q
< y
(2)
q
(N)
q
<< y
en gardant
(n)
lassociation entre n et y q. On somme ensuite les logn jusquau plus petit n pour obtenir la
mdiane pondre :
Source : Mohammad Assaad (2006), Thse : Un nouvel algorithme de Boosting pour les
rseaux de neurones rcurrents , Polytech Tours
Pour la gnration des nouveaux sous-ensembles (tape2 de lalgorithme de Drucker), cest la
technique de la roulette qui a t utilis. Le principe de cet algorithme de slection est simple :
considrons un tableau de pourcentages (dans notre cas ce sont des probabilits), par exemple un
tableau nomm pourcentage[1..n] , dont la somme des lments est gale N, on gnre ensuite un
nombre alatoire entre 1 et N, appelons-le random, le traitement effectuer par la suite est comme
suit : (pseudo-code)
int
cumul
for i = 1,n do
cumul = cumul + pourcentage[i]
if random <= cumul then
return i
end
end
19
3.1.
Environnement du projet :
Le projet sera entirement cod en langage Java, par consquent le minimum logiciel requis pour
pouvoir utiliser l'application est une machine virtuelle installe sur le poste o se droulera
l'excution. Les fonctions de la LibSVM sont compresses dans un fichier .jar, qui sera inclus dans le
package de l'application.
Lors du processus de prdiction, les phases d'apprentissage peuvent prendre des temps de calcul
importants lorsque le volume de donnes traites est grand, par consquent plus la machine utilise
pour l'excution de l'application est performante (mmoire/CPU) plus les temps d'excution seront
minimaux et vice versa. Les performances matrielles se verront rellement solliciter lors de
lexcution du processus de prdiction sur des bases de donnes relles, gnralement trs
volumineuses.
3.2.
Comme cit prcdemment, lapplication sera dveloppe en langage Java, le code sera dit
avec lIDE Eclipse. Nous utiliserons du Swing/SWT pour gnrer les interfaces graphiques, en saidant
de WindowBuilder plugin de Google Web Tools (GWT) permettant de faciliter l'dition des interfaces.
Pour standardiser le dveloppement, sparer les couches logiques et mieux structurer lapplication,
on sappuiera sur la modlisation MVC, chose qui savre peu vidente vu le contexte de
lapplication, mais qui permettra de concevoir une architecture lisible, extensible, et surtout facile
maintenir.
La version Java de la LibSVM est architecture sous forme de classes dpendantes les unes des
autres. Ces classes dcrivent la structure des objets qui contiendront chaque instanciation les
donnes des fichiers texte. Les classes contiennent galement un ensemble de mthodes qui
implmentent les algorithmes SVM de classification et de rgressions, ce sont ces mthodes-l qui
seront appeles par les fonctions mtiers de l'application afin de mettre en uvre le processus de
prdiction.
20
3.3.
Fonctionnalits du systme
Le systme doit permettre l'utilisateur d'effectuer un certain nombre de tches, qui ne sont
d'autre que les tapes du processus de prdiction antrieurement dcrits, rappeler : dfinir des
paramtres d'entre, charger des donnes d'apprentissage pour gnrer un modle, puis utiliser ce
modle pour faire des prdictions. Les fonctionnalits utilisateurs sont rassembles dans le
diagramme use case ci-dessous.
3.4.
Aucun droit d'accs n'a t exig pour l'utilisation de l'application, l'intrt tant plus centr sur le
dveloppement de l'outil proprement dit et l'obtention de rsultats probants.
21
3.5.
Contraintes de dveloppement:
Deuxime contrainte est que lon ne dispose daucune rfrence pour valider les rsultats
obtenus, chose qui rend difficile de conclure catgoriquement sur les prdictions ralises, il faudra
par consquent tester le code plusieurs fois, et de faon rigoureuse afin dtre srs quaucune erreur
ne sest glisse dans lalgorithme implment, par manque dincomprhension ou suite une faute
dinattention. Un codage modulaire simpose afin dviter laccumulation des erreurs et de pouvoir
dtecter les problmes ventuels.
22
Ce chapitre dcrit les principaux outils utiliss dans la mise en uvre de lapplication de
prdiction temporelle, nous verrons une introduction lusage de la librairie LIBSVM et de ses
principales fonctionnalits, puis une prsentation du plugin WindowBuilder et de la librairie
graphique JFreeChart . La description des outils est tire en majeure partie de la documentation
officielle de ces derniers.
4.1.
LIBSVM
4.1.1. Introduction
La LIBSVM est une librairie ddie aux Machines Support de Vecteurs (Support Vector
Machines). labore par Chih-Chung Chang et Chih-Jen Lin, deux chercheurs du dpartement
informatique de luniversit de Taipei Taiwan National Taiwan University . La librairie englobe un
ensemble de fonctions implmentant des algorithmes de fouille de donnes, particulirement
utilise pour mettre en uvre des classifications et des rgressions. Elle est disponible en langage
C++ et en JAVA, et compatible avec diverses plateformes logicielles (Python, R, MATLAB, Perl, Ruby,
Weka, Common LISP, CLISP, Haskell, LabVIEW, interfaces PHP, C# .NET, extensions CUDA).
Un site web ddi la LIBSVM a t dress par les auteurs pour fournir la documentation et les
guides dutilisation de la librairie, les excutables et les codes sources en plusieurs langages (un point
fort de loutil), des jeux de donnes pour les tests, ainsi que les dernires mises jours :
http://www.csie.ntu.edu.tw/~cjlin/libsvm . De mme une foire aux questions est prsente sur le
mme site et est significativement constructive.Il est possible de contacter les auteurs pour toute
remarque, report de bug ou suggestion damlioration de la librairie.
23
- Apprentissage : svm-train
La commande svm-train permet de lancer le processus dapprentissage sur les donnes, elle
prend en entre un format de donnes spcifique, dcrit plus loin, et gnre un fichier de modle. La
commande pour utiliser cette fonctionnalit est :
svmtrain [options] training_set_file [model_file]
O training_set_file constitue le fichier dapprentissage et model_file le nom du modle gnrer.
- Prdiction : svm-predict
Gnre les classes prdites ou les valeurs prdites (en cas de rgression), en se basant sur un
modle entrain, la commande utiliser est la suivante :
svmpredict test_file model_file output_file
O test_file est fichier de test, ou les donnes que lon souhaite prdire, noter quil doit galement
tre sous le format LIBSVM et model_file le nom du modle gnrer.
Aprs prdiction, la fonction svm-predict compare les rsultats de la prdiction avec les labels du
fichier de test, pour en dduire la justesse de la prdiction et par la mme occasion le taux derreur
commis.
Anne scolaire 2011 -2012
24
-s svm_type : Cest le type de lalgorithme SVM utiliser, peut tre lune des fonctions: C_SVC,
NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR, et peut prendre respectivement les valeurs suivantes :
0: Pour une classification de type C-SVM
1: Pour une classification de type nu-SVM
2: Pour une classification de type one-class-SVM
3: Rgression de type epsilon-SVM
4: Rgression de type nu-SVM
Par dfaut le type SVM utilis est C_SVC.
-t kernel_type : Cest le type de la fonction noyau utiliser, peut tre dfini : LINEAR, POLY,
RBF ou SIGMOID, et par consquent prendre les valeurs :
0: Pour utiliser une fonction linaire de formule =u'*v
1: Pour une fonction polynomiale de formule = (gamma*u'*v + coef0)^degr
2: Pour une fonction Radiale de formule = exp(-gamma*|u-v|^2)
3: Pour une fonction sigmode de formule = tanh(gamma*u'*v + coef0)
4: Pour crer un kernel dans le fichier de test (cf. documentation LIBSVM pour le dtail).
Tels que : u reprsente la transpos du vecteur contenant les valeurs des attributs de lensemble
dapprentissage, et v le vecteur des labels (tiquettes). Le gamma, degr et coef0 sont des
paramtres (rentrs pas lutilisateur). Par dfaut le type de la fonction noyau utilise est RBF, la
documentation LIBSVM recommande lutilisation de la fonction RBF pour plusieurs raisons, entre
autre parce que RBF gre le cas o la relation entre les labels et les attributs est non linaire.
25
noter que la librairie propose un utilitaire pour vrifier la validit des paramtres avant de faire
appel la fonction dapprentissage, vie la commande svm_check_parameter().
26
Chaque ligne du fichier reprsente un enregistrement (ou un individu) appartenant un une classe
du jeu de donnes, comme sur lexemple ci-dessous :
+1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1
- Sorties :
-Fichier modle :
Le fichier du modle contient les paramtres qui ont t utiliss lors de la phase dapprentissage,
suivis dun tableau dont les lignes reprsentent les supports vecteurs. Les supports vecteurs sont
lists dans lordre des labels, et regroups par classes. Sachant que pour un jeu de donnes de k
classes, on aura k-1 coefficients pour les supports vecteurs de chacune des classes.
Si lon a par exemple un jeu de donnes de 4 classes, les supports vecteurs seront regroups dans
le modle comme dans la reprsentation ci-aprs :
+-+-+-+--------------------+
|1|1|1|
|
|v|v|v| SVs from class 1 |
|2|3|4|
|
+-+-+-+--------------------+
|1|2|2|
|
|v|v|v| SVs from class 2 |
|2|3|4|
|
+-+-+-+--------------------+
|1|2|3|
|
|v|v|v| SVs from class 3 |
|3|3|4|
|
+-+-+-+--------------------+
|1|2|3|
|
|v|v|v| SVs from class 4 |
|4|4|4|
|
+-+-+-+--------------------+
27
-Fichier de prdiction
Le format du fichier de prdiction rsultant aprs lappel de la fonction svm-predict est simple,
chaque ligne de ce fichier contient le label relatif la classe prdite pour la ligne quivalente du
fichier de test. Dans le cas dune rgression, le fichier contient des valeurs relles illustrant les
prdictions trouves pour les antrieurs contenus dans le fichier de test. La figure ci-dessous
reprsente un fichier de prdiction (rgression) ouvert sous Bloc note.
4.2.
WindowBuilder est considr lun des meilleurs outils pour la construction WYSIWYG d'IHMs
multiplateformes, et savre extrmement stable. Il est constitu par Les deux Java Designer Swing et
SWT et supporte diverses API : JFace, RCP, XWT et GWT. Son utilisation est simple, il offre un espace
de travail assez intuitif, rappelant celui de Visual Basic, moins convivial que lditeur graphique de
28
Netbeans, et nettement plus lent, mais le rendu est tout aussi satisfaisant. Avec de simples Drag-anddrop, loutil permet la cration de formulaires basiques tout comme des fentres complexes,
gnrant derrire le code java des composants utiliss.
4.3.
Elle offre galement diverses options de configuration pour personnaliser sa guise le rendu des
graphiques, et permet d'exporter ces graphiques sous divers formats, incluant le format JAVA des
29
composants Swing, les fichiers images standards (PNG, JPEG), ainsi que les fichiers graphiques
vectoriels (PDF, EPS, SVG)
Pour pouvoir utiliser la librairie il suffit de tlcharger lune des versions disponibles sur le site
web de lditeur, et dajouter dans son classpath le chemin vers les le dossier lib de la librairie
dcompresse.
Si la librairie est gratuite et open-source fournie sous licence GNU Lesser General Public Licence
(LGPL), la documentation quant elle est payante, elle est cependant bien faite et complte. noter
quune distribution de type LGPL permet lutilisation de la librairie dans des applications
propritaires.
30
CHAPITRE 5 : PLANNING
5.1.
Ce Sprint est une phase de dmarrage pour le projet, c'est une tape de dcouverte et de prise de
conscience du sujet, c'est aussi un premier contact avec la documentation de la librairie LIBSVM.
5.2.
31
33
6.1.
Lensemble de ces classes constitue la structure des objets qui vont englober chaque
instanciation les donnes de nos fichiers texte. Ces classes contiennent aussi les mthodes qui seront
appeles par les fonctions mtiers de l'application afin de mettre en uvre le processus de
prdiction. Ci-dessous une description de la structure de base des classes les plus importantes :
- SVM-parameter
- SVM-node
- SVM-problem
- SVM-model
35
6.2.
Lapplication raliser est simple dun point de vue complexit des composants, il est toutefois
important de la coder de faon modulaire, et de raliser une sparation entre les couches logiques
qui la composent, et ce pour une meilleure lisibilit du code et une meilleure standardisation de
larchitecture logicielle. La sparation des entits logiques permet de concevoir des applications
standards, extensibles et surtout faciles maintenir et faire voluer. On peut par exemple aisment
changer la manire d'accder aux donnes sans se soucier de la partie prsentation, ou de la manire
avec laquelle ces donnes seront manipules. Lapplication sera donc dcoupe en 3 couches.
- Couche Mtier :
La couche mtier regroupe toutes les classes qui dcrivent la logique du processus de prdiction
(chargement des fichiers, apprentissage des donnes, prdiction des nouvelles valeurs, boosting)
- Couche Donnes :
Reprsente les donnes de lapplication, sachant quelles sont stockes dans des fichiers plats.
- Couche Prsentation :
Rassemble le Contrleur de lapplication ainsi que lIHM, cest linterface vue par lutilisateur.
Anne scolaire 2011 -2012
36
6.3.
Diagramme de classes:
37
6.4.
(1)
(2)
( 3)
(4)
(5)
Figure 15: Interface de lapplication
Anne scolaire 2011 -2012
38
39
40
Fichier Modle : Un seul modle est gnr si la prdiction a t faite sans boosting, ou
plusieurs si elle a t ralise avec boosting.
Paramtres SVM
utiliss lors de la
prdiction
Supports
vecteurs
trouvs
41
- Fichier log :
Au fur et mesure de lexcution de lapplication, plusieurs logs sont cris dans un fichier texte,
ci-dessous un aperu non exhaustif des informations enregistres :
Paramtres SVM
utiliss lors de la
prdiction
Supports
vecteurs
trouvs
Informations sur
lalgorithme de
Boosting
Itrations Boosting
42
43
7.1.
Comme dans la plupart des analyses de donnes, le processus de prdiction avec des machines
SVM ncessite la normalisation des donnes brutes, afin dviter que les valeurs grandeurs
extrmes naltrent la qualit de lanalyse. De plus, les fichiers de donnes dapprentissage et de test
doivent tre normaliss sur le mme intervalle et de la mme manire. La LIBSVM propose une
fonctionnalit pour la normalisation des donnes, elle peut tre utilise en ligne de commande via la
commande svm-scale. Une telle fonctionnalit peut tre intgre dans lapplication dans le cadre
dune amlioration future.
SVM require que les donnes soient reprsentes sous forme de vecteurs de rels, par
consquent les attributs qualitatifs doivent tre convertis en donnes quantitatives. La LIBSVM
recommande de convertir un attribut de m modalits en m attributs quantitatifs. Comme prcis
prcdemment, les tests raliss ont t faits sur les donnes Sunspot (Taches solaires), ce sont des
donnes relles normalises auparavant. Lapplication peut bien videmment recevoir en entre
dautres fichiers de donnes, il suffit de les traiter avant de les injecter.
7.2.
La slection des paramtres SVM est extrmement importante, dans la mesure o elle influence
de faon trs significative le processus de prdiction, nous verrons dans les expriences qui suivent
quune bonne slection de paramtre rend obsolte le boosting des donnes dans certains cas.
Les paramtres choisir ne sont pas identiques tous les problmes et ne sont pas forcment
connus lavance pour un jeu de donn prcis, ce qui impose de faire une slection de paramtres.
En dautres termes il faut rechercher les meilleurs paramtres pour le kernel utilis de faon ce que
le prdicteur prdise avec une plus grande justesse les valeurs inconnues (donnes de test).
44
La LIBSVM propose un utilitaire pour faire de la slection de paramtres appel le Grid search ,
qui se base sur la division des donnes en plusieurs sous-ensembles (n-fold) de plus petite taille pour
trouver les meilleurs paramtres C et Gamma. Une version spciale pour la rgression a t rajoute
sur le site web de la librairie, elle permet de donner en plus de C et gamma la valeur optimale du
Epsilon utiliser.
7.3.
Expriences
Afin dvaluer la qualit des prdictions obtenues au niveau des tests, lErreur Quadratique
Moyenne ou Mean Square Error (MSE) a t utilise comme mesure de lerreur en prdiction.
Horizon
h+1
MSE
Horizon
MSE
h+9
h+2
h+10
h+3
h+15
h+4
h+20
h+5
h+25
h+6
h+30
h+7
h+35
h+8
h+40
45
Horizon
h+1
h+2
h+3
h+4
h+5
h+6
h+7
h+8
Best C
16
32
16
0.5
0.5
0.5
0.5
Best Gamma
0.5
0.5
0.25
0.0625
0.25
Horizon
h+9
h+10
0.125
h+15
h+20
h+25
h+30
h+35
h+40
Best C
32
0.5
0.5
32
Best Gamma
0.5
0.25
0.25
0.5
0.25
0.25
Best Epsilon
0.0625
0.125
0.0625
0.125
0.0625
0.125
0.125
0.125
46
En lanant de nouvelles prdictions avec les paramtres slectionns nous obtenons les rsultats
ci-dessous:
Horizon
h+1
MSE
0,00634
Horizon
h+9
MSE
0,02725
h+2
h+3
h+4
0,01743
0,02266
0,02608
h+10
h+15
h+20
0,02489
0,04363
0,04386
h+5
0,02298
h+6
h+7
h+8
0,02279
0,02399
0,02663
h+25
h+30
h+35
h+40
0,06944
0,07377
0,08212
0,11650
47
Comme expliqu dans les chapitres premiers, la version Drucker de lalgorithme de Boosting inclut
des fonctions cot supplmentaires par rapport lalgorithme classique Adaboost.R, ainsi les tests
ont t lancs arbitrairement avec les 3 fonctions cot de lalgorithme, savoir : linaire,
quadratique et exponentielle. Des tests plus organiss doivent tre entrepris ce niveau, par
manque de temps ceci na pas pu tre ralis.
Pour chaque jeu de donnes (de h+1 h+40) une vingtaine dexcutions ont t ralises, vu la
prsence dun Random dans lalgorithme de Boosting, les valeurs prdites avec Boosting changent
dune excution une autre, forant la MSE changer par consquent. Le tableau rassemble les
meilleurs rsultats de boosting obtenus :
Horizon
h+1
h+2
h+3
h+4
h+5
h+6
h+7
h+8
0,00634
0,01743
0,02266
0,02608
0,02298
0,02279
0,02399
0,02663
0,00649
0,01698
0,02194
0,02529
0,02524
0,02101
0,03048
0,02509
Horizon
h+9
h+10
h+15
h+20
h+25
h+30
h+35
h+40
0,02725
0,02489
0,04363
0,04386
0,06944
0,07377
0,08212
0,11650
0,02246
0,02469
0,03685
0,03716
0,05017
0,05112
0,06212
0,07120
48
Les valeurs en rouge reprsentent les MSE qui ont t amliores lors de lexcution de
lapplication en mode Boosting, la plupart des valeurs ont pu rgresser, de faon trs significative
pour les grands horizons de prdiction.
En traduisant les tableaux en graphes et en les comparants aux rsultats des prdictions avec et
sans slection de paramtres, on obtient lvolution ci-aprs :
Observations:
Bien que les MSE aient pu changer au cours des 20 tests effectus, elles se sont rvles
toujours meilleures que celle commises sans Boosting, et ce pour les horizons de prdiction allant
de h+10 h+40 ( 19 fois sur 20 les tests ont donn une valeur MSE meilleure celle sans
Boosting).
49
La faible amlioration apporte par le boosting au niveau des petits horizons (h+1 h+10), peut
tre explique par le fait que les rsultats soient dj optimaux, ne pouvant amliorer le meilleur le
boosting ralise des rsultats aussi bons voire plus mauvais que ceux faits sans boosting. tant des
apprenants Forts (Strong learner) les SVM ralisent dj de trs bonnes performances en
gnralisation, ces derniers saffaiblissent avec lhorizon de prdiction, permettant dans ce cas au
boosting dapporter une amlioration, ce qui expliquerait les bonnes performances Boosting de
h+10 h+40.
Horizon
h+1
h+2
h+3
h+4
h+5
h+6
h+7
h+8
0,00634
0,01743
0,06455
0,07878
0,06589
0,05876
0,04602
0,05055
0,00659
0,01561
0,04696
0,05491
0,06828
0,05193
0,05844
0,05622
Horizon
h+9
h+10
h+15
h+20
h+25
h+30
h+35
0,25981
0,05535
0,13488
0,08085
0,08277
0,08788
0,12057
0,10623
0,05446
0,08999
0,04434
0,04907
0,05776
0,09610
50
De mme une amlioration est faite de h+8 h+35, une interprtation possible du graphique
serait que les performances du boosting ne dpendent pas uniquement de lhorizon de prdiction
mais aussi de la difficult de lexemple, la prdiction sur h+9 a t trs mauvaise elle a pu tre
amliore tout de mme, par contre celle h+10 ne la pas t malgr quelle soit plus avance dans
le temps.
51
CONCLUSION
Lobjectif de ce projet tait la mise en uvre d'un outil logiciel, permettant de combiner la
mthode SVR et l'algorithme de Boosting afin d'amliorer les rsultats des prdictions des sries
temporelles sur des horizons de prdiction tendus.
Les expriences menes ont dmontr quen utilisant lalgorithme de Boosting pour combiner les
modles en apprentissage par SVM, il existe effectivement une amlioration des performances au
niveau des prdictions. Cette amlioration est particulirement observe sur des horizons de
prdiction tendus. De mme, les tests ont affirm le rle de la slection des paramtres
dapprentissage dans le processus.
Bien que que les expriences effectus semblent converger vers le bon sens, le nombre de tests
effectus nest toutefois pas suffisant pour conclure correctement sur les rsultats, dautres
expriences doivent tre menes sur dautres jeux de donnes, en diversifiant de faon organise le
paramtrage des algorithmes SVM et Boosting.
Les 6 commandements:
Ci-dessous un ensemble de remarque pour les personnes qui reprendraient ventuellement la
recherche sur ce sujet :
52
4- Optimisation du code :
Aucune tude particulire na t faite au niveau de la complexit du code et des temps dexcution,
lapplication est plutt rapide compare des applications sous rseaux de neurones, cependant sur
des jeux de donnes importants cette rapidit peut tre compromise.
6- Gestion de projets :
Dans ce PFE les tests ont t insrs la fin des phases de dveloppement, cest la squence logique
cependant il serait utile de consacrer aux tests toute une phase dans le projet, stalant sur plusieurs
mois.
53
GLOSSAIRE
- Boosting: Mthode permettant, sous certaines conditions, damliorer les performances de nimporte quel
algorithme dapprentissage. Il combine linairement des hypothses dites faibles ou weak hypotheses (i.e.
juste meilleures quun tirage alatoire) en une hypothse dite forte ou strong hypothesis.
Source : www.lif.univ-mrs.fr/~capponi/epit2008/lib/exe/fetch.ph
- SVM (Support Vector Machines): Machines Vecteurs de Support ou sparateurs vaste marge, sont un
ensemble de techniques d'apprentissage supervis destines rsoudre des problmes de discrimination et de
rgression. Les SVM sont une gnralisation des classifieurs linaires. Elles ont t appliqus de trs
nombreux domaines (bioinformatique, recherche d'information, vision par ordinateur, finance...). Selon les
donnes, la performance des machines vecteurs de support est de mme ordre, ou mme suprieure, celle
d'un rseau de neurones ou d'un modle de mixture gaussienne.
Source : http://fr.wikipedia.org/wiki/Machine__vecteurs_de_support
- SVR (Support Vector Regression) : Machines Vecteurs de Support pour la rgression, c'est l'application de la
mthode SVM pour des tches de rgression, cest dire prdiction dune variable continue en fonction
dautres variables, comme cest le cas par exemple dans la prdiction de consommation lectrique en fonction
de la priode de l'anne, de la temprature, etc
Source : http://georges.gardarin.free.fr/Surveys_DM/Survey_SVM.pdf
54
REFERENCES BIBLIOGRAPHIQUES
Documents:
-
Chih-Chung Chang and Chih-Jen Lin (2011), LIBSVM : a library for support vector
machines. ACM Transactions on Intelligent Systems and Technology , University of
Taiwan.
Emmanuel Cesar & Bruno Richard (2006), Cours : Les Sries Temporelles ,
Universit de Versailles Saint-Quentin-en-Yvelines Module XML et Data Mining.
Sites Web:
SVM :
- http://www.csie.ntu.edu.tw/~cjlin/libsvm/
- http://wikistat.fr/
Boosting :
- http://www.boosting.org
Forum Learning machines :
- http://agbs.kyb.tuebingen.mpg.de
Ressources documentaires sur les logiciels utiliss:
- http://www.jfree.org/jfreechart/
- http://www.eclipse.org/windowbuilder
- http://jmdoudoux.developpez.com
55
Rsum :
Ce document est un compte rendu du projet de fin dtudes intitul SVR avec boosting
pour la prvision long terme, il dcrit la mise en uvre d'un outil logiciel, permettant de
combiner la mthode SVR et l'algorithme de Boosting afin d'amliorer les rsultats des prdictions
sur les sries temporelles pour des horizons de prdiction tendus.
Abstract:
This document is a review of the graduation project entitled SVR with boosting for longterm forecasting . It describes the implementation of a tool that combines SVR method
with boosting algorithm to improve time series forecasting for large forecasting horizons.
Keywords: SVR, SVM, Boosting, forcasting, time series
Encadrant :
Etudiants :
CHERIF Aymen
Doctorant au DI Polytech Tours
64 avenue Jean Portalis 37200 Tours
aymen.cherif@etu.univ-tours.fr
EL HASSANI Imane
imane.elhassani@etu.univ-tours.fr