figcaption > foto av Mantas hesthaven på Unsplash
customer Churn, även känd som customer Attrition, uppstår när kunder slutar göra affärer med ett företag. Företagen är intresserade av att identifiera segment av dessa kunder eftersom priset för att förvärva en ny kund vanligtvis är högre än att behålla den gamla. Till exempel, om Netflix kände till ett segment av kunder som riskerade att churning kunde de proaktivt engagera dem med specialerbjudanden istället för att helt enkelt förlora dem.
i det här inlägget kommer vi att skapa en enkel kund churn förutsägelse modell med Telco kund Churn dataset. Vi valde ett beslutsträd för att modellera churned kunder, pandor för data crunching och matplotlib för visualiseringar. Vi kommer att göra allt detta ovan i Python.
koden kan användas med en annan dataset med några mindre justeringar för att träna baslinjemodellen. Vi ger också några referenser och ger förslag på nya funktioner och förbättringar.
Du kan köra den här koden genom att ladda ner den här Jupyter-anteckningsboken.
Här är några länkar som kan intressera dig:
- Labeling and Data Engineering for Conversational AI and Analytics- Data Science for Business Leaders - Intro to Machine Learning with PyTorch - Become a Growth Product Manager - Deep Learning (Adaptive Computation and ML series) - Free skill tests for Data Scientists & Machine Learning Engineers
några av länkarna ovan är affiliate länkar och om du går igenom dem för att göra ett köp tjänar jag en provision. Tänk på att jag länkar kurser på grund av deras kvalitet och inte på grund av den provision jag får från dina inköp.
vi använder pandor för att läsa datauppsättningen och förbehandla den. Telco dataset har en kund per rad med många kolumner (funktioner). Det finns inga rader med alla saknade värden eller dubbletter (detta händer sällan med verkliga datamängder). Det finns 11 prover som har Totaltladdningar inställda på””, vilket verkar som ett misstag i data. Vi tar bort dessa prover och ställer in typen till numerisk (float).
df = pd.read_csv('data/WA_Fn-UseC_-Telco-Customer-Churn.csv')df = df.dropna(how=”all”) # remove samples with all missing values
df = df # remove duplicatestotal_charges_filter = df.TotalCharges == " "
df = df
df.TotalCharges = pd.to_numeric(df.TotalCharges)