predict if a customer will remain faithful with a large telephone company in the north America or he will leave it based on some predictive models such as logistic regression, support vector machines, neural networks and decision trees.
1. Techniques d’exploitation de données
(Data Mining)
Projet 2
Professor : François Bellavance
Abdolrasoul Baharifard
(Étudiant de l’université Laval)
Hiver 2015
2. Table of Contents
Motivation:...............................................................................................................................................................3
Description de la base de données:................................................................................................................3
Objectifs:...................................................................................................................................................................3
Préparation des données :.................................................................................................................................4
Modélisation :.........................................................................................................................................................4
1-Arbre de décision.........................................................................................................................................4
2-Méthodes d’ensembles...............................................................................................................................5
3-Réseaux de neurones..................................................................................................................................6
Évaluation:...............................................................................................................................................................7
Déploiement :..........................................................................................................................................................8
Annexes.....................................................................................................................................................................9
Annexe 1 : Table de préparation des données......................................................................................9
Annexe 2: Table de les valeurs de 24 arbres pour choisi les meilleur 8 arbre...................... 10
Annexe 3 : modèle d’arbre de décision................................................................................................. 11
Annexe 4 : Sensitivité et Spécificité pour le modèle « arbre de décision 2» ......................... 11
Annexe 5 : Les méthodes d’ensembles.................................................................................................. 12
Annexe 6 : Sensitivité et Spécificité pour le modèle « Gradient Boosting » .......................... 12
Annexe 7 : Les réseaux de neurones...................................................................................................... 13
Annexe 8 : Sensitivité et Spécificité pour le modèle « réseau de neurone» .......................... 13
Annexe 9 : Comparer les trois meilleures modèles.......................................................................... 14
3. Motivation:
Le but de ce projet est de prédire sous la base des modèles d’apprentissage
supervisés si un client restera fidèle avec une grande compagnie téléphonique
mobile en Amérique du nord ou il la quittera.
Description de la base de données:
Dans ce travail, on se servira des données d’une grande compagnie
téléphonique mobile en Amérique du nord contenant 50 000 observations sur
173 variables. Il y a trois types de variables explicatives dans la base de
données: variables de comportement comme le nombre de minutes utilisées, le
type d’équipement; interaction avec la compagnie comme les appels au service
à la clientèle; et des données démographiques.
Objectifs:
Nous allons donc utiliser les outils statistiques comme les arbres de
classification, les méthodes d’ensemble et les réseaux de neurones sur le fichier
de données «churn» et parmi elles, nous choisirons celle qui présente le
meilleur modèle selon le taux de bonne classification, la sensitivité et la
spécificité. La variable cible est appelée « churn » dans ce fichier de données.
De plus, nous diviserons notre base de données en deux parties, un échantillon
d’apprentissage (60%) et un échantillon de validation (40%) sur lequel nous
testerons nos modèles. Ensuite, nous allons évaluer la performance de notre
meilleur modèle avec le fichier « churn_test » qui contient également 50 000
observations.
4. Préparation des données :
Premièrement nous allons nettoyer le jeu de données « churn » et nous allons
effectuer la même tâche pour le jeu de données « churn_test » également. En
effet, certaines variables possèdent des valeurs manquantes par manque
d'informations ou pour une raison inconnue et d’autres peuvent être
corrigéesen analysant un peu plus la signification de la valeur manquante. Nous
allons donc faire la distinction entre ces types de valeurs manquantes et nous
allons supprimer toutes les variables ayant plus de 65% de valeurs manquantes
et transformer toutes les variables pour lesquelles la valeur est tout
simplement non disponible dans une nouvelle catégorie. Nous avons bien
séparé ces types de variables dans l’annexe 1.
Modélisation :
1-Arbre de décision
Tout d’abord on ajuste le modèle d’arbres de décision sur les données
nettoyées dans la partie précédente. Les critères que nous avons considérés
sont les suivants :
Critères de sélection possible pour la variable cible:
• P-value associée au test du khi-deux
• Entropie
• Gini
Seuil de significativité:
• 0.2
• 0.5
Profondeur maximale:
• 10
• 20
Taille des feuilles:
• 25
• 50
5. Nous commencerons la procédure en fixant le seuil de la significativité à 0.2, la
profondeur maximale à 10 et la taille des feuilles à 25. On fait compiler le
modèle trois fois en utilisant les trois critères de sélection possibles cités plus
haut pour la variable cible. A chaque fois on note le taux de mauvaise
classification du jeu d’entrainement, le taux de mauvaise classification du jeu
de la validation, la spécificité, la sensitivité et le taux de bonne classification.
En comparant les paramètres des trois critères de sélection possibles pour la
variable cible, nous allons choisir le meilleur arbre à chaque exécution et nous
le mettons dans l’environnement SAS EM. A l’étape suivante, nous changeons
la profondeur maximale à 20 et on note également les valeurs des paramètres
mentionnés dans l’étape précédente (i.e. pour une profondeur de 10) pour les
trois critères de sélection possibles pour la variable cible et nous choisirons le
meilleur modèle. Nous allons continuer cette procédure lorsque nous aurons
testé tous les cas possibles des paramètres.
Les valeurs pour tous les cas possibles sont notées en Annexes 2. Nous
obtenons 8 meilleurs arbres et nous allons comparer leurs valeurs avec le nœud
«model comparaison» fourni avec SAS EM (Annexe 3).
Le tableau suivant présente le meilleur résultat avec les différents paramètres
ajustés :
Critère de
sélection
pour variable
Seuil de
signific
ativté
Profon
deur
maxi
male
Taille des
feuilles
Train:
Taux de
mauv
aise
classificatio
n
Valid
ation:
taux de
mauv
aise
classificatio
n
Spécific
ité
Sensitivi
té
Taux de
bonne
classific
ation
Valid:
ROC
index
Train:
ROC
index
Gini .2 20 25 33.64% 37.81% 60.96% 63.41% 62.17% .72 .639
2-Méthodes d’ensembles
Le « Bagging » consiste en la création d’un ensemble de modèles utilisant le
même algorithme sur différents sous ensemble de données génèrés avec
6. échantillonnage aléatoire simple de taille n avec remise à partir de l’échantillon
« bootsrap ».
De même, « Boosting » procède de façon séquentielle en sur-échantillonnant
les observations mal classifiées par les modèles précédents. Nous allons tester
des générations de 25, 50 et 100 échantillons pour Bagging et 10, 20 et 50 pour
Boosting avec le meilleur arbre que nous avons obtenu ci haut.
De plus, nous testerons des «forêts aléatoires» et un «gradient boosting». Nous
avons fait le gradient boosting avec N=1000, shrinkage=0.05, train=80% et la
profondeur maximale=20. Vous pouvez voir quelques méthodes d’ensembles
utilisées en Annexe 5.
En comparant ces modèles avec le nœud «model comparaison». Nous avons
obtenu le meilleur résultat avec le modèle «gradient boosting». La table ci-
dessous montre le meilleur résultat obtenu :
Nom de
modèle
Train:
Taux de
mauvaise
classification
Validation:
taux de
mauvaise
classification
Spécificité Sensitivité Taux de
bonne
classification
Valid:
ROC
index
Train:
ROC
index
Gradient
Boosting
32.80% 36.63% 62.40% 64.35% 63.36% .736 .682
3-Réseaux de neurones
Les réseaux de neurones sont des outils statistiques permettant de détecter
des relations non linéaires complexes dans des données. L’algorithme le plus
largement répandu dans la pratique est la rétro-propagation du gradient qui
consiste à suivre la ligne de plus grande pente de la surface d’erreur, qui doit
logiquement conduire à un minimum. En effet, le principe de l'algorithme est
de remonter couche par couche, des neurones de sortie vers les neurones
d'entrées et de modifier les poids synaptiques en amont de chaque couche, de
manière à diminuer l'erreur commise en sortie.
7. En raison d’améliorer la rapidité de l’apprentissage du réseau et diminuer les
variables explicatives qui ne discriminent pas beaucoup la variable cible, et
aussi afin d’éviter le sur-apprentissage, nous ajoutons le nœud de régression
avec une régression logistique pas à pas de type stepwise avant le nœud réseau
de neurone et nous les exécutons avec 2,3, 5 et 6 et 7 neurones.
De plus, nous ajoutons le nœud de sélection de variables mais aussi un nœud
de l’arbre avec les paramètres du meilleur arbre que nous avons obtenu ci-haut
avant le nœud réseau de neurone. Nous avons utilisé un nœud de neurones
automatiques pour avoir une idée du nombre de neurones optimal aussi (n=2)
(Annexe 7).
La table suivante montre le meilleur résultat que nous avons obtenu avec le
nœud comparaison de modèle.
Nom de
modèle
Train:
Taux de
mauvaise
classification
Validation:
taux de
mauvaise
classification
Spécificité Sensitivité Taux de
bonne
classification
Valid:
ROC
index
Train:
ROC
index
Réseau de
neurone
avec n=6
38.04% 38.72% 62.47% 60.05% 61.26% .672 .655
Évaluation:
Maintenant on crée un diagramme dans SAS EM pour comparer les trois
meilleurs modèles que nous avons obtenus dans la partie précédente (Annexe
9). Donc, nous somme arrivé au modèle «Gradient boosting» avec les
paramètres N=1000, shrinkage=.05, train=80% et la profondeur maximale 20.
8. Déploiement :
Finalement nous allons prédire les 50 000 clients sur le fichier churn_test pour
lesquels ils resteront avec la compagnie ou ils la quitteront en utilisant le
meilleur modèle que nous avons obtenu dans la partie précédente. Nous
remarquons d’après les prédictions contenues dans le tableau suivant que ceux
qui veulent rester avec la compagnie sont plus nombreux que ceux qui veulent
la quitter.
Prédiction pour CHURN
Classification EM fréquence Pourcentage
0 23213 46.426%
1 26787 53.574%
9. Annexes
Annexe 1 : Table de préparation des données
Variables à supprimer Variables à transformer
KID3_5 INFOBASE
KID16_17 MAILFLAG
proptype MTRCYCLE
KID11_15 MARITAL
RMMOU CSA
wrkwoman CREDITCD
RETDAYS INCOME
KID0_2 PRIZM_SOCIAL_ONE
crtcount FORGNTVL
educ1 RV
occu1 CAR_BUY
children DWLLSIZE
cartype DWLLTYPE
Mailresp HHSTATIN
KID6_10 MAILORDR
RMREV SOLFLAG
div_type REF_QTY
pcowner OWNRENT
RMCALLS NUMBCARS
AREA
TRUCK
ETHNIC
TOT_RET