Prédiction et analyse complètes du taux de désabonnement – Mandy Gu
Nous allons former notre modèle de désabonnement au cours de la Ensemble de données Telco-Client-Churn pour prédire la probabilité que les clients quittent la fictive entreprise de télécommunications Telco. Cet ensemble de données synthétique a été mis en place par IBM et comprend une étiquette indiquant si le client est parti ou non au cours du dernier mois.
Objectif: prédire si un client résiliera en fonction de ses informations démographiques et de service.
L’exploration et la modélisation seront effectuées à l’aide d’un cahier Jupyter. Nous commençons par charger les bibliothèques requises et importer les données en tant que DataFrame.
L’indexation de la première ligne nous montre les colonnes et un exemple d’enregistrement de notre ensemble de données.
Inspection de l’ensemble de données
Cet ensemble de données est assez propre sans aucune entrée manquante. Il y a un total de 7043 observations. Environ 27% des clients se sont désabonnés (ce n’est pas bon signe pour Telco).
Nous pouvons utiliser le info(), describe()
méthodes de pandas pour un aperçu rapide de l’intégrité des données. Le jeu de données ne contient aucune valeur manquante. Bien que les pandas aient interprété SeniorCitizen
en tant que variable continue, il s’agit en fait d’un indicateur binaire.
Variables continues
Nous pouvons utiliser la bibliothèque seaborn pour visualiser et inspecter davantage l’ensemble de données. Examinons les variables continues tenure, MonthlyCharges
première. Depuis TotalCharges
peut être approchée en fonction de ces deux variables, nous l’exclurons du tracé.
Seaborn’s pairplot la fonctionnalité trace les relations par paire dans les données.
Interprétation du tracé Pair:
- l’axe diagonal est l’histogramme de la variable particulière avec l’axe y mesurant le nombre d’occurrences
- le triangle inférieur gauche des tracés et le triangle supérieur droit capturent les mêmes informations, sauf que les axes sont inversés
Les histogrammes nous indiquent que la distribution de la tenure des clients barattés reste asymétrique tandis que la même distribution pour les clients barattés est plus uniforme. Cela montre également que les clients MonthlyCharges
voir un taux de désabonnement plus élevé.
Les deux autres graphiques capturent des informations très similaires avec un fossé distinct entre le baratte orange et le bleu non baratté.
Ensuite, nous utilisons des boîtes à moustaches pour illustrer les différences quantiles entre les clients qui ont baratté et ceux qui ne l’ont pas fait.
La première boîte à moustaches compare les quantiles de tenure entre les deux groupes. La durée médiane pour les clients barattés est beaucoup plus courte que pour les clients non barattés. 75% des clients qui finissent par quitter Telco le font au cours de leurs 30 premiers mois. Il y a quelques valeurs aberrantes qui se sont produites après avoir été avec Telco pendant 70 mois.
Le deuxième diagramme à boîte compare les frais mensuels et le taux de désabonnement. Les frais mensuels médians des clients désabonnés sont nettement plus élevés que ceux qui ne l’ont pas fait. Cela suggère que les remises et promotions peuvent être une raison attrayante pour les clients de rester.
Variables démographiques
Ensuite, nous pouvons examiner les variables catégorielles, en commençant par les variables démographiques: sexe, SeniorCitizen, Partner et Dependents.
- Le graphique en haut à gauche compte l’intersection entre le sexe et le taux de désabonnement. Il y a très peu de différence dans les proportions de désabonnement entre les clients masculins et féminins.
- Le taux de désabonnement est plus élevé
SeniorCitizen
(graphique en haut à droite), les clients sansPartners
(graphique en bas à gauche) et les clients sansdependents
(tableau en bas à droite).
La seconde constatation pourrait intéresser les acteurs économiques. Les personnes non âgées sans partenaire ni personne à charge décrivent une intersection particulière de clients. Au lieu d’autres indicateurs, un taux de désabonnement moins fréquent dans cette catégorie démographique parle positivement de leur valeur à vie.
Autres variables catégoriques
Les autres variables catégorielles peuvent être réparties entre les informations de service et de facturation.
Ces graphiques capturent les variables de service. Le taux de désabonnement est plus élevé chez les clients sans OnlineSecurity, OnlineBackup, DeviceProtection et TechSupport. Sur la base de mes connaissances assez limitées sur les services de télécommunications, je ne pense pas que la plupart des gens paient fréquemment pour ces services. Cela suggère que ceux qui ont une fiabilité accrue sur les services de Telco, ou ceux qui ont besoin de leur appareil pour des utilisations particulières, ont tendance à moins produire.
Ensuite, nous examinons l’intersection entre la méthode de facturation et le taux de désabonnement. Le graphique en haut à gauche compare le taux de désabonnement d’un type de contrat à l’autre. Sans surprise, ceux qui ont des plans plus courts (d’un mois à l’autre) voient un taux de désabonnement plus élevé. Ceux qui ont des plans plus longs font face à des obstacles supplémentaires lorsqu’ils annulent prématurément.
Étonnamment, ceux qui choisissent de se retirer de PaperlessBilling sont plus fréquemment désabonnés ainsi que ceux qui paient par chèque électronique. Certains de ces comportements peuvent être confondus avec d’autres variables (par exemple, les clients plus âgés peuvent avoir une préférence pour les factures papier).
Voici les bibliothèques que nous allons utiliser pour construire notre modèle. J’utilise un nouveau bloc-notes, je vais donc charger à nouveau les données.
dans le TotalCharges
colonne, 11 enregistrements sont une chaîne vide. Tous ces enregistrements ont une valeur valide MonthlyCharges
valeur, mais une durée de 0. Nous pouvons imputer ces valeurs en utilisant 0.
Préparation des données pour la modélisation
Premièrement, nous un codons à chaud les variables catégorielles et partitionnons au hasard les données entre la formation et les tests. Après avoir partitionné l’ensemble de données, nous ne touchons pas l’ensemble de test, sauf à des fins d’évaluation.
Sélection de fonctionnalité
L’exploration antérieure a déjà donné beaucoup d’informations sur les fonctionnalités importantes. Nous pouvons l’utiliser en conjonction avec un test du chi carré pour prendre une décision plus éclairée.
Remarque: le test du chi carré ne peut être utilisé que pour évaluer des variables catégorielles.
Nous devrons comprendre les valeurs de p pour interpréter la sortie du chi carré.
La valeur P indique le% d’observations plus «extrêmes» si l’hypothèse nulle est vraie et si nous répétons plusieurs fois la même expérience. L’hypothèse nulle ici est que la fonction n’a aucun effet sur la cible (c’est-à-dire que nous ne devons pas l’utiliser comme prédicteur). Des valeurs de p faibles suggèrent que nous devrions rejeter notre hypothèse nulle – en d’autres termes, rejeter l’affirmation selon laquelle la caractéristique n’a aucun effet.
Les valeurs de p pour la plupart des fonctionnalités sont très faibles. Seulement gender, MultipleLines, PhoneService
ont des valeurs de p> 0,05, ce qui signifie que nous n’avons pas suffisamment de preuves pour rejeter l’affirmation selon laquelle ces caractéristiques n’ont aucun effet. Ceci est bien aligné avec l’histoire des graphiques.
Pour un meilleur visuel, traçons toutes les variables catégorielles avec une valeur de p> 0,05.
Nous laisserons également tomber le TotalCharges
puisque la même information est capturée par MonthlyCharges, Tenure
pour réduire davantage la dimensionnalité (les deux autres colonnes semblent être plus fiables que celle-ci, qui avait des problèmes de données).
Formation de modèle
Nous utiliserons un modèle de régression logistique pour prédire le taux de désabonnement. Ce n’est peut-être pas nécessairement l’algorithme le plus performant ou l’algorithme qui sépare le mieux les données (la seule façon de le savoir est d’essayer), mais supposons qu’il est assez bien pour simplifier. Un avantage supplémentaire de la régression logistique est la facilité d’interprétation.
Nous pouvons tirer parti de la GridSearchCV
fonction de Sklearn pour le réglage hyperparamétrique. . Puisque nous ne voulons pas toucher à notre ensemble de test jusqu’à la fin, nous allons diviser davantage notre ensemble de formation en formation et validation.
Nous utiliserons la recherche par grille pour déterminer les valeurs optimales de ces hyperparamètres: – si nous devons utiliser une pénalité L1 ou L2 – la valeur C – si nous devons ajuster une interception – le poids de la classe (si nous devons mettre davantage l’accent sur la classe Churn comme opposé à la classe non-Churn).
Sous le capot, GridSearchCV formera et évaluera de nombreux modèles par rapport à l’ensemble de validation pour déterminer quels hyperparamètres donnent les meilleures performances.
Remarque: alors que je ne l’ai pas fait ici, GridSearchCV
peut être utilisé pour tester des algorithmes candidats.
Pour obtenir les meilleures valeurs d’hyperparamètre:
Avec ces informations, nous pouvons formellement former notre modèle. Nous formerons le modèle sur l’ensemble de formation et de validation combiné.
Évaluation du modèle
Testons le modèle par rapport à notre ensemble de tests. Le rapport de classification donne la précision, le rappel et le score f1 (le support est le nombre d’observations dans chaque classe). Le micro-score f1 est de 0,81 tandis que le macro-score f1 est de 0,74.
Nous pouvons visualiser ce résultat en utilisant une matrice de confusion.