Successfully reported this slideshow.
Upcoming SlideShare
×

Analyzing a churn data set

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.

• Full Name
Comment goes here.

Are you sure you want to Yes No

• Be the first to like this

Analyzing a churn data set

1. 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. 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. 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. 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. 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. 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. 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. 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. 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
10. 10. Annexe 2: Table de les valeurs de 24 arbres pour choisi les meilleur 8 arbre Critère de sélec tion pour variable Seuil de signifi cativité Profon deur maxi male Taille des feuilles Train: Taux de mauv aise classifi c ation Valid ation: taux de mauv aise classific ation Spécifi cité Sensitivité % obs bien classées Gini .2 10 25 36.28% 38.73% 60.11% 62.43% 61.25% Entropie .2 10 25 36.16% 38.86% 61.48% 60.80% 61.13% chi2 .2 10 25 37.91% 39.16% 65.21% 56.37% 60.82% Gini .2 20 25 33.64% 37.81% 60.96% 63.41% 62.17% Entropie .2 20 25 33.57% 37.88% 61.18% 63.04% 62.09% chi2 .2 20 25 37.91% 39.16% 65.21% 56.37% 60.82% Gini .2 10 50 37.30% 39.01% 57.37% 64.65% 60.97% Entropie .2 10 50 37.04% 39.01% 61.81% 60.20% 60.97% chi2 .2 10 50 38.04% 39.22% 60.72% 60.83% 60.76% Gini .2 20 50 35.11% 38.27% 59.63% 63.84% 61.71% Entropie .2 20 50 35.42% 38.82% 59.82% 63.75% 61.77% chi2 .2 20 50 38.04% 39.22% 62.93% 58.58% 60.76% Gini .5 10 25 36.28% 38.73% 60.11% 62.43% 61.25% Entropie .5 10 25 36.16% 38.85% 61.48% 60.80% 61.13% chi2 .5 10 25 37.49% 39.03% 63.00% 58.88% 60.95% Gini .5 20 25 33.64% 37.81% 60.96% 63.41% 62.17% Entropie .5 20 25 33.57% 37.88% 61.18% 63.04% 62.09% chi2 .5 20 25 37.49% 39.38% 63.00% 58.88% 60.95% Gini .5 10 50 37.30% 39.01% 57.37% 64.65% 60.97% Entropie .5 10 50 37.04% 39.01% 59.20% 62.78% 60.97% chi2 .5 10 50 37.78% 39.16% 62.15% 59.48% 60.82% Gini .5 20 50 35.11% 38.27% 59.63% 63.84% 61.71% Entropie .5 20 50 35.42% 38.22% 39.82% 63.75% 61.77% chi2 .5 20 50 37.78% 39.16% 62.15% 59.48% 60.82%
11. 11. Annexe 3 : Modèle d’arbre de décision Annexe 4 : Sensitivité et Spécificité pour le modèle « arbre de décision 2»
12. 12. Annexe 5 : Les méthodes d’ensembles Annexe 6 : Sensitivité et Spécificité pour le modèle «gradient boosting»
13. 13. Annexe 7 : Les réseaux de neurones Annexe 8 : Sensitivité et Spécificité pour le modèle « réseau de neurone»
14. 14. Annexe 9 : Comparer les trois meilleures modèles