Analyse de l’ensemble de données de désabonnement des clients des compagnies de téléphone
Ok! Faisons ça..
J’ai donc préparé cette histoire pour me familiariser un peu plus avec les données de déséquilibre.
L’ensemble de données est disponible dans le lien suivant :
Alors plongeons-y directement.
L’objectif final sera d’évaluer différents modèles pour prédire si un client va “Churn” ou non.
Pour ne connaît pas le taux de désabonnement est le plus souvent exprimé comme le pourcentage (ou le nombre) d’abonnés au service qui interrompent leurs abonnements au cours d’une période donnée.
Commençons par faire notre EDA (Analyse Exploratoire des Données)
Les types de données semblaient être corrects, à l’exception des personnes âgées qui devraient également être un facteur. (Dans le doute, vérifiez le lien de l’ensemble de données et sa bibliothèque)
Visualisons le résumé de l’ensemble de données
Il y a des NAN dans la colonne TotalCharges, nous allons donc creuser un peu plus loin sur ces lignes
Étant donné que le nombre de lignes avec des valeurs NaN est très faible (1,5% des données), et en tenant compte du fait que tous les ils sont churn=”NO”, qui est surreprésenté dans les données. Nous allons simplement supprimer ces lignes des données de travail
Voyons les diagrammes à barres pour la distribution des colonnes catégorielles
Maintenant, tracons pour la variable dépendante
Comme mentionné précédemment, nous pouvons voir maintenant le déséquilibre des données pour la variable dépendante. Nous devrons nous en occuper plus tard avant la modélisation.
Maintenant, tracons les boîtes pour les variables quantitatives.
Le boxplot n’affiche aucune valeur aberrante dans la distribution.
Voyons maintenant la corrélation pour les variables quantitatives:
Il existe une forte corrélation positive entre les Charges totales et les Charges mensuelles et les charges totales et la durée d’occupation.
Maintenant, tracons quelques histogrammes en tenant compte de la caractéristique de désabonnement pour les caractéristiques quantitatives:
L’image ci-dessus montre que le taux de désabonnement diminue à mesure que la durée d’occupation augmente, ce qui est une bonne indication que l’entreprise est en mesure de garder des clients de longue date.👏👏👏
Les parcelles ci-dessus nous donnent quelques indices de caractéristiques telles que:
- Apparemment, des fonctionnalités telles que le sexe, le service téléphonique et plusieurs Lignes n’ont pas vraiment d’effet sur le taux de désabonnement;
- Il ne semble pas y avoir beaucoup de différence entre les fonctionnalités de Streaming TV et de Streaming de films;
- La Sécurité en ligne, la Protection des appareils et le Support technique ont des histogrammes et une relation de désabonnement x Non Désabonnement très similaires.
Pour approfondir une analyse bi-variative incluant les caractéristiques quantitatives (Tenure, Charges mensuelles et Charges totales), transformons-les en facteurs en les divisant en 5 niveaux différents, pour chaque caractéristique, selon le 20e percentile.
Comme indiqué précédemment, le pourcentage de désabonnement diminue avec le nombre de mois, ce qui indique que les anciens clients sont moins difficiles à entretenir
Ce graphique à barres indique que plus les frais totaux facturés à un client sont élevés, plus le pourcentage de désabonnement diminue. Ce qui est logique si vous pensez que les clients de longue date auront une “charge totale” plus élevée et que, comme nous l’avons vu précédemment, les clients de longue date ont un pourcentage de désabonnement plus faible
Ce diagramme à barres est un peu plus intuitif et montre que les frais mensuels plus élevés ont tendance à avoir un pourcentage de désabonnement plus élevé.
Modélisation
Maintenant que nous avons une meilleure compréhension des données, commençons à nous préparer à la modélisation afin de prédire le désabonnement futur des clients.
Divisons ce processus en étapes, en fonction des problèmes immédiats auxquels nous nous attaquons:
- Gérer le déséquilibre
- Définir nos algorithmes et métriques
- Tester nos algorithmes
- Gérer la sélection des entités
- Résultats finaux
Gérer le déséquilibre️️
Comme nous l’avons déjà vu, notre variable dépendante est déséquilibrée. Nous avons de nombreuses alternatives pour résoudre ce problème:
- Sur-échantillonnage
- Sous-échantillonnage
- En utilisant des coûts de poids différents
- etc.
Ici, nous allons essayer la technique de sous, de suréchantillonnage et de frappe.
Bien définir nos algorithmes et Métriques
, car nous avons affaire à un problème de classification, c’est-à-dire à la fin de la journée, nous ne pouvons prédire que “Churn” ou “not Churn”, nous devons donc choisir un algorithme sous ce “royaume” spécifique. Cela nous laisse quelques options telles que:
- Naive-Bayes
- Régression logistique
- Arbres de décision (ou Forêt aléatoire)
- SVM
- GBM
Pour choisir la métrique, nous devons comprendre le problème. Par exemple,
- ” Les faux positifs ou les faux négatifs ont-ils des implications plus dommageables?”🤔
Dans notre cas, il ne semble pas y avoir de poids différents pour les faux positifs ou les faux négatifs, nous utiliserons donc la précision comme mesure de comparaison.
Test de nos algorithmes
Nous déploierons 5 algorithmes (Naïve-Bayes, Régression logistique, Forêt aléatoire, SVM et LightGBM). Nous utiliserons la validation à 10 plis croisés et exécuterons chaque algorithme 10 fois et calculerons les résultats.
Nous répéterons cette méthodologie pour les 3 données (Équilibrée en utilisant le Sous-échantillonnage, le suréchantillonnage et la SMOTE).
Avec les résultats des algorithmes, nous construisons une seule trame de données de précision
Nous projetons maintenant des tracés de boîte pour chaque algorithme et chaque donnée équilibrée
L’image ci-dessus montre que la Forêt aléatoire pour les données équilibrées suréchantillonnage et pour les données équilibrées SMOTE a présenté les meilleurs résultats: Précision de 87%.
Gestion de la sélection des entités
Maintenant que nous avons les algorithmes et les données équilibrées qui ont donné les meilleurs résultats, essayons d’améliorer la précision ou de simplifier l’algorithme en effectuant la sélection des entités.
J’ai donc choisi de travailler avec les données d’équilibre SMOTE.
Utilisons la fonction varImp pour voir les caractéristiques qui représentent le mieux le désabonnement dans l’algorithme de forêt aléatoire
Les quatre premières fonctionnalités semblaient assez intuitives compte tenu des visualisations que nous avons vues pendant l’EDA.
Nous allons donc créer 2 autres trames de données, une avec les 4 premières fonctionnalités et une avec toutes les fonctionnalités supérieures jusqu’à Sreaming TV.
Maintenant, courons la forêt aléatoire avec 10 cv répétés 10 fois.
Maintenant, créons un nouveau boxplot avec la distribution de précision pour chacune des 3 trames de données.
Les résultats pour mid_features et les données complètes semblent donc meilleurs. Testons s’ils sont significativement différents
Ainsi, le test statistique rejette l’hypothèse nulle, de sorte que la distribution de précision des données full_data et des données mid_features_data sont significativement différentes.
Nous terminons donc cette sélection de fonctionnalités en maintenant toutes les colonnes. Puisqu’il y a encore une perte de précision importante en supprimant les fonctionnalités.
Résultats finaux
Récapitulons notre modèle de prédiction final. Nous avons obtenu une précision moyenne de 87%, en utilisant SMOTE comme moyen d’équilibrer les données et en effectuant 10 validations croisées répétées pendant 10 fois, en utilisant la Forêt aléatoire comme algorithme.
En outre, nous avons capturé certains aspects intéressants de nos données clients, tels que:
- La société semble faire “ok” avec le maintien des anciens clients. L’énergie doit être davantage axée sur la mise en œuvre des stratégies pour les nouveaux clients.
- Les contrats de type mensuel ont un taux de désabonnement plus élevé, même pour des frais mensuels élevés, par rapport aux autres types de contrats.
- Les fibres optiques ont des taux de barattage plus élevés que le DSL pour les clients disposant d’un service Internet.
- Alors que les fibres optiques ont des taux de barattage plus élevés, elles offrent également des comptes de charge totaux plus élevés. Par conséquent, une meilleure enquête sur les raisons pour lesquelles les clients ne sont pas satisfaits du service de fibre optique est importante.
Oui, nous l’avons fait! J’espère que vous avez apprécié la balade et je suis heureux d’entendre vos pensées.
Étapes futures
Pour rappel, il y a encore beaucoup d’autres choses que vous pourriez faire dans cet ensemble de données, telles que:
- Essayez de nouveaux algorithmes
- Optimisez certains paramètres de réglage pour voir si vous pouvez améliorer la précision.
Merci encore!