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:

  1. Gérer le déséquilibre
  2. Définir nos algorithmes et métriques
  3. Tester nos algorithmes
  4. Gérer la sélection des entités
  5. 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.

Sous Équilibrage d’échantillon des données

Équilibrage des données par suréchantillonnage

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

Structure de 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

Encadré de la précision pour les 10 CV répétés 10 fois

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!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.