Presentation
Le RNA utilisé ici est de type feedforward entraîné avec l'algorithme de rétro-propagation classique (Rumalhart et McCleelland, 1986). « On peut considérer les réseaux de neurones feedforward comme des modèles de régression non-linéaires dont la complexité peut être changée » (Bentz et Merunka, 2000, p.183).
Le modèle final de RNA comportait sept variables RFM dans la couche d'entrée, un neurone dans la couche de sortie et quatre neurones dans la couche cachée. Une couche cachée est suffisante pour capter les non-linéarités qui peuvent se trouver dans des problèmes de ciblage de ce type. Pour rendre cette étude comparable avec d'autres études utilisant le même type de variables RFM, le nombre de neurones dans la couche cachée a été fixé à quatre. Cela semble suffire et permet d'éviter des risques de sur-calibrage (overfitting) qui ont un effet négatif sur le pouvoir de généralisation et implicitement sur le pouvoir prédictif du RNA. Plusieurs essais avec un plus grand nombre de neurones ont été réalisés mais les résultats sur la qualité de l'ajustement aux données ne se sont pas améliorés de manière significative. Le nombre de poids à estimer dans une telle architecture est égale à : [ (1 + Nombre d'entrées)*Nombre de neurones cachés] + [(1 + Nombre de neurones cachés)*Nombre de sorties], c'est-à-dire (1+7)*4 + (1+4)*1=37.
Ces poids sont initialisés aléatoirement dans l'intervalle (-0.1,0.1). Le processus d'entraînement s'arrête après un nombre d'époques fixées ici à 500, ou avant si le niveau de précision est atteint.
(!! En parallèle un autre modèle RNA, qualifié de multiple est obtenu en entraînant successivement et sur les mêmes données dix modèles RNA pour retenir le meilleur. Le nombre d'époques est fixé dans ce cas à 200. Les deux modèles sont complémentaires car le deuxième en reprenant l'entraînement plusieurs fois avec des poids qui s'initialisent avec de valeurs différentes permet d'éviter certains optimums locaux) .
La standardisation des variables en entrée améliore la stabilité du processus d'entraînement, car le réseau n'est pas obligé d'opérer avec des poids qui ont des ordres de grandeur différents.
Listing 5
- # Neural networks (Multilayer perceptron)
- library(nnet)
- dt<-brabant[samp,]
- attach(dt)
- formula<-if_cde97 ~ r6 + rr6 + f6m + m6m + mm6m + caa96 + cda96
- rfm.nn<-nnet(formula, size = 4, rang = 0.1, decay=0.1, maxit=500)
- dt<-brabant[-samp,]
- attach(dt)
- predictv<-(predict(rfm.nn, newdata=dt))[,1]
- names(predictv)<-1:length(predictv)
- gc<-gainchart(predictv,if_cde97)
- par(mfrow=c(2,2))
- plot_gaincharts(gc)
Analyse:
La formule qui exprime la relation entre l'incidence de l'achat (if_cde97) et les variables rfm est utilisé pour entrainer le réseau de neurones de type backpropagation multylayer perceptrion et pour définir le nombre de neurones dans la couche d'entrée (7+1) et dans la couche de sortie (1). La taille de la couche caché (4 neurones) et le nombre d'iteration maximum sont spécifiés avec la procédure .
Pour verifier les performances predictives et economiques du réseau entrainé sur deux tiers des clients on effectue les calculs prédictifs sur le tiers complémentair et on calcule le tableau des gains (gainchart).