Churn Prediction

Data Driven Growth with Python

Churn Prediction with XGBoost Binary Classification

deze serie artikelen is ontworpen om uit te leggen hoe Python op een simplistische manier gebruikt kan worden om de groei van uw bedrijf te stimuleren door de voorspellende benadering toe te passen op al uw acties. Het zal een combinatie zijn van programmering, gegevensanalyse en machine learning.

Ik zal alle onderwerpen in de volgende negen artikelen behandelen:

1 – Ken uw Metrics

2 – klantsegmentatie

3 – Customer Lifetime Value Prediction

4 – Churn Prediction

5 – Predicting Next Purchase Day

6 – Predicting Sales

7 – Market Response Models

8 – Uplift Modeling

9 – a/b ontwerp en uitvoering van testen

artikelen zullen hun eigen codefragmenten hebben om ze gemakkelijk toe te passen. Als je super nieuw bent in programmeren, kun je hier een goede introductie hebben voor Python en Panda ‘ s (een beroemde bibliotheek die we op alles zullen gebruiken). Maar nog steeds zonder een codering introductie, kunt u de concepten te leren, hoe u uw gegevens te gebruiken en beginnen met het genereren van waarde uit het:

soms moet je lopen voordat je kunt lopen-Tony Stark

als een voorwaarde, zorg ervoor dat Jupyter Notebook en Python zijn geïnstalleerd op uw computer. De code knipsels zal draaien op Jupyter Notebook alleen.

goed, laten we beginnen.

in de laatste drie secties van Data Driven Growth series, hebben we ontdekt het bijhouden van essentiële statistieken, klantsegmentatie, en het programmatisch voorspellen van de levensduurwaarde. Omdat we onze beste klanten kennen door segmentatie en levenslange waardevoorspelling, moeten we ook hard werken om ze te behouden. Dat is wat maakt retentie tarief is een van de meest kritische metrics.

Retentiepercentage is een indicatie van hoe goed uw product market fit (PMF) is. Als uw PMF niet bevredigend is, zou u uw klanten heel snel moeten zien karnen. Een van de krachtige tools om retentie te verbeteren (vandaar de PMF) is Churn voorspelling. Door het gebruik van deze techniek, kunt u gemakkelijk erachter te komen wie is waarschijnlijk om te karnen in de gegeven periode. In dit artikel zullen we gebruik maken van een Telco-dataset en gaan over de volgende stappen voor het ontwikkelen van een Churn Prediction model:

  • Exploratieve data-analyse
  • Functie engineering
  • Onderzoeken hoe de functies van invloed op Behoud met behulp van Logistische Regressie
  • het Bouwen van een classificatie model met XGBoost

Exploratieve Data-Analyse

We beginnen met het controleren van hoe onze gegevens eruit ziet en visualiseer hoe deze samenwerkt met ons label (gekarnd of niet?). Laten we beginnen met het importeren van onze gegevens en de eerste tien rijen afdrukken:

df_data = pd.read_csv('churn_data.csv')
df_data.head(10)

Output:

Een betere manier om alle kolommen en hun data type wordt gebruikt .info() methode:

Het lijkt alsof onze gegevens vallen onder twee categorieën:

  • Categorische kenmerken: geslacht, streaming tv, betaalmethode &, enz.
  • numerieke kenmerken: tenure, monthly charges, total charges

vanaf de categorische, werpen we licht op alle functies en zien we hoe nuttig ze zijn om te bepalen of een klant gaat churnn.

als een side note, in de dataset die we hebben, is Churn kolom een string met Ja/Nee waarden. We converteren het naar integer om het gemakkelijker te gebruiken in onze Analyse.

df_data.loc = 0 
df_data.loc = 1

geslacht

door het onderstaande codeblok te gebruiken, kunnen we gemakkelijk visualiseren hoe de Churn Rate (1-retentie Rate) eruit ziet voor elke waarde:

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)

uitvoer:

Churn Rate per Geslacht

Geslacht verdeling van de voor de churn rate:

de Vrouwelijke klanten hebben meer kans om churn vs. mannelijke klanten, maar het verschil is minimaal (~0.8%).

laten we dit repliceren voor alle categorische kolommen. Om niet te herhalen wat we deden voor gender, vindt u de code die nodig is voor alle hieronder:

Nu gaan we over de functies die het meest significante verschil in de waarden:

Internet Service

Churn Rate door de Internet Service

Dit schema blijkt klanten die Glasvezel als Internet Service hebben meer kans om churn. Ik verwacht normaal glasvezel klanten te Karn minder als gevolg van ze gebruik maken van een meer premium service. Maar dit kan gebeuren als gevolg van hoge prijzen, concurrentie, klantenservice, en vele andere redenen.

Contract

Churn Rate by Contract

zoals verwacht betekent het kortere contract een hogere churn rate.

technische ondersteuning

Churn Rate by Tech Support

klanten maken geen gebruik van Tech Support zijn meer als Om te churn (~25% verschil).

betalingsmethode

het automatiseren van de betaling maakt de klant meer kans om te behouden in uw platform (~30% verschil).

Overige

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.