SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Construction de modèles de prévision sous R avec le package caret
Groupe FLtauR - Vendredi 7 Mars 2014

Conseil en Management de
l’Information
Goulven Salic

www.bluestone.fr
55 rue du Faubourg Montmartre – 75009 Paris
+33 (0)1 53 25 02 10
contact@bluestone.fr
Sommaire

Introduction
1. Que fait caret?
2. Exemple « pratique »: scoring bancaire (données GermanCredit )





Traitements préliminaires
Modèle 1: k-plus proches voisins
Modèle 2: régression pls
Modèle 3: forêt aléatoire

3. Fonctionnalités supplémentaires de caret
Conclusion

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

2
Introduction
Comment créer un modèle de prévision performant ?
 La création d’un modèle de prévision performant est
un processus complexe



Erreur de prévision

Fort biais,
Faible variance

Faible biais,
Forte variance

Echantillon à scorer

De très nombreux de modèles de prévision sont disponibles dans R,
avec chacun leurs spécificités d’utilisation
Beaucoup de modèles de prévision présentent un risque de surapprentissage

Echantillon d’apprentissage
Complexité « optimale » au
sens de la prévision

Complexité du modèle (exemple:
nombre de variables)

 caret propose un cadre commun pour évaluer et
comparer une centaine de modèles





Séparation apprentissage/test équilibrée
Choix du modèle optimal par ré-échantillonnage
Sélection de variables, pré-traitement, mesure de l’importance des
variables a posteriori…

 Avertissement: ce package n’a d’intérêt que pour des modèles avancés
FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

3
Introduction
Dans quel contexte utiliser caret ?
 Le package R caret (classification and regression training) est une boîte à outil qui
uniformise et rationalise les différentes étapes du processus de création de modèle
En entrée
 Variable à prédire Y (ou à « scorer »):
numérique (régression) : ex. consommation,
revenu…
 Catégorielle (classification): ex. solvabilité,
survie à un naufrage…


 Variables explicatives X



En sortie



 Prévision de Y
 Mesure de la performance du
modèle retenu
 Bonus:

Choix du modèle (arbres,
régression pls, SVM, LASSO,
réseau de neurones,…)
Choix des paramètres de ce
modèle

Potentiellement nombreuses
De qualité variable (valeurs manquantes)




Importance des différentes variables
…

 En termes de données:


Base d’estimation: connaissance de X et Y



Base à « scorer »: connaissance de X
uniquement

Apprentissage

Validation

Test

Base à scorer

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

Base enrichie

07/03/2014

4
Introduction
| Le choix d’un paramètre de complexité est une étape clé de la création d’un modèle

 Exemple de modèle: k-plus proches voisins
Principe: Prévision de Y = Moyenne des k plus proches voisins dans
l’espace des X
 Paramètre de complexité: k
 Impact de l’évolution de ce paramètre:


 Si k est petit (exemple k=1): le modèle est spécifique aux données
d’apprentissage, il y’a un risque que le modèle soit mauvais sur un
nouvel échantillon
 Si k est grand (exemple k=10): le modèle renverra souvent la même
valeur (faible variance) mais présentera un fort biais
 Tout l’art est de trouver le bon compromis

?
3 plus proches
voisins

 Autre exemple (par analogie) : régression linéaire


k = nombre de variables de la régression

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

5
Sommaire

Introduction
1. Que fait caret?
2. Exemple « pratique »: scoring bancaire (données GermanCredit )





Traitements préliminaires
Modèle 1: k-plus proches voisins
Modèle 2: régression pls
Modèle 3: forêt aléatoire

3. Fonctionnalités supplémentaires de caret
Conclusion

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

6
Que fait caret?
| Fonctionnalité principale (fonction train) : estimation par ré-échantillonnage et validation croisée
 L’intérêt principal de caret est d’automatiser
le choix de modèle par validation croisée

Algorithme de sélection de la version optimale
d’un modèle



Plusieurs variantes de validation croisée existent (bootstrap,
validation croisée simple…)
 Ici: présentation de la validation croisée (dite k-fold)
répétée


 Dans la pratique, il s’agit aussi de choisir parmi
plusieurs types de modèles


Une approche consiste à appliquer cette procédure sur
plusieurs modèles candidats puis à retenir le meilleur





Définition par l’utilisateurs d’un ensemble de versions du modèle à tester
Pour chacune de ces versions:
 Pour chaque répétition de l’échantillonnage
 Découpage de l’apprentissage en k morceaux de taille
égale
 k fois: sélection d’un des k morceaux, estimation du
modèle sur les k-1 morceaux restants et prévision sur le
morceau sélectionné
 Fin des itérations
 Calcul d’une erreur moyenne sur les k prévisions
Fin du test de chaque version
Choix de la version optimale en termes de prévision
Estimation du modèle final sur l’ensemble des données pour application

Algorithme de choix parmi plusieurs modèles





Définir une liste de modèles (pls, réseaux de neurones, knn…)
Pour chaque modèle:
 Découpage apprentissage/test (70%/30%)
 Choix de la meilleure version sur l’échantillon
d’apprentissage
 Mesure de l’erreur sur l’échantillon de test
Sélection du meilleur modèle

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

7
Que fait caret?
| Autre fonctionnalité importante: découpage apprentissage/test équilibré
 Lors du découpage apprentissage/test, il est
préférable d’avoir un échantillon
d’apprentissage représentatif:
caret reproduit dans l’échantillon d’apprentissage la
même répartition des Y que dans l’ensemble de la
population
 caret permet également de reproduire une structure
proche sur les variables explicatives X (différent d’un
tirage stratifié, approche dite de dissimilarité maximale)


 Autres fonctionnalités intéressantes:
Pré-traitement: centrage et réduction, complétion de
valeurs manquantes, transformation de Box-Cox
 Sélection de variables a priori
 Mesure de l’importance des variables d’un modèle a







posteriori
Calcul parallèle
Découpage apprentissage/test pour des séries
temporelles
Ajout de modèles et méthodes d’apprentissages
personnalisés
Mesure de performance a posteriori sur l’échantillon de
test

 En résumé: caret est une boîte à outil qui
centralise les méthodes utiles du machine
learning et donne un cadre commun pour le
test de beaucoup de modèles

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

8
Sommaire

Introduction
1. Que fait caret?
2. Exemple « pratique »: scoring bancaire (données GermanCredit )





Traitements préliminaires
Modèle 1: k-plus proches voisins
Modèle 2: régression PLS
Modèle 3: forêts aléatoires

3. Fonctionnalités supplémentaires de caret
Conclusion

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

9
Exemple « pratique »:

 Description du jeu de données:


Code

Jeu de donnée GermanCredit présent dans le
package:
 1 000 observations
 61 variables explicatives (variables
catégorielles recodées en plusieurs variables
binaires)
 Variable cible: « Bon » ou « Mauvais » payeur

 Découpage et choix de l’approche de
validation croisée:
Découpage: 70% d’apprentissage équilibré sur le
classe de payeur
 Méthode d’apprentissage: 10 répétitions de
validation croisée sur 1/10 des données


library( caret)
# Donnees
data( GermanCredit)
# Découpage apprentissage test
inTrain <- createDataPartition( y = GermanCredit$Class,
p = 0.70,
list = F)
# Echantillons d'apprentissage et de test
training <- GermanCredit[ inTrain, ]
test <- GermanCredit[ -inTrain, ]

# Creation de l’objet de controle de la method de validation
# croisée

cvCtrl <- trainControl( method = "repeatedcv",
number = 10,
repeats = 10)

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

10
Exemples
library(caret)

| 1- k plus proches voisins

Code

knnGrid <- data.frame( .k = 1:150)

 Description brève du modèle:

knnFit <- train( Class ~ .,
data = training,
method = "knn",
tuneGrid = knnGrid,
trControl = cvCtrl)
plot( knnFit)

Prévision de Y = moyenne des k voisins dans
l’espace des X
 Paramètre de complexité: nombre de voisins k


# Mesure finale du taux de bien classés sur l'échantillon de test
prevKnn <- predict( knnFit, newdata = test)
tauxBienClasses <- sum( prevKnn == test$Class)/length( prevKnn )

3 plus proches
voisins

# tauxBienClasses = 0.71

?

Paramètres de complexité (ou versions du modèle) testés

Console

Accuracy (Repeated Cross-Validation)

0.70

700 samples
61 predictors
2 classes: 'Bad', 'Good‘

k
1
2
3
No pre-processing
4
Resampling: Cross-Validation (10 fold, repeated 5
10 times)
6

0.68

0.66

0.64

0.62

Summary of sample sizes: 630, 630, 630, 630,
630, 630, ...

0.60

Resampling results across tuning parameters:
0

50

100

150

Accuracy Kappa
0.618 0.0866
0.603 0.0599
0.633 0.0792
0.637 0.0936
0.658 0.102
0.652 0.083

Accuracy SD Kappa SD
0.0502
0.107
0.0587
0.126
0.051
0.109
0.0506
0.108
0.0458
0.0987
0.0433
0.105

...
Accuracy was used to select the optimal model
using the largest value.
The final value used for the model was k = 70.

#Neighbors

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

11
Exemples

library(caret)

| 2- Régression pls

plsGrid = data.frame( .ncomp = 1:30)

 Description brève du modèle:



Code

plsFit <- train( Class ~ .,
data = training,
method = "pls",
tuneGrid = plsGrid,
trControl = cvCtrl)
plot( plsFit)
plsFit

Régression sur les composante principales de X
avec prise en compte de la corrélation avec Y
Paramètre de complexité: nombre de
composantes pls (au maximum égal nombre de
variables)

# Mesure finale du taux de bien classés sur l'échantillon de test
prevPls <- predict( plsFit, newdata = test)
tauxBienClasses <- sum( prevPls == test$Class)/length( prevPls)
# tauxBienClasses = 0.7366667

Accuracy (Repeated Cross-Validation)

Paramètres de complexité (ou versions du modèle) testés

Console
700 samples
61 predictors
2 classes: 'Bad', 'Good'

0.76

2

3
4
5
6
No pre-processing
7
Resampling: Cross-Validation (10 fold, repeated
8
10 times)
9
10

0.74

0.72

Summary of sample sizes: 630, 630, 630, 630,
630, 630, ...

0.70
0

5

10

15

#Components

20

25

30

0.701
0.707
0.77
0.761
0.756
0.76
0.763
0.761
0.762

0.0748 0.0245

0.0783

0.105 0.0305
0.0968
0.402 0.0461
0.127
0.391 0.0423
0.114
0.381 0.0425
0.115
0.396 0.0446
0.116
0.401 0.0422
0.112
0.395 0.0401
0.104
0.397 0.0394
0.102

…

ncomp Accuracy Kappa Accuracy SD Kappa Accuracy was used to select the optimal model using
the largest value.
SD
The final value used for the model was ncomp = 4.
1 0.707 0.0693 0.0202
0.0672

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

12
Exemples
Code

| 3- Forêt aléatoire

rfFit <- train( Class ~ .,
data = training,
method = "rf",
tuneLength = 20,
trControl=trainControl( method = "repeatedcv",
number = 5,
repeats = 5))
rfFit
plot( rfFit)

 Description brève du modèle:




Construction de plusieurs arbres de décision qui
à chaque nœuds utilisent un nombre aléatoire de
variables explicatives puis moyenne des arbres
obtenus pour la prévision
Paramètre de complexité: nombre de variables
explicatives tirées aléatoirement à chaque étape

# Mesure finale du taux de bien classés sur l'échantillon de test
prevRf = predict( rfFit, newdata = test)
tauxBienClasses = sum( prevRf == test$Class)/length( prevRf)
tauxBienClasses
# tauxBienClasses = 0.77

Paramètres de complexité (ou versions du modèle) testés

Console

Accuracy (Repeated Cross-Validation)

0.75

61 predictors
2 classes: 'Bad', 'Good'
0.74

0.73

0.72

0

10

20

30

40

#Randomly Selected Predictors

50

60

5 0.746 0.284 0.0267
0.0833
8 0.745 0.302 0.0262
0.0758
11 0.746 0.315 0.0317
0.0924
No pre-processing
14 0.743 0.316 0.0311
0.0899
Resampling: Cross-Validation (5 fold, repeated 5 17 0.75 0.337 0.0311
0.0888
times)
20 0.747 0.329 0.031
0.092
…
Summary of sample sizes: 560, 560, 560, 560,
560, 560, ...
Accuracy was used to select the optimal model
using the largest value.
Resampling results across tuning parameters: The final value used for the model was
mtry = 17.
mtry Accuracy Kappa Accuracy SD Kappa SD
2 0.717 0.0782 0.0122
0.0539

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

13
Sommaire

Introduction
1. Que fait caret?
2. Exemple « pratique »: scoring bancaire (données GermanCredit )





Traitements préliminaires
Modèle 1: k-plus proches voisins
Modèle 2: régression pls
Modèle 3: forêt aléatoire

3. Fonctionnalités supplémentaires de caret
Conclusion

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

14
Fonctionnalités supplémentaires
| Pré-traitement

library(caret)

 Un pré-traitement est parfois nécessaire
pour:

# 1- Pré-traitement en amont
preProcValues <- preProcess( training[,!( colnames( training) == "Class")],
method = c( "center", "scale"))

Enrichir les données (présence de valeurs
manquantes)
 Transformer les données pour les besoins d’un type
particulier de modèles (données centrées-réduites
pour les réseaux de neurones, transformation de
Box-Cox pour « normaliser » les variables explicatives


 caret permet ce genre de traitements
selon deux modes:

Code

# Autres méthodes: "knnImpute", "bagImpute",
# "BoxCox", "YeoJohnson" ...
trainTransformedDesc <- predict(preProcValues,training)
# 2- Pré-traitement pendant l'estimation du modèle
plsFit2 <- train( Class ~ .,
data = training,
preProcess = c("center", "scale"),
method = "pls",
tuneLength = 10,
trControl = cvCtrl)
# Autres pré-traitements possibles en amont: recodage # des
variables catégorilles en variables binaires #(recodage de plein
rang)

En amont du modèle (modification des données
d’apprentissage)
 Au moment de l’estimation du modèle


FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

15
Fonctionnalités supplémentaires
| Importance des variables

Code

 caret permet également de mesurer après
estimation du modèle les variables les plus
influentes:



Les métriques spécifiques à chaque modèles sont mises
en œuvre
Le résultat est normalisé sur une échelle de 1 à 100
comparable d’un modèle à l ’autre.

# Importance des variables du modèle pls
varImp(plsFit)

# Importance des variables du modèle knn
varImp(knnFit)

Console

Console

 Le package permet également d’effectuer
une sélection de variable a priori



Basé sur des tirages aléatoires de groupes de variables
N’est applicable qu’à certains modèles (par exemple, le
modèle LASSO consiste en tant que tel en une sélection
de variables)

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

16
Fonctionnalités supplémentaires
| Calcul parallèle, séries temporelles
 caret permet d’accélérer les procédures
de ré-échantillonnage en parallélisant les
tâches



Les différents échantillons tirés étant indépendants,
la parallélisation ne pose pas de problème théorique
Utilisation du package doParallel (marche également
avec doMC ou doMPI selon la plateforme)

 Possibilité de faire du ré-échantilonnage
sur des données temporelles





Un re-échantillonnage classique n’est pas adapté à
des données temporelles
Possibilité d’effectuer différents découpages où
l’échantillon d’apprentissage est situé
chronologiquement avant l’échantillon de test
Remarque : pour l’instant, pas de prise en charge des
modèles de séries temporelles univariés classiques
(ARIMA, ARCH, …)

Code
library(doParallel)
nbCores <- 2
cl <- makeCluster( nbCores)
registerDoParallel(cl)
plsFit <- train( Class ~ .,
data = training,
allowParallel = T,
method = "pls",
tuneLength = 25)
stopCluster(cl)

Code
data(economics)
myTimeControl <- trainControl(method="timeslice",
initialWindow=36,
horizon=12,
fixedWindow=TRUE
)
plsFitTime <- train( unemploy~pce+pop+psavert ,
data=economics,
method="pls",
preProc= c("center", "scale"),
trControl=myTimeControl
)

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

17
Sommaire

Introduction
1. Que fait caret?
2. Exemple « pratique »: scoring bancaire (données GermanCredit )





Traitements préliminaires
Modèle 1: k-plus proches voisins
Modèle 2: régression pls
Modèle 3: forêt aléatoire

3. Fonctionnalités supplémentaires de caret
Conclusion

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

18
Conclusion
| Avantages et inconvénients du package caret

 Inconvénients:

 Avantages:





Applicable à presque toutes les méthodes existant en
machine learning
Ecriture simple des différents processus de sélection de
modèles
Package régulièrement maintenu et faisant l’objet d’une
attention croissante dans la communauté R (useR! 2013)





Débuggage : dépend du package du modèle que l’on
cherche à estimer (qualité variable selon les modèles, les
méthodes principales sont néanmoins fiables)
Temps de calcul (cela est propre à toute approche de rééchantillonnage)

 Pour aller plus loin:






http://caret.r-forge.r-project.org/
http://cran.r-project.org/web/packages/caret/vignettes/caret.pdf
www.jstatsoft.org/v28/i05/paper
http://appliedpredictivemodeling.com/
http://www.stanford.edu/~hastie/local.ftp/Springer/OLD//ESLII_print4.pdf

FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET

07/03/2014

19

Contenu connexe

Tendances

Analyse de régression linéaire
Analyse de régression linéaire Analyse de régression linéaire
Analyse de régression linéaire Adad Med Chérif
 
Introduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniquesIntroduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniquesIsmail CHAIB
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction généraleMohamed Heny SELMI
 
Analyse de régression multiple
Analyse de régression multipleAnalyse de régression multiple
Analyse de régression multipleAdad Med Chérif
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistiqueBoris Guarisma
 
Programmation par contraintes
Programmation par contraintesProgrammation par contraintes
Programmation par contraintesOrochi Krizalid
 
Choix de l’analyse statistique appropriée
 Choix de l’analyse statistique appropriée  Choix de l’analyse statistique appropriée
Choix de l’analyse statistique appropriée Adad Med Chérif
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleSoft Computing
 
Analyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesAnalyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesJaouad Dabounou
 
Evaluer les acquis des étudiants
Evaluer les acquis des étudiantsEvaluer les acquis des étudiants
Evaluer les acquis des étudiantsJean-Loup Castaigne
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'imagesAbdelouahed Abdou
 
Formation Cahier des charges fonctionnel
Formation Cahier des charges fonctionnelFormation Cahier des charges fonctionnel
Formation Cahier des charges fonctionnelGrain Incubation
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Méthodes de recherche mixtes
Méthodes de recherche mixtesMéthodes de recherche mixtes
Méthodes de recherche mixtesComSanté
 

Tendances (20)

Analyse de régression linéaire
Analyse de régression linéaire Analyse de régression linéaire
Analyse de régression linéaire
 
Introduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniquesIntroduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniques
 
(Cours régression)
(Cours régression)(Cours régression)
(Cours régression)
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
Pmi
PmiPmi
Pmi
 
Analyse de régression multiple
Analyse de régression multipleAnalyse de régression multiple
Analyse de régression multiple
 
Analyse de données avec spss,
Analyse de données avec spss,Analyse de données avec spss,
Analyse de données avec spss,
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistique
 
Programmation par contraintes
Programmation par contraintesProgrammation par contraintes
Programmation par contraintes
 
Partie1BI-DW2019
Partie1BI-DW2019Partie1BI-DW2019
Partie1BI-DW2019
 
Choix de l’analyse statistique appropriée
 Choix de l’analyse statistique appropriée  Choix de l’analyse statistique appropriée
Choix de l’analyse statistique appropriée
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence Artificielle
 
Analyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesAnalyse Factorielle des Correspondances
Analyse Factorielle des Correspondances
 
Evaluer les acquis des étudiants
Evaluer les acquis des étudiantsEvaluer les acquis des étudiants
Evaluer les acquis des étudiants
 
Big data
Big dataBig data
Big data
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
Formation Cahier des charges fonctionnel
Formation Cahier des charges fonctionnelFormation Cahier des charges fonctionnel
Formation Cahier des charges fonctionnel
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
Méthodes de recherche mixtes
Méthodes de recherche mixtesMéthodes de recherche mixtes
Méthodes de recherche mixtes
 

En vedette

R2DOCX : R + WORD
R2DOCX : R + WORDR2DOCX : R + WORD
R2DOCX : R + WORDCdiscount
 
Presentation r markdown
Presentation r markdown Presentation r markdown
Presentation r markdown Cdiscount
 
Cours econometrie-uqam-st-3-v4
Cours econometrie-uqam-st-3-v4Cours econometrie-uqam-st-3-v4
Cours econometrie-uqam-st-3-v4Arthur Charpentier
 
Première approche de cartographie sous R
Première approche de cartographie sous RPremière approche de cartographie sous R
Première approche de cartographie sous RCdiscount
 
Exports de r vers office
Exports de r vers officeExports de r vers office
Exports de r vers officefrancoismarical
 
R aux enquêtes de conjoncture
R aux enquêtes de conjonctureR aux enquêtes de conjoncture
R aux enquêtes de conjoncturefrancoismarical
 
Slides econometrics-2017-graduate-2
Slides econometrics-2017-graduate-2Slides econometrics-2017-graduate-2
Slides econometrics-2017-graduate-2Arthur Charpentier
 
L'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieuxL'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieuxLaurent Beauguitte
 
Les principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseauLes principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseauLaurent Beauguitte
 
Paris2012 session3b
Paris2012 session3bParis2012 session3b
Paris2012 session3bCdiscount
 
Robust sequentiel learning
Robust sequentiel learningRobust sequentiel learning
Robust sequentiel learningCdiscount
 
Paris2012 session1
Paris2012 session1Paris2012 session1
Paris2012 session1Cdiscount
 
Paris2012 session2
Paris2012 session2Paris2012 session2
Paris2012 session2Cdiscount
 

En vedette (20)

R Devtools
R DevtoolsR Devtools
R Devtools
 
Gur1009
Gur1009Gur1009
Gur1009
 
R2DOCX : R + WORD
R2DOCX : R + WORDR2DOCX : R + WORD
R2DOCX : R + WORD
 
Big data with r
Big data with rBig data with r
Big data with r
 
Presentation r markdown
Presentation r markdown Presentation r markdown
Presentation r markdown
 
R versur Python
R versur PythonR versur Python
R versur Python
 
Cours econometrie-uqam-st-3-v4
Cours econometrie-uqam-st-3-v4Cours econometrie-uqam-st-3-v4
Cours econometrie-uqam-st-3-v4
 
R in latex
R in latexR in latex
R in latex
 
Première approche de cartographie sous R
Première approche de cartographie sous RPremière approche de cartographie sous R
Première approche de cartographie sous R
 
Exports de r vers office
Exports de r vers officeExports de r vers office
Exports de r vers office
 
R aux enquêtes de conjoncture
R aux enquêtes de conjonctureR aux enquêtes de conjoncture
R aux enquêtes de conjoncture
 
Slides econometrics-2017-graduate-2
Slides econometrics-2017-graduate-2Slides econometrics-2017-graduate-2
Slides econometrics-2017-graduate-2
 
Econometrics 2017-graduate-3
Econometrics 2017-graduate-3Econometrics 2017-graduate-3
Econometrics 2017-graduate-3
 
L'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieuxL'analyse de réseaux avec R. Un état des lieux
L'analyse de réseaux avec R. Un état des lieux
 
Les principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseauLes principaux logiciels pour l'analyse de réseau
Les principaux logiciels pour l'analyse de réseau
 
Paris2012 session3b
Paris2012 session3bParis2012 session3b
Paris2012 session3b
 
Scm risques
Scm risquesScm risques
Scm risques
 
Robust sequentiel learning
Robust sequentiel learningRobust sequentiel learning
Robust sequentiel learning
 
Paris2012 session1
Paris2012 session1Paris2012 session1
Paris2012 session1
 
Paris2012 session2
Paris2012 session2Paris2012 session2
Paris2012 session2
 

Similaire à FLTauR - Construction de modèles de prévision sous r avec le package caret

optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdfMouloudi1
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdfhanamettali
 
resampling_evaluation.pdf
resampling_evaluation.pdfresampling_evaluation.pdf
resampling_evaluation.pdfSidiAbdallah1
 
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Julien Bect
 
Data Mining (Partie 3).pdf
Data Mining (Partie 3).pdfData Mining (Partie 3).pdf
Data Mining (Partie 3).pdfOuailChoukhairi
 
Ch6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfCh6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfnesrinetaamallah
 
Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...
Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...
Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...ACSG - Section Montréal
 
Presoutenance
PresoutenancePresoutenance
PresoutenanceJun XIONG
 
PJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfPJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfYounesOuladSayad1
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdfSidiAbdallah1
 
0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler
0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler
0 a032g formation-modeles-predictifs-avec-ibm-spss-modelerCERTyou Formation
 
Etude comparative des classifieurs Naïve Bayes et SVM
Etude comparative des classifieurs Naïve Bayes et SVMEtude comparative des classifieurs Naïve Bayes et SVM
Etude comparative des classifieurs Naïve Bayes et SVMSamirAwad14
 
Planification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésiennePlanification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésienneJulien Bect
 
L’apport des techniques statistiques dans les projets Lean 6 Sigma
L’apport des techniques statistiques dans les projets Lean 6 SigmaL’apport des techniques statistiques dans les projets Lean 6 Sigma
L’apport des techniques statistiques dans les projets Lean 6 SigmaXL Formation
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?Marc Bojoly
 
Article: Qu'est-ce que le R&R?
Article: Qu'est-ce que le R&R?Article: Qu'est-ce que le R&R?
Article: Qu'est-ce que le R&R?Infodream
 

Similaire à FLTauR - Construction de modèles de prévision sous r avec le package caret (20)

optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
resampling_evaluation.pdf
resampling_evaluation.pdfresampling_evaluation.pdf
resampling_evaluation.pdf
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
 
Genetic Algorithm for Multi-Agent simulation Calibration (GAMAC)
Genetic Algorithm for Multi-Agent simulation Calibration (GAMAC)Genetic Algorithm for Multi-Agent simulation Calibration (GAMAC)
Genetic Algorithm for Multi-Agent simulation Calibration (GAMAC)
 
Data Mining (Partie 3).pdf
Data Mining (Partie 3).pdfData Mining (Partie 3).pdf
Data Mining (Partie 3).pdf
 
Ch6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfCh6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdf
 
Analyzing a churn data set
Analyzing a churn data set Analyzing a churn data set
Analyzing a churn data set
 
Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...
Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...
Calcul de la vulnérabilité aux changements climatiques pour les vagues de cha...
 
Soutenance 17 Avril 2003
Soutenance 17 Avril 2003Soutenance 17 Avril 2003
Soutenance 17 Avril 2003
 
Presoutenance
PresoutenancePresoutenance
Presoutenance
 
PJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfPJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdf
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
 
0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler
0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler
0 a032g formation-modeles-predictifs-avec-ibm-spss-modeler
 
Etude comparative des classifieurs Naïve Bayes et SVM
Etude comparative des classifieurs Naïve Bayes et SVMEtude comparative des classifieurs Naïve Bayes et SVM
Etude comparative des classifieurs Naïve Bayes et SVM
 
Planification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésiennePlanification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésienne
 
L’apport des techniques statistiques dans les projets Lean 6 Sigma
L’apport des techniques statistiques dans les projets Lean 6 SigmaL’apport des techniques statistiques dans les projets Lean 6 Sigma
L’apport des techniques statistiques dans les projets Lean 6 Sigma
 
PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?PerfUG Comment tester et optimiser la performance d'un SI ?
PerfUG Comment tester et optimiser la performance d'un SI ?
 
Article: Qu'est-ce que le R&R?
Article: Qu'est-ce que le R&R?Article: Qu'est-ce que le R&R?
Article: Qu'est-ce que le R&R?
 

FLTauR - Construction de modèles de prévision sous r avec le package caret

  • 1. Construction de modèles de prévision sous R avec le package caret Groupe FLtauR - Vendredi 7 Mars 2014 Conseil en Management de l’Information Goulven Salic www.bluestone.fr 55 rue du Faubourg Montmartre – 75009 Paris +33 (0)1 53 25 02 10 contact@bluestone.fr
  • 2. Sommaire Introduction 1. Que fait caret? 2. Exemple « pratique »: scoring bancaire (données GermanCredit )     Traitements préliminaires Modèle 1: k-plus proches voisins Modèle 2: régression pls Modèle 3: forêt aléatoire 3. Fonctionnalités supplémentaires de caret Conclusion FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 2
  • 3. Introduction Comment créer un modèle de prévision performant ?  La création d’un modèle de prévision performant est un processus complexe   Erreur de prévision Fort biais, Faible variance Faible biais, Forte variance Echantillon à scorer De très nombreux de modèles de prévision sont disponibles dans R, avec chacun leurs spécificités d’utilisation Beaucoup de modèles de prévision présentent un risque de surapprentissage Echantillon d’apprentissage Complexité « optimale » au sens de la prévision Complexité du modèle (exemple: nombre de variables)  caret propose un cadre commun pour évaluer et comparer une centaine de modèles    Séparation apprentissage/test équilibrée Choix du modèle optimal par ré-échantillonnage Sélection de variables, pré-traitement, mesure de l’importance des variables a posteriori…  Avertissement: ce package n’a d’intérêt que pour des modèles avancés FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 3
  • 4. Introduction Dans quel contexte utiliser caret ?  Le package R caret (classification and regression training) est une boîte à outil qui uniformise et rationalise les différentes étapes du processus de création de modèle En entrée  Variable à prédire Y (ou à « scorer »): numérique (régression) : ex. consommation, revenu…  Catégorielle (classification): ex. solvabilité, survie à un naufrage…   Variables explicatives X   En sortie    Prévision de Y  Mesure de la performance du modèle retenu  Bonus: Choix du modèle (arbres, régression pls, SVM, LASSO, réseau de neurones,…) Choix des paramètres de ce modèle Potentiellement nombreuses De qualité variable (valeurs manquantes)   Importance des différentes variables …  En termes de données:  Base d’estimation: connaissance de X et Y  Base à « scorer »: connaissance de X uniquement Apprentissage Validation Test Base à scorer FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET Base enrichie 07/03/2014 4
  • 5. Introduction | Le choix d’un paramètre de complexité est une étape clé de la création d’un modèle  Exemple de modèle: k-plus proches voisins Principe: Prévision de Y = Moyenne des k plus proches voisins dans l’espace des X  Paramètre de complexité: k  Impact de l’évolution de ce paramètre:   Si k est petit (exemple k=1): le modèle est spécifique aux données d’apprentissage, il y’a un risque que le modèle soit mauvais sur un nouvel échantillon  Si k est grand (exemple k=10): le modèle renverra souvent la même valeur (faible variance) mais présentera un fort biais  Tout l’art est de trouver le bon compromis ? 3 plus proches voisins  Autre exemple (par analogie) : régression linéaire  k = nombre de variables de la régression FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 5
  • 6. Sommaire Introduction 1. Que fait caret? 2. Exemple « pratique »: scoring bancaire (données GermanCredit )     Traitements préliminaires Modèle 1: k-plus proches voisins Modèle 2: régression pls Modèle 3: forêt aléatoire 3. Fonctionnalités supplémentaires de caret Conclusion FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 6
  • 7. Que fait caret? | Fonctionnalité principale (fonction train) : estimation par ré-échantillonnage et validation croisée  L’intérêt principal de caret est d’automatiser le choix de modèle par validation croisée Algorithme de sélection de la version optimale d’un modèle   Plusieurs variantes de validation croisée existent (bootstrap, validation croisée simple…)  Ici: présentation de la validation croisée (dite k-fold) répétée   Dans la pratique, il s’agit aussi de choisir parmi plusieurs types de modèles  Une approche consiste à appliquer cette procédure sur plusieurs modèles candidats puis à retenir le meilleur    Définition par l’utilisateurs d’un ensemble de versions du modèle à tester Pour chacune de ces versions:  Pour chaque répétition de l’échantillonnage  Découpage de l’apprentissage en k morceaux de taille égale  k fois: sélection d’un des k morceaux, estimation du modèle sur les k-1 morceaux restants et prévision sur le morceau sélectionné  Fin des itérations  Calcul d’une erreur moyenne sur les k prévisions Fin du test de chaque version Choix de la version optimale en termes de prévision Estimation du modèle final sur l’ensemble des données pour application Algorithme de choix parmi plusieurs modèles    Définir une liste de modèles (pls, réseaux de neurones, knn…) Pour chaque modèle:  Découpage apprentissage/test (70%/30%)  Choix de la meilleure version sur l’échantillon d’apprentissage  Mesure de l’erreur sur l’échantillon de test Sélection du meilleur modèle FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 7
  • 8. Que fait caret? | Autre fonctionnalité importante: découpage apprentissage/test équilibré  Lors du découpage apprentissage/test, il est préférable d’avoir un échantillon d’apprentissage représentatif: caret reproduit dans l’échantillon d’apprentissage la même répartition des Y que dans l’ensemble de la population  caret permet également de reproduire une structure proche sur les variables explicatives X (différent d’un tirage stratifié, approche dite de dissimilarité maximale)   Autres fonctionnalités intéressantes: Pré-traitement: centrage et réduction, complétion de valeurs manquantes, transformation de Box-Cox  Sélection de variables a priori  Mesure de l’importance des variables d’un modèle a      posteriori Calcul parallèle Découpage apprentissage/test pour des séries temporelles Ajout de modèles et méthodes d’apprentissages personnalisés Mesure de performance a posteriori sur l’échantillon de test  En résumé: caret est une boîte à outil qui centralise les méthodes utiles du machine learning et donne un cadre commun pour le test de beaucoup de modèles FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 8
  • 9. Sommaire Introduction 1. Que fait caret? 2. Exemple « pratique »: scoring bancaire (données GermanCredit )     Traitements préliminaires Modèle 1: k-plus proches voisins Modèle 2: régression PLS Modèle 3: forêts aléatoires 3. Fonctionnalités supplémentaires de caret Conclusion FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 9
  • 10. Exemple « pratique »:  Description du jeu de données:  Code Jeu de donnée GermanCredit présent dans le package:  1 000 observations  61 variables explicatives (variables catégorielles recodées en plusieurs variables binaires)  Variable cible: « Bon » ou « Mauvais » payeur  Découpage et choix de l’approche de validation croisée: Découpage: 70% d’apprentissage équilibré sur le classe de payeur  Méthode d’apprentissage: 10 répétitions de validation croisée sur 1/10 des données  library( caret) # Donnees data( GermanCredit) # Découpage apprentissage test inTrain <- createDataPartition( y = GermanCredit$Class, p = 0.70, list = F) # Echantillons d'apprentissage et de test training <- GermanCredit[ inTrain, ] test <- GermanCredit[ -inTrain, ] # Creation de l’objet de controle de la method de validation # croisée cvCtrl <- trainControl( method = "repeatedcv", number = 10, repeats = 10) FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 10
  • 11. Exemples library(caret) | 1- k plus proches voisins Code knnGrid <- data.frame( .k = 1:150)  Description brève du modèle: knnFit <- train( Class ~ ., data = training, method = "knn", tuneGrid = knnGrid, trControl = cvCtrl) plot( knnFit) Prévision de Y = moyenne des k voisins dans l’espace des X  Paramètre de complexité: nombre de voisins k  # Mesure finale du taux de bien classés sur l'échantillon de test prevKnn <- predict( knnFit, newdata = test) tauxBienClasses <- sum( prevKnn == test$Class)/length( prevKnn ) 3 plus proches voisins # tauxBienClasses = 0.71 ? Paramètres de complexité (ou versions du modèle) testés Console Accuracy (Repeated Cross-Validation) 0.70 700 samples 61 predictors 2 classes: 'Bad', 'Good‘ k 1 2 3 No pre-processing 4 Resampling: Cross-Validation (10 fold, repeated 5 10 times) 6 0.68 0.66 0.64 0.62 Summary of sample sizes: 630, 630, 630, 630, 630, 630, ... 0.60 Resampling results across tuning parameters: 0 50 100 150 Accuracy Kappa 0.618 0.0866 0.603 0.0599 0.633 0.0792 0.637 0.0936 0.658 0.102 0.652 0.083 Accuracy SD Kappa SD 0.0502 0.107 0.0587 0.126 0.051 0.109 0.0506 0.108 0.0458 0.0987 0.0433 0.105 ... Accuracy was used to select the optimal model using the largest value. The final value used for the model was k = 70. #Neighbors FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 11
  • 12. Exemples library(caret) | 2- Régression pls plsGrid = data.frame( .ncomp = 1:30)  Description brève du modèle:   Code plsFit <- train( Class ~ ., data = training, method = "pls", tuneGrid = plsGrid, trControl = cvCtrl) plot( plsFit) plsFit Régression sur les composante principales de X avec prise en compte de la corrélation avec Y Paramètre de complexité: nombre de composantes pls (au maximum égal nombre de variables) # Mesure finale du taux de bien classés sur l'échantillon de test prevPls <- predict( plsFit, newdata = test) tauxBienClasses <- sum( prevPls == test$Class)/length( prevPls) # tauxBienClasses = 0.7366667 Accuracy (Repeated Cross-Validation) Paramètres de complexité (ou versions du modèle) testés Console 700 samples 61 predictors 2 classes: 'Bad', 'Good' 0.76 2 3 4 5 6 No pre-processing 7 Resampling: Cross-Validation (10 fold, repeated 8 10 times) 9 10 0.74 0.72 Summary of sample sizes: 630, 630, 630, 630, 630, 630, ... 0.70 0 5 10 15 #Components 20 25 30 0.701 0.707 0.77 0.761 0.756 0.76 0.763 0.761 0.762 0.0748 0.0245 0.0783 0.105 0.0305 0.0968 0.402 0.0461 0.127 0.391 0.0423 0.114 0.381 0.0425 0.115 0.396 0.0446 0.116 0.401 0.0422 0.112 0.395 0.0401 0.104 0.397 0.0394 0.102 … ncomp Accuracy Kappa Accuracy SD Kappa Accuracy was used to select the optimal model using the largest value. SD The final value used for the model was ncomp = 4. 1 0.707 0.0693 0.0202 0.0672 FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 12
  • 13. Exemples Code | 3- Forêt aléatoire rfFit <- train( Class ~ ., data = training, method = "rf", tuneLength = 20, trControl=trainControl( method = "repeatedcv", number = 5, repeats = 5)) rfFit plot( rfFit)  Description brève du modèle:   Construction de plusieurs arbres de décision qui à chaque nœuds utilisent un nombre aléatoire de variables explicatives puis moyenne des arbres obtenus pour la prévision Paramètre de complexité: nombre de variables explicatives tirées aléatoirement à chaque étape # Mesure finale du taux de bien classés sur l'échantillon de test prevRf = predict( rfFit, newdata = test) tauxBienClasses = sum( prevRf == test$Class)/length( prevRf) tauxBienClasses # tauxBienClasses = 0.77 Paramètres de complexité (ou versions du modèle) testés Console Accuracy (Repeated Cross-Validation) 0.75 61 predictors 2 classes: 'Bad', 'Good' 0.74 0.73 0.72 0 10 20 30 40 #Randomly Selected Predictors 50 60 5 0.746 0.284 0.0267 0.0833 8 0.745 0.302 0.0262 0.0758 11 0.746 0.315 0.0317 0.0924 No pre-processing 14 0.743 0.316 0.0311 0.0899 Resampling: Cross-Validation (5 fold, repeated 5 17 0.75 0.337 0.0311 0.0888 times) 20 0.747 0.329 0.031 0.092 … Summary of sample sizes: 560, 560, 560, 560, 560, 560, ... Accuracy was used to select the optimal model using the largest value. Resampling results across tuning parameters: The final value used for the model was mtry = 17. mtry Accuracy Kappa Accuracy SD Kappa SD 2 0.717 0.0782 0.0122 0.0539 FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 13
  • 14. Sommaire Introduction 1. Que fait caret? 2. Exemple « pratique »: scoring bancaire (données GermanCredit )     Traitements préliminaires Modèle 1: k-plus proches voisins Modèle 2: régression pls Modèle 3: forêt aléatoire 3. Fonctionnalités supplémentaires de caret Conclusion FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 14
  • 15. Fonctionnalités supplémentaires | Pré-traitement library(caret)  Un pré-traitement est parfois nécessaire pour: # 1- Pré-traitement en amont preProcValues <- preProcess( training[,!( colnames( training) == "Class")], method = c( "center", "scale")) Enrichir les données (présence de valeurs manquantes)  Transformer les données pour les besoins d’un type particulier de modèles (données centrées-réduites pour les réseaux de neurones, transformation de Box-Cox pour « normaliser » les variables explicatives   caret permet ce genre de traitements selon deux modes: Code # Autres méthodes: "knnImpute", "bagImpute", # "BoxCox", "YeoJohnson" ... trainTransformedDesc <- predict(preProcValues,training) # 2- Pré-traitement pendant l'estimation du modèle plsFit2 <- train( Class ~ ., data = training, preProcess = c("center", "scale"), method = "pls", tuneLength = 10, trControl = cvCtrl) # Autres pré-traitements possibles en amont: recodage # des variables catégorilles en variables binaires #(recodage de plein rang) En amont du modèle (modification des données d’apprentissage)  Au moment de l’estimation du modèle  FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 15
  • 16. Fonctionnalités supplémentaires | Importance des variables Code  caret permet également de mesurer après estimation du modèle les variables les plus influentes:   Les métriques spécifiques à chaque modèles sont mises en œuvre Le résultat est normalisé sur une échelle de 1 à 100 comparable d’un modèle à l ’autre. # Importance des variables du modèle pls varImp(plsFit) # Importance des variables du modèle knn varImp(knnFit) Console Console  Le package permet également d’effectuer une sélection de variable a priori   Basé sur des tirages aléatoires de groupes de variables N’est applicable qu’à certains modèles (par exemple, le modèle LASSO consiste en tant que tel en une sélection de variables) FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 16
  • 17. Fonctionnalités supplémentaires | Calcul parallèle, séries temporelles  caret permet d’accélérer les procédures de ré-échantillonnage en parallélisant les tâches   Les différents échantillons tirés étant indépendants, la parallélisation ne pose pas de problème théorique Utilisation du package doParallel (marche également avec doMC ou doMPI selon la plateforme)  Possibilité de faire du ré-échantilonnage sur des données temporelles    Un re-échantillonnage classique n’est pas adapté à des données temporelles Possibilité d’effectuer différents découpages où l’échantillon d’apprentissage est situé chronologiquement avant l’échantillon de test Remarque : pour l’instant, pas de prise en charge des modèles de séries temporelles univariés classiques (ARIMA, ARCH, …) Code library(doParallel) nbCores <- 2 cl <- makeCluster( nbCores) registerDoParallel(cl) plsFit <- train( Class ~ ., data = training, allowParallel = T, method = "pls", tuneLength = 25) stopCluster(cl) Code data(economics) myTimeControl <- trainControl(method="timeslice", initialWindow=36, horizon=12, fixedWindow=TRUE ) plsFitTime <- train( unemploy~pce+pop+psavert , data=economics, method="pls", preProc= c("center", "scale"), trControl=myTimeControl ) FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 17
  • 18. Sommaire Introduction 1. Que fait caret? 2. Exemple « pratique »: scoring bancaire (données GermanCredit )     Traitements préliminaires Modèle 1: k-plus proches voisins Modèle 2: régression pls Modèle 3: forêt aléatoire 3. Fonctionnalités supplémentaires de caret Conclusion FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 18
  • 19. Conclusion | Avantages et inconvénients du package caret  Inconvénients:  Avantages:    Applicable à presque toutes les méthodes existant en machine learning Ecriture simple des différents processus de sélection de modèles Package régulièrement maintenu et faisant l’objet d’une attention croissante dans la communauté R (useR! 2013)   Débuggage : dépend du package du modèle que l’on cherche à estimer (qualité variable selon les modèles, les méthodes principales sont néanmoins fiables) Temps de calcul (cela est propre à toute approche de rééchantillonnage)  Pour aller plus loin:      http://caret.r-forge.r-project.org/ http://cran.r-project.org/web/packages/caret/vignettes/caret.pdf www.jstatsoft.org/v28/i05/paper http://appliedpredictivemodeling.com/ http://www.stanford.edu/~hastie/local.ftp/Springer/OLD//ESLII_print4.pdf FLTAUR – MODÈLES DE PRÉVISION SOUS R AVEC LE PACKAGE CARET 07/03/2014 19