Analisi esplorativa Caso Studio Churn Obiettivi Utilizzare Rialto per l’analisi di un caso studio: Churn Caso studio: Churn E’ un dataset disponibile presso l’UCI Repository Contiene 20 attributi e 3333 tuple Le informazioni sono relative al fenomeno dell’attrition di una compagnia telefonica Attrition? Customer attrition (o customer churn nel caso di compagnie telefoniche) indica il passaggio di clienti da una azienda ad una concorrente Dettagli (1/3) State: categorico, codici relativi ai 50 stati USA più quello del distretto della Columbia Account length: integer, tempo di vita totale dell’accunt Area code: categorico Phone number: essenzialmente si comporta alla stregua di un ID International Plan: binario dicotomico, yes o no VoiceMail Plan: binario dicotomico, yes o no Number of voice mail messages: integer Dettagli (2/3) Total day minutes: continuo, minuti usati dal cliente durante il giorno Total day calls: integer Total day charge: continuo, addebito di una chiamata durante il giorno Total evening minutes: continuo, minuti usati dal cliente durante la sera Total evening calls: integer Total evening charge: continuo, addebito di una chiamata durante la sera Dettagli (3/3) Total night minutes: continuo, minuti usati dal cliente durante la notte Total night calls: integer Total night charge: continuo, addebito di una chiamata durante la notte Total international minutes: minuti usati dal cliente per fare chiamate internazionali Total international calls: integer Total international charge: continuo, probabilmente basato su due precedenti variabili Number of calls to customer service: integer Correlazione tra variabili (1/2) Il dataset contiene 3 variabili potenzialmente correlate: minutes, calls, and charge. E’ molto probabile che la variabile charge possa essere funzione di minutes e call. Per valutare possibili correlazioni possiamo utilizzare lo scatter plot. Correlazione tra variabili (2/2) Esempio: day charge e day mins Analisi Esplorativa degli Attributi Categorici In questa fase è interessante indagare come questi attributi si distribuiscono rispetto alla variabile obiettivo Analisi Esplorativa degli Attributi Categorici International Plan: InternationalPlan=yes InternationalPlan=no Churn? Count Perc Churn? Count Perc False 186 5.58 False 2664 79.93 True 137 4.11 True 346 10.38 Analisi Esplorativa degli Attributi Categorici In figura è mostrato un confronto tra la percentuale di churners (rosso) e nonchurners (blu) tra i clienti che avevano scelto il piano internazionale (sì, 9,69% dei clienti) o no (no, 90,31% dei clienti) . Il grafico sembra indicare che una buona percentuale di coloro i quali hanno un piano internazionale sono “churning”, ma è difficile esserne sicuri. Cross Tabulation su International Plan Nella tabella è mostrato il risultato della cross-tabulazione. International Plan Churn No Yes False. 2664 186 True. 346 137 Analisi (1/2) Si noti che la somma dei valori contenuti nella prima colonna coincide col numero totale di coloro i quali non erano titolari del piano internazionale, 3010 (2664 + 346) ; viceversa dicasi per la seconda colonna. La prima riga nella tabella mostra il numero di coloro i quali non abbandonano la loro compagnia, mentre la seconda riga mostra viceversa i rinunciatari. Il dataset contiene un totale di 483 (346 + 137) churners rispetto ai 2850 (2664 + 186) nonchurners; ossia il 14,5% (483 / (483 + 2.850)) dei clienti totali sono churners. Analisi (2/2) Si noti che il 42,4% (137 / (137 + 186)) di coloro i quali che sono titolari di un piano internazionale sono anche churned, rispetto al solo 11.5% (346 / (346 + 2.664)) di coloro che non ne sono titolari. I clienti che hanno selezionato il piano internazionale e che abbandonano la loro compagnia sono percentualmente il triplo rispetto a quelli che non lo hanno selezionato. Questa analisi sul piano internazionale indica che: Forse dovremmo indagare sulle cause piano che inducono i clienti con un piano internazionale a lasciare la loro compagnia! Quello che ci aspettiamo è che utilizzando un algoritmo di data mining per prevedere l’abbandono del servizio, il modello utilizzerà la presenza o meno del piano internazionale nel profilo del cliente per prevedere l’abbandono. Analisi Esplorativa degli Attributi Categorici VoiceMail Plan VoiceMail=yes VoiceMail=no Churn? Count Perc Churn? Count Perc False 842 25.26 False 2008 60.25 True 80 2.4 True 403 12.09 Cross Tabulation su VoiceMail Plan Nella tabella è mostrato il risultato della cross-tabulazione. VoiceMail Plan Churn No Yes False. 2008 842 True. 403 80 Analisi (1/2) Prima di tutto, possiamo notare che 922 (842 + 80) clienti hanno il piano VoiceMail, mentre il 2411 (2008 + 403) non lo hanno. Possiamo quindi individuare che il 16.7% (403/2411) di coloro i quali non possiedono il piano VoiceMail sono churners, rispetto allo 8,7% (80/922) dei clienti che hanno il piano VoiceMail. In prima istanza possiamo dire che i churners senza la tariffa VoiceMail sono percentualmente il doppio rispetto ai churners con questo piano. Analisi (2/2) Questa analisi del piano VoiceMail ha indicato che: Forse dovremmo diffondere maggiormente questa tariffa al fine di migliorare la fidelizzazione. Ci aspettiamo che un qualsiasi algoritmo di data mining, per predire churn, tenga in considerazione l’attributo che indica la presenza del piano tariffario VoiceMail Dati Anomali La prima situazione anomala riguarda l’area code : questo campo contiene solo attributi numerici, ma viene trattato come nominale. Il motivo di tale scelta dipende dal fatto che ognuno dei valori (408, 415 e 510) rappresenta una corrispondente area geografica. Dati Anomali 1/2 I codici corrispondono ad aree geografiche presenti in California Problema: La cross tabulation con state ci indica che quei codici sono sparsi su tutti gli stati membri degli USA E’ possibile che un esperto di dominio sia in grado di spiegare questa situazione o che effettivamente che il campo contenga dati errati. In prima analisi i due attributi per le ragioni descritte saranno omessi Dati Anomali 2/2 Analisi Esplorativa degli Attributi Numerici Per l’analisi ovvero la valutazione degli attributi numerici saranno utilizzate alcune misure come: Il massimo, il minimo, la media, la deviazione standard, e la mediana. Analisi Esplorativa degli Attributi Numerici Massimo Minimo Media Dev. St. Mediana Account Length 243 1 101,0648 39,81613 101 VMail Message 51 0 8,09901 13,68631 0 Day Mins 350,8 0 179,7751 54,45922 179,4 Day Calls 165 0 100,4356 20,06607 101 Day Charge 59,64 0 30,56231 9,258045 30,5 Eve Mins 363,7 0 200,9803 50,70624 201,4 Eve Calls 170 0 100,1143 19,91964 100 Eve Charge 30,91 0 17,08354 4,310021 17,12 Night Mins 395 23,2 200,872 50,56626 201,2 Night Calls 175 33 100,1077 19,56567 100 17,77 1,04 9,039325 2,275531 9,05 Intl Mins 20 0 10,23729 2,791421 10,3 Intl Calls 20 0 4,479448 2,460845 4 5,4 0 2,764581 0,75366 2,78 9 0 1,562856 1,315294 1 Night Charge Intl Charge CustServ Calls Analisi Esplorativa degli Attributi Numerici In prima istanza possiamo osservare che il campo Account Length ha come valore minimo 1, come valore massimo 243, mentre media e mediana assumono valori all’incirca uguali (101) Tale valori ci indicano una simmetria nei dati Le stesse osservazioni si possono effettuare su diversi campi, tra cui tutti i minutes, charge, e call. Analisi Esplorativa degli Attributi Numerici Gli altri campi voice mail messages e customer service calls non sembrano mostrare alcuna simmetria. In particolare: La mediana per voice mail messages è zero, ciò sta ad indicare che almeno metà dei cliente non hanno messaggi voicemail. Questo risultato, naturalmente, indica che meno della metà dei clienti scelgono il piano VoiceMail, come visto sopra. Analisi Esplorativa degli Attributi Numerici La media di chiamate al servizio clienti (1.563) è superiore alla mediana (1.0), mostrando una certa simmetria destra, come anche indicato dal numero massimo di chiamate il servizio clienti ossia 9. Analisi Esplorativa degli Attributi Numerici Analisi Esplorativa degli Attributi Numerici Analisi Esplorativa degli Attributi Numerici I clienti che hanno chiamato il servizio clienti meno di tre volte hanno un tasso di abbandono marcatamente inferiore a quello dei clienti che hanno chiamato il servizio clienti di quattro o più volte. Questo analisi sulle chiamate al servizio clienti ha indicato che: Dobbiamo monitorare attentamente il numero di chiamate al servizio clienti per ciascun cliente. Alla terza chiamata, dovrebbero essere offerti forti incentivi per conservare la fidelizzazione dei clienti. Ci dobbiamo aspettare che qualunque algoritmo di data mining che venga usato per prevedere se il cliente è churn, probabilmente utilizzerà il numero di chiamate al servizio clienti per effettuare la predizione. Riassunto dei risultati dell’analisi condotta Account length Nessuna ovvia relazione con churn, ma mantenuto Area code Anomalo. Omesso dal modello. Phone number Si comporta come un ID. Omesso dal modello. International Plan Predittivo di Churn. Mantenuto. VoiceMail Plan Predittivo di Churn. Mantenuto. Number of voice mail messages Nessuna ovvia relazione con churn, ma mantenuto Total day minutes Predittivo di Churn. Mantenuto. Total day calls Nessuna ovvia relazione con churn, ma mantenuto Total day charge Funzione di minutes. Omesso dal modello. Total evening minutes Predittivo di Churn. Mantenuto. Total evening calls Nessuna ovvia relazione con churn, ma mantenuto Total evening charge Funzione di minutes. Omesso dal modello. Total night minutes Nessuna ovvia relazione con churn, ma mantenuto Total night calls Nessuna ovvia relazione con churn, ma mantenuto Total night charge Funzione di minutes. Omesso dal modello. Total international minutes Nessuna ovvia relazione con churn, ma mantenuto. Total international calls Nessuna ovvia relazione con churn, ma mantenuto Total international charge Funzione di minutes. Omesso dal modello. Customer service calls Predittivo di Churn. Mantenuto. Binning Il binning è un insieme di tecniche volte alla categorizzazione dei dati: Discretizzazione di dati numerici in classi Esempio 1: possiamo suddividere l’attributo day minutes in tre classi: low, medium, high Esempio 2: possiamo suddividere le età di una popolazione nelle classi: bambino, adulto, anziano Raggruppamento di dati categorici in classi Esempio: possiamo decidere di raggruppare i valori dell’attributo state in macro regioni, e di sostiuire quest’ultimo con un nuovo attributo che chimeremo region. Quindi i valori “California”, “Oregon”, “Washington”, “Alaska” e “Hawai” verranno convertiti nel singolo valore “Pacific”, ad indicare che per la nostra analisi serve solo sapere la regione territoriale di interesse e non il singolo stato di appartenenza (stiamo aumentando la granularità) Binning Il binning è un insieme di tecniche a cavallo tra l’analisi ed il pre – processamento dei dati. Esistono tante strategie per il binning di dati numerici: Creare classi di uguale estensione, così come abbiamo visto per gli istogrammi di uguale estensione (equal-width histograms). Provare a creare classi che contengano lo stesso numero di tuple. Provare a partizionare i dati in funzione della variabile target di tutta l’analisi di mining. In questo modo cerchiamo di identificare comportamenti comuni all’interno dei dati che riferiscono ad uno stesso valore di attributo target Binning sull’esempio proposto Come presentato prima i clienti, che hanno effettuato meno di 4 chiamate al servizio clienti, hanno un tasso di abbandono più basso di quelli che hanno chiamato il servizio clienti 4 o più volte. Potremmo decidere di raggruppare il valore di customer service calls in due classi: low e high. Binning sull’esempio proposto Questa figura mostra che il tasso di abbandono degli utenti con un basso numero di chiamate al servizio utenti è di 11.25%, mentre il tasso di abbandono degli altri utenti è del 51.69%, quasi 5 volte più grande. Binning con Rialto L’operazione proposta può essere eseguita in Rialto utilizzando il filtro Custom Discretizer Suddivisione del dataset Utilizzando il filtro Splitter dividiamo il dataset iniziale in 2 sotto dataset Il primo conterrà il 66% delle tuple e sarà utilizzato in fase di training del modello Il secondo che conterrà le rimanenti tuple sarà utilizzato per la fase di validazione Creazione del modello La scelta del modello da utilizzare è ricaduta sul RuleLearner, un classificatore a regole disponibile in Rialto Motivazioni Il motivazioni della scelta di tale algoritmo sono molteplici: Il RuleLerner è particolarmente efficace nell’identificare classi di minoranza; Il modello generato è facilmente comprensibile. Il modello Risultati (1/2) Utilizzando il classificatore a regole otteniamo Risultati (2/2) Class TP Rate FP Rate Precision Recall F-Measure False 0.983 0.275 0.954 0.983 0.968 True 0.725 0.017 0.882 0.725 0.796 Matrice di confusione classified as False. True. False 1396 24 True 68 179