Customer Churn Analysis
Brief Overview of Customer Churn Analysis and Prediction with Decision Tree Classifier.
Customer Churn è uno dei problemi più importanti e impegnativi per le aziende come le società di carte di credito, i fornitori di servizi via cavo, le SASS e le società di telecomunicazioni in tutto il mondo. Anche se non è il più divertente da guardare, le metriche di customer churn possono aiutare le aziende a migliorare la fidelizzazione dei clienti.
Quando guardiamo il genere e la distribuzione geografica dello stipendio stimato, vediamo che lo stipendio medio stimato dai clienti maschi è più alto di quello delle femmine in Francia e Spagna, tuttavia in Germania lo stipendio medio stimato dai clienti femmine è più alto.
Quando guardiamo la relazione tra età e punteggio di credito, la relazione lineare è molto debole per definire chiaramente la correlazione.
In base alla nostra analisi esplorativa di base, possiamo definire gli attributi importanti del cliente che possono darci la migliore intuizione per prevedere il tipo di clienti che possono fare churn. Possiamo continuare questa analisi per rispondere ad alcune domande di base come: “Uno stipendio stimato più basso aumenta il churn? Oppure “Un Credit Score più basso aumenta il churn?” e così via. Possiamo raggruppare e riassumere il set di dati in diversi modi per ottenere più insight dagli attributi del cliente. Ci immergeremo in più di questi nel prossimo set di dati. Per ora, iniziamo a pensare a come prevedere quali clienti faranno churn.
In questo caso, possiamo etichettare la nostra variabile target (risposta) che è churn. Questo significa che possiamo creare un modello di classificazione ed eseguire diversi metodi di algoritmi come Decision Tree, Random Forest, Logistic Regression o Support Vector Machines. Quando si tratta di modelli di apprendimento automatico, stiamo cercando due condizioni principali; 1- Distribuzione normale del set di caratteristiche, 2- Stessa scala del set di caratteristiche.
In questo set di dati, possiamo selezionare il punteggio di credito, la geografia, il sesso, l’età, il titolo e lo stipendio stimato come set di caratteristiche e il churn come variabile target.
Dobbiamo assicurarci di aggiornare le variabili categoriche in variabili numeriche poiché le tecniche di apprendimento automatico che applicheremo richiedono che tutti gli attributi dei clienti siano numerici.
Possiamo inoltre dividere casualmente il nostro dataset in dataset di allenamento e di test per adattare il nostro modello al dataset di allenamento e testare le previsioni con il dataset di test. L’idea è quella di addestrare il modello con il set di dati di addestramento e testare la previsione con il set di dati di test. Se non usassimo i dataset di allenamento e di test e usassimo invece l’intero dataset, l’algoritmo farebbe previsioni accurate solo con il nostro dataset e fallirebbe con qualsiasi nuovo dato che gli viene fornito.
In questo dataset, usiamo DecisionTreeClassifier e RandomForestClassifier per creare il nostro modello e la previsione, valutandoli ulteriormente entrambi per vedere quale sia migliore.
Based on the metrics evaluations, mentre il 73% delle previsioni sarebbe accurato con il modello Decision Classifier, l’82% delle previsioni sarebbe accurato con il RandomForestClassifier. Preferiremmo usare Random Forest in questo caso.
Quando guardiamo la distribuzione dei clienti che cambiano o non cambiano, vediamo che i dati sono imparziali. Questo significa che non possiamo fare affidamento solo sui punteggi delle metriche di precisione per i modelli di previsione. Guardiamo il secondo set di dati dei clienti per vedere se possiamo fare analisi e modelli di previsione migliori.
Questa volta stiamo guardando una società di telecomunicazioni e i suoi attributi di clienti esistenti come il loro piano attuale, le spese, la posizione in termini di stato, la quantità di chiamate al servizio clienti, la lunghezza dell’account e il churn.
Non ci sono dati mancanti nel dataset e i tipi di dati sono corretti. Guardiamo i valori categorici e i loro valori unici.
Quando guardiamo lo stato e il churn vediamo che California e New Jersey sono i primi stati con il più alto churn rate.
Vediamo anche che il churn rate è più alto con i clienti del piano internazionale e più basso con i clienti che hanno il piano di posta vocale. Se ricordate l’analisi precedente con la società di carte di credito, questo significa squilibri nei dati e ha un impatto sullo sviluppo del modello di previsione. (Un aspetto importante che non abbiamo menzionato prima è che non abbiamo bisogno di identificatori unici come il numero di telefono, l’id del cliente o il numero di conto per la selezione delle caratteristiche)
Il cattivo servizio clienti è una delle ragioni ben note per la rinuncia dei clienti. Nel nostro caso, possiamo vedere una forte relazione lineare positiva con la quantità di chiamate del servizio clienti e il tasso di abbandono.
Con questo set di dati, sviluppiamo più modelli diversi e valutiamoli per vedere quale sarebbe il migliore per risolvere il nostro problema aziendale di abbandono dei clienti.
Similmente al precedente set di dati sui clienti delle carte di credito, abbiamo bisogno di eseguire una pre-elaborazione e aggiornare le variabili categoriche in variabili numeriche per creare il nostro modello.
Ora siamo pronti a dividere il set di dati per allenare/testare e creare i nostri modelli. Iniziamo con Random Forest.
Il nostro punteggio di precisione per il modello Random Forest che abbiamo creato per prevedere il churn dei clienti della società di telecomunicazioni è 0.89. Tuttavia, dovremmo analizzare ulteriormente questo dato in quanto i dati sono imparziali.
Possiamo esaminare ulteriori metriche di valutazione, come la matrice di validazione incrociata che ci darà la quantità di veri positivi, falsi positivi, veri e falsi negativi, precisione, richiamo e punteggio f1. Possiamo anche vedere cosa possiamo fare per migliorare il modello guardando quali caratteristiche contribuiscono maggiormente alla previsione.
Il modello predice 560 veri negativi, 13 falsi positivi, 54 falsi negativi, 40 veri positivi.
Quando valutiamo il modello con il classificatore Random Forest, vediamo che:
Il punteggio di precisione è 0.729
Recall score è 0.372
La curva roc è la seguente:
AUC score (l’area sotto la curva roc) è 0.83 e il punteggio f1 è 0,49.
Scopriamo anche che, per ottenere le migliori prestazioni dal modello, dobbiamo impostare lo stimatore n a 30. (Attualmente, il nostro modello usa 100)
Possiamo inoltre guardare l’importanza delle caratteristiche per vedere quali caratteristiche hanno il maggior impatto sulla previsione.
Meglio sull’importanza delle caratteristiche, possiamo sicuramente rimuovere lo stato dal nostro modello.
Creiamo un altro modello usando la Support Vector Machine.
Quando creiamo il modello e guardiamo la precisione, vediamo già che il punteggio di precisione della Support Vector Machine è inferiore alla classificazione Random Forest.
Quando creiamo il modello e guardiamo l’accuratezza, vediamo già che il punteggio di accuratezza per Support Vector Machine è inferiore a Random Forest Classification.
Il modello predice 567 veri negativi, 6 falsi positivi, 83 falsi negativi, 11 veri positivi. Anche se il conteggio dei falsi positivi è sceso leggermente, i veri positivi sono significativamente inferiori rispetto a RandomForestClassifier.
Sia il punteggio di precisione (0,647) che quello di richiamo (0,11) sono molto più bassi rispetto al classificatore casuale. L’area sotto la curva roc (auc) è 0,83 che è la stessa del classificatore Random Forest. L’opzione migliore per il grado di Support Vector Machine è 1. (che è attualmente impostato come valore predefinito di 3).
In base ai due modelli predittivi che abbiamo creato il primo che abbiamo creato con Random Forest Classifier sarebbe una scelta migliore. Possiamo anche sintonizzare questo modello e migliorarlo aggiornando l’n_estimator e rimuovendo la variabile di stato dal set di caratteristiche per una migliore previsione.
Con le conoscenze esistenti dei consumatori attraverso i dati, le aziende possono prevedere i possibili bisogni e problemi dei clienti, definire strategie e soluzioni adeguate per loro, soddisfare le loro aspettative e mantenere il loro business. Sulla base dell’analisi predittiva e della modellazione, le aziende possono concentrare la loro attenzione con un approccio mirato, segmentando e offrendo loro soluzioni personalizzate. Analizzare come e quando il churn sta accadendo nel ciclo di vita del cliente con i servizi permetterà all’azienda di proporre misure più preventive.