Croissance pilotée par les données avec Python
Prévision de désabonnement avec la Classification Binaire XGBoost
Cette série d’articles a été conçue pour expliquer comment utiliser Python de manière simpliste pour alimenter la croissance de votre entreprise en appliquant l’approche prédictive à toutes vos actions. Ce sera une combinaison de programmation, d’analyse de données et d’apprentissage automatique.
Je couvrirai tous les sujets dans les neuf articles suivants:
1 – Connaissez vos Métriques
2 – Segmentation client
3 – Prédiction De La Valeur à Vie du Client
4 – Prédiction Du Taux de Désabonnement
5 – Prédiction Du Prochain Jour d’Achat
6 – Prédiction Des Ventes
7 – Modèles de Réponse du Marché
8 – Modélisation Uplift
9 – Conception et exécution de tests A /B
Les articles auront leurs propres extraits de code pour vous permettre de les appliquer facilement. Si vous êtes super nouveau en programmation, vous pouvez avoir une bonne introduction pour Python et Pandas (une célèbre bibliothèque que nous utiliserons sur tout) ici. Mais toujours sans introduction au codage, vous pouvez apprendre les concepts, comment utiliser vos données et commencer à en générer de la valeur:
Parfois, vous devez courir avant de pouvoir marcher – Tony Stark
Comme pré-requis, assurez-vous que Jupyter Notebook et Python sont installés sur votre ordinateur. Les extraits de code s’exécuteront uniquement sur Jupyter Notebook.
D’accord, commençons.
Dans les trois dernières sections de la série Data Driven Growth, nous avons découvert le suivi des mesures essentielles, la segmentation des clients et la prédiction de la valeur de la durée de vie par programme. Puisque nous connaissons nos meilleurs clients par segmentation et prédiction de la valeur à vie, nous devrions également travailler dur pour les fidéliser. C’est ce qui fait du taux de rétention l’une des mesures les plus critiques.
Le taux de rétention est une indication de l’adéquation de votre produit au marché (PMF). Si votre PMF n’est pas satisfaisant, vous devriez voir vos clients barattage très bientôt. L’un des outils puissants pour améliorer le taux de rétention (d’où le PMF) est la prédiction du désabonnement. En utilisant cette technique, vous pouvez facilement savoir qui est susceptible de désabonner au cours de la période donnée. Dans cet article, nous allons utiliser un ensemble de données de télécommunications et passer en revue les étapes suivantes pour développer un modèle de prédiction de désabonnement:
- Analyse exploratoire des données
- Ingénierie des fonctionnalités
- Étudier comment les fonctionnalités affectent la rétention en utilisant la Régression logistique
- Construire un modèle de classification avec XGBoost
Analyse exploratoire des données
Nous commençons par vérifier à quoi ressemblent nos données et visualiser comment elles interagissent avec notre étiquette (barattées ou non?). Commençons par importer nos données et imprimons les dix premières lignes:
df_data = pd.read_csv('churn_data.csv')
df_data.head(10)
Sortie:
Une meilleure façon de voir toutes les colonnes et leur type de données utilise la méthode .info():
Il semble que nos données relèvent de deux catégories:
- Caractéristiques catégorielles: sexe, tv en streaming, mode de paiement &, etc.
- Caractéristiques numériques: ancienneté, frais mensuels, frais totaux
Maintenant, à partir des catégories, nous mettons en lumière toutes les fonctionnalités et voyons à quel point elles sont utiles pour identifier si un client va se désabonner.
En guise de remarque, dans l’ensemble de données que nous avons, la colonne Churn est une chaîne avec des valeurs Oui / Non. Nous le convertissons en entier pour le rendre plus facile à utiliser dans notre analyse.
df_data.loc = 0
df_data.loc = 1
Sexe
En utilisant le bloc de code ci-dessous, nous visualisons facilement à quoi ressemble le taux de désabonnement (Taux de rétention 1) pour chaque valeur:
df_plot = df_data.groupby('gender').Churn.mean().reset_index()
plot_data = ,
y=df_plot,
width = ,
marker=dict(
color=)
)
]plot_layout = go.Layout(
xaxis={"type": "category"},
yaxis={"title": "Churn Rate"},
title='Gender',
plot_bgcolor = 'rgb(243,243,243)',
paper_bgcolor = 'rgb(243,243,243)',
)
fig = go.Figure(data=plot_data, layout=plot_layout)
pyoff.iplot(fig)
Sortie:
Répartition par sexe du taux de désabonnement:
Les clients féminins sont plus susceptibles de désabonner que les clients masculins, mais la différence est minime (~ 0,8%).
Répliquons ceci pour toutes les colonnes catégorielles. Pour ne pas répéter ce que nous avons fait pour le genre, vous pouvez trouver le code nécessaire pour tous ci-dessous:
Maintenant, nous passons en revue les fonctionnalités qui montrent la différence la plus significative entre leurs valeurs:
Service Internet
Ce graphique révèle que les clients qui ont la fibre optique comme service Internet sont plus susceptibles de désabonner. Je m’attends normalement à ce que les clients de la fibre optique se désabonnent moins car ils utilisent un service plus haut de gamme. Mais cela peut se produire en raison des prix élevés, de la concurrence, du service client et de nombreuses autres raisons.
Contrat
Comme prévu, le contrat plus court signifie un taux de désabonnement plus élevé.
Support technique
Les clients n’utilisant pas le support technique sont plus enclins à désabonner (~ 25% de différence).
Mode de paiement
L’automatisation du paiement rend le client plus susceptible de conserver dans votre plate-forme (~ 30% de différence).
Autres