Customer Churn Analysis
Brief overzicht van Customer Churn Analysis and Prediction with Decision Tree Classifier.
Customer Churn is een van de belangrijkste en meest uitdagende problemen voor bedrijven zoals Credit Card bedrijven, kabel service providers, SASS en telecommunicatiebedrijven wereldwijd. Ook al is het niet het leukst om naar te kijken, de statistieken over klantenbinding kunnen bedrijven helpen hun klantenbinding te verbeteren.
We kunnen klantenchurn (ook bekend als klantverloop) classificeren door ze in verschillende categorieën in te delen. Contractuele werving, die van toepassing is op bedrijven zoals kabelmaatschappijen en SAAS-dienstverleners, is wanneer klanten besluiten om niet door te gaan met hun verlopen contracten. Vrijwillige Churn, aan de andere kant, is wanneer een klant besluit om zijn bestaande dienst op te zeggen, wat van toepassing kan zijn voor bedrijven zoals prepaid mobiele telefoons en streaming abonnement aanbieders. Er zijn ook momenten waarop consumenten een mogelijke aankoop verlaten zonder de transactie af te ronden. We kunnen deze gevallen categoriseren als niet-contractuele churn, die van toepassing is op bedrijven die afhankelijk zijn van detailhandelslocaties, online winkels of online leendiensten. En ten slotte is er de onvrijwillige churn, bijvoorbeeld wanneer een klant zijn creditcardfactuur niet kan betalen en niet langer bij de creditcardmaatschappij blijft.
De redenen voor klantenchurn kunnen variëren en zouden domeinkennis vereisen om goed te definiëren, maar enkele veel voorkomende zijn: gebrek aan gebruik van het product, slechte service en een betere prijs ergens anders. Ongeacht de redeneringen die specifiek kunnen zijn voor verschillende industrieën, geldt voor elk domein één ding: het kost meer om nieuwe klanten te werven dan om bestaande klanten te behouden. Dit heeft een directe impact op de operationele kosten en marketingbudgetten binnen het bedrijf.
Omwille van het grote belang van klantenchurn binnen een bedrijf, investeren stakeholders meer tijd en moeite in het achterhalen van de redenering binnen hun organisaties, hoe ze nauwkeurig kunnen voorspellen welk type bestaande klanten kan stoppen met zaken doen met hen en wat ze kunnen doen om de klantenchurn te minimaliseren.
De beste manier om klantchurn te voorkomen is om je klanten te kennen, en de beste manier om je klant te kennen is door middel van historische en nieuwe klantgegevens.
In dit artikel zullen we enkele consumentengegevens doornemen en zien hoe we gegevensinzichten en voorspellende modellering kunnen benutten om de klantretentie te verbeteren. In onze analyse zullen we Python en verschillende Machine Learning-algoritmen gebruiken voor voorspellingen.
Onze eerste klantdataset is van een creditcardmaatschappij, waar we in staat zijn om klantattributen te bekijken, zoals geslacht, leeftijd, looptijd, saldo, aantal producten waarop ze zijn geabonneerd, hun geschatte salaris en of ze het abonnement hebben stopgezet of niet.
We kunnen onze dataset bekijken, maar we willen er ook zeker van zijn dat de gegevens schoon zijn, dus als onderdeel van het opschoningsproces kijken we naar ontbrekende waarden en gegevenstypen.
Wanneer we kijken naar de statistische inzichten, zien we dat de gemiddelde leeftijd van onze klanten 39 is, de gemiddelde maand dat de klant lid is 5 is en het geschatte gemiddelde salaris 100K is.
Wanneer we kijken naar het geslacht en de geografische verdeling van het geschatte salaris, zien we dat het geschatte gemiddelde salaris van mannelijke klanten hoger is dan dat van vrouwen in Frankrijk en Spanje, maar dat in Duitsland het geschatte gemiddelde salaris van vrouwelijke klanten hoger is.
Als we kijken naar de relatie tussen leeftijd en kredietscore, is het lineaire verband zeer zwak om een duidelijke correlatie te kunnen vaststellen.
Op basis van onze verkennende basisanalyse kunnen we de belangrijke klantkenmerken bepalen die ons het beste inzicht kunnen geven om het type klanten te voorspellen dat kan afhaken. We kunnen deze analyse voortzetten om een aantal basisvragen te beantwoorden, zoals: “Verhoogt een lager geschat salaris de opzegging?” Of “Verhoogt een lagere Credit Score de opzegging?” enzovoort. We kunnen de dataset op verschillende manieren groeperen en samenvatten om meer inzicht te krijgen in klantkenmerken. We zullen meer van deze in de volgende dataset duiken. Voor nu, laten we beginnen na te denken over het voorspellen welke klanten zullen churn.
In dit geval, kunnen we ons doel (respons) variabele die is churn labelen. Dit betekent dat we een classificatiemodel kunnen maken en verschillende algoritmemethoden kunnen toepassen, zoals Decision Tree, Random Forest, Logistic Regression of Support Vector Machines. Als het gaat om machine learning-modellen, zijn we op zoek naar twee belangrijke voorwaarden; 1- Normale verdeling van de feature set, 2- Dezelfde schaal van de feature set.
In deze dataset, kunnen we credit score, geografie, geslacht, leeftijd, ambtstermijn en geschat salaris attributen selecteren als de feature set en churn als de doelvariabele.
We moeten ervoor zorgen dat we de categorische variabelen updaten naar numerieke variabelen, omdat de machine learning-technieken die we gaan toepassen vereisen dat alle klantkenmerken numeriek zijn.
We kunnen onze dataset verder willekeurig opsplitsen in een trainings- en een testdataset, zodat we ons model kunnen aanpassen met de trainingsdataset en de voorspellingen kunnen testen met de testdataset. Het idee is om het model te trainen met de training dataset en de voorspellingen te testen met de test dataset. Als we geen trainings- en testdatasets zouden gebruiken en in plaats daarvan de volledige dataset zouden gebruiken, zal het algoritme alleen nauwkeurige voorspellingen doen met onze dataset en zal het falen met alle nieuwe gegevens die eraan worden toegevoerd.
In deze dataset gebruiken we DecisionTreeClassifier en RandomForestClassifier om ons model en onze voorspelling te maken, en evalueren we ze allebei om te zien welke van de twee beter is.
Based on the metrics evaluations, terwijl 73% van de voorspellingen nauwkeurig zou zijn met het Decision Classifier-model, zou 82% van de voorspellingen nauwkeurig zijn met de RandomForestClassifier. We zouden in dit geval de voorkeur geven aan Random Forest.
Wanneer we kijken naar de verdeling van de klanten die wel en niet churnen, zien we dat de data onpartijdig is. Dit betekent dat we niet alleen kunnen vertrouwen op de scores van de nauwkeurigheidsmetriek voor de voorspellingsmodellen. Laten we eens kijken naar de tweede set klantgegevens om te zien of we betere analyses en voorspellingsmodellen kunnen doen.
Deze keer kijken we naar een telecommunicatiebedrijf en de bestaande klantattributen, zoals hun huidige plan, kosten, locatie in termen van staat, hoeveelheid gesprekken met de klantenservice, accountlengte en churn.
Er ontbreken geen gegevens in de dataset en de gegevenstypen zijn correct. Laten we eens kijken naar de categorische waarden en hun unieke waarden.
Als we kijken naar de staat en de opzegging zien we dat Californië en New Jersey bovenaan de lijst staan van staten met de hoogste opzeggingspercentages.
We zien ook dat de opzeggingsratio hoger is bij klanten met een internationaal abonnement en lager bij klanten met een voicemailabonnement.
Er zijn veel meer klanten die bij het bedrijf blijven dan klanten die het bedrijf als klant verlaten. Als u zich de eerdere analyse met de kredietkaartmaatschappij herinnert, betekent dit onevenwichtigheden in de gegevens en heeft dit gevolgen voor de ontwikkeling van het voorspellingsmodel. (Een belangrijk aspect dat we niet eerder hebben genoemd, is dat we voor de selectie van kenmerken geen gebruik maken van unieke identificatoren zoals telefoonnummer, klant-id of rekeningnummer.)
Slechte klantenservice is een van de bekende redenen voor klantenchurn. In ons geval zien we een sterk positief lineair verband tussen het aantal gesprekken met de klantenservice en de opzeggingspercentages.
Met deze dataset kunnen we verschillende modellen ontwikkelen en evalueren om te zien welk model het best geschikt is om ons bedrijfsprobleem van klantenbinding op te lossen.
Gelijk aan de eerdere gegevensreeks met creditcardklanten moeten we de gegevens voorbewerken en de categorische variabelen bijwerken tot numerieke variabelen om ons model te kunnen maken.
Nu zijn we klaar om de dataset op te splitsen in train/test en onze modellen te maken. Laten we beginnen met Random Forest.
Onze nauwkeurigheidsscore voor het Random Forest-model dat we hebben gemaakt voor het voorspellen van de churn van de klanten van het telecommunicatiebedrijf is 0.89. We moeten dit echter verder analyseren omdat de gegevens onpartijdig zijn.
We kunnen aanvullende evaluatiemetrieken bekijken, zoals kruisvalidatiematrix die ons het aantal ware positieven, valse positieven, ware en valse negatieven, precisie, recall en f1-score geeft. We kunnen ook zien wat we kunnen doen om het model te verbeteren door te kijken welke kenmerken het meest bijdragen aan de voorspelling.
Het model voorspelt 560 Ware Negatieven, 13 Valse Positieven, 54 Valse Negatieven, 40 Ware Positieven.
Wanneer we het model evalueren met Random Forest Classifier, zien we dat:
Precisiescore is 0.729
Recall score is 0.372
ROC-curve is als volgt:
AUC-score (het gebied onder de roc-curve) is 0.83 en de f1-score is 0,49.
We komen er ook achter dat we, om de beste prestaties uit het model te halen, de n-schatter op 30 moeten instellen. (Momenteel gebruikt ons model 100)
We kunnen verder kijken naar het belang van de kenmerken om te zien welke kenmerken de meeste invloed hebben op de voorspelling.
Beste op het kenmerk belang, kunnen we zeker staat te verwijderen uit ons model.
Laten we een ander model maken met Support Vector Machine.
Wanneer we het model maken en naar de nauwkeurigheid kijken, zien we al dat de nauwkeurigheidsscore voor Support Vector Machine lager is dan die voor Random Forest Classificatie.
Wanneer we het model maken en naar de nauwkeurigheid kijken, zien we al dat de nauwkeurigheidsscore voor Support Vector Machine lager is dan die voor Random Forest Classificatie.
Het model voorspelt 567 Ware Negatieven, 6 Valse Positieven, 83 Valse Negatieven, 11 Ware Positieven. Hoewel het aantal vals-positieven licht is gedaald, zijn de true positives beduidend minder vergeleken met RandomForestClassifier.
Zowel de precisie score (0.647) als de recall score (0.11) is veel lager dan die van de Random Classifier. Het gebied onder de roc-curve (auc) is 0,83, wat hetzelfde is als bij de Random Forest Classifier. De beste optie voor de Support Vector Machine graad is 1. (die momenteel is ingesteld als de standaard waarde van 3).
Gebaseerd op de twee voorspellende modellen die we hebben gemaakt zou de eerste die we hebben gemaakt met Random Forest Classifier een betere keuze zijn. We kunnen dit model ook afstemmen en verbeteren door de n_estimator bij te werken en de toestandsvariabele uit de functieset te verwijderen voor een betere voorspelling.
Met de bestaande consumenteninzichten via gegevens kunnen bedrijven de mogelijke behoeften en problemen van klanten voorspellen, de juiste strategieën en oplossingen tegen hen definiëren, aan hun verwachtingen voldoen en hun bedrijf behouden. Op basis van de voorspellende analyse en modellering kunnen bedrijven hun aandacht richten op een gerichte aanpak door ze te segmenteren en aangepaste oplossingen aan te bieden. Door te analyseren hoe en wanneer de churn optreedt in de levenscyclus van de klant met de diensten, kan het bedrijf met meer preventieve maatregelen komen.