Data Driven Growth with Python
Churn Prediction with XGBoost Binary Classification
Tämä artikkelisarja on suunniteltu selittämään, miten Pythonia käytetään yksinkertaistetusti yrityksen kasvun vauhdittamiseen soveltamalla ennakoivaa lähestymistapaa kaikkiin toimiisi. Se tulee olemaan ohjelmoinnin, data-analyysin ja koneoppimisen yhdistelmä.
käsittelen kaikkia aiheita seuraavissa yhdeksässä kirjoituksessa:
1 – Tunne mittarisi
2 – asiakkaan segmentointi
3 – asiakkaan Elinaikaennuste
4 – Churnin ennuste
5 – seuraavan ostopäivän ennustaminen
6 – myynnin ennustaminen
7 – markkinoiden Vastemallit
8 – uplift modeling
9 – A/B testauksen suunnittelu ja toteutus
artikkeleilla on omat koodinpätkät, joiden avulla voit helposti soveltaa niitä. Jos olet erittäin Uusi ohjelmointi, voit olla hyvä johdanto Python ja Pandas (kuuluisa kirjasto, jota käytämme kaikessa) täällä. Mutta vielä ilman koodaus johdatus, voit oppia käsitteitä, miten käyttää tietoja ja alkaa tuottaa arvoa ulos siitä:
joskus sinun täytyy juosta ennen kuin voit kävellä-Tony Stark
ennakkoehtona varmista, että Jupyter Notebook ja Python on asennettu tietokoneellesi. Koodinpätkiä suoritetaan vain Jupyter-muistikirjassa.
Okei, aloitetaan.
Data Driven Growth-sarjan kolmessa viimeisessä osassa olemme löytäneet olennaisten mittareiden seurannan, asiakkaiden segmentoinnin ja elinikäisen arvon ennustamisen ohjelmallisesti. Koska tunnemme parhaat asiakkaamme segmentoinnin ja elinikäisen arvon ennustamisen avulla, meidän pitäisi myös tehdä kovasti töitä säilyttääksemme heidät. Se tekee Retention korko on yksi kriittisimmistä mittareista.
Retentioaste on osoitus siitä, kuinka hyvin tuotemarkkinasi sopivat (PMF). Jos PMF ei ole tyydyttävä, sinun pitäisi nähdä asiakkaat kirnuavat hyvin pian. Yksi tehokkaita työkaluja parantaa Retention korko (siis PMF) on Kirn ennustaminen. Käyttämällä tätä tekniikkaa, voit helposti selvittää, kuka todennäköisesti Kirnu tiettynä aikana. Tässä artikkelissa käytämme Telco-aineistoa ja käymme läpi seuraavat vaiheet kehittääksemme Churn-ennustemallin:
- eksploratiivinen data-analyysi
- Feature engineering
- tutkitaan, miten ominaisuudet vaikuttavat retentioon käyttämällä logistista regressiota
- rakennetaan luokittelumalli xgboostilla
eksploratiivinen Data-analyysi
aloitamme tarkastamalla, miltä tietomme näyttävät ja visualisoimme, miten se on vuorovaikutuksessa etikettimme kanssa (kirnuiltiin vai ei?). Aloitetaan tietojen Tuomisella ja tulostetaan ensimmäiset kymmenen riviä:
df_data = pd.read_csv('churn_data.csv')
df_data.head(10)
Lähtö:
parempi tapa nähdä kaikki sarakkeet ja niiden tietotyyppi on käyttää. info () menetelmä:
näyttää siltä, että tietomme kuuluvat kahteen kategoriaan:
- kategoriset ominaisuudet: Sukupuoli, suoratoisto-tv, Maksutapa & jne.
- numeeriset ominaisuudet: hallintaoikeudet, kuukausimaksut, kokonaismaksut
nyt kategorisista alkaen valotetaan kaikkia ominaisuuksia ja katsotaan, miten hyödyllisiä ne ovat tunnistaa, jos asiakas on menossa Kirnu.
Sivuhuomautuksena meillä olevassa aineistossa Kirnusarake on merkkijono, jolla on kyllä / ei-arvot. Me muuntaa sen kokonaisluku, jotta se on helpompi käyttää meidän analyysi.
df_data.loc = 0
df_data.loc = 1
sukupuoli
käyttämällä alla olevaa koodilohkoa voimme helposti visualisoida, miltä Muuntumisnopeus (1-Retentioaste) näyttää kunkin arvon osalta:
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)
tuloste:
jalostusasteen sukupuolijakauma:
Naisasiakkaat ovat todennäköisemmin Kirnu vs. miesasiakkaat, mutta ero on minimaalinen (~0,8%).
toistetaanpa tämä kaikille kategoriallisille sarakkeille. Jotta emme toista, mitä teimme sukupuolen, löydät koodin tarvitaan kaikille alla:
nyt käydään läpi ominaisuuksia, jotka kertovat merkittävimmän eron arvoissaan:
Internet-palvelu
tämä kaavio paljastaa, että asiakkaat, joilla on valokuitu Internet-palveluna, kirnuavat todennäköisemmin. Odotan normaalisti Valokuituasiakkaiden kirnuavan vähemmän, koska he käyttävät enemmän premium-palvelua. Mutta tämä voi tapahtua korkeiden hintojen, kilpailun, asiakaspalvelun ja monista muista syistä.
sopimus
odotetusti lyhyempi sopimus tarkoittaa korkeampaa kirnuastetta.
Tekninen tuki
asiakkaat eivät käytä teknistä tukea ovat enemmän kuin kirnua (~25% ero).
Maksutapa
automatisointi maksu tekee asiakkaan todennäköisemmin säilyttää oman alustan (~30% ero).
muut