Analisi esplorativa con Weka Esercitazione Data Mining 08/10/2008 Obiettivi Introduzione del tool Weka Analisi di un caso studio: Churn Weka Dataset Rappresentazione: Su file: formato ARFF In Weka: Instances Il formato arff ha due distinte sezioni Intestazione (Metadati) @relation (nome della relazione) @attribute (lista degli attributi) Corpo @data (le istanze) ARFF: tipi di dati Numeric, Real Nominal Specification, lista di valori: @attribute <name> string Date: @attribute <name> {<nominal-name1>, <nominal-name2>,…} String: @attribute <name> numeric @attribute <name> real @attribute <name> date [<date-format>] Relational @attribute <name> relational <further attribute definitions> @end <name> Esempio di file ARFF Weka Sono disponibili quattro modalità Simple CLI Explorer Versione grafica di base Experimenter Linea di comando Parte sperimentale con collegamento a JDBC KnowledgeFlow Versione drag and drop Weka Explorer Nella sezione in alto sono visibili le operazioni disponibili Apertura Dataset Preprocessing Tipo di Filtro da applicare Attributi del dataset Distribuzioni in funzione della classe selezionata 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 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’account 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, probabilmente basato su due precedenti variabili Total evening minutes: continuo, minuti usati dal cliente durante la sera Total evening calls: integer Total evening charge: continuo, probabilmente basato su due precedenti variabili Dettagli (3/3) Total night minutes: continuo, minuti usati dal cliente durante la notte Total night calls: integer Total night charge: continuo, probabilmente basato su due precedenti variabili 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/3) Il dataset contiene 3 variabili potenzialmente correlate: minutes, calls, and charge. La descrizione dei dati indica che la variabile charge può essere funzione di minutes e call. Per valutare possibili correlazioni possiamo utilizzare lo scatter plot. Correlazione tra variabili (2/3) Esempio: day charge e day mins Correlazione tra variabili (3/3) In weka è disponibile il Matrix Plot rispetto alle diverse combinazioni tra variabili Analisi Esplorativa degli Attributi Categorici In questa fase è interessante indagare come questi attributi si distribuiscano rispetto alla variabile obiettivo Analisi Esplorativa degli Attributi Categorici International Plan 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 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 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 Area code Numerico nella rappresentazione, ma in realtà è un valore nominale (codice di un area geografica) Presenta solo tre possibili valori (408, 415 e 510) Dati Anomali 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 Dati Anomali Dati Anomali 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 decidiamo di omettere l’attributo 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 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 Intl Charge 5,4 0 2,764581 0,75366 2,78 9 0 1,562856 1,315294 1 Eve Charge Night 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 I clienti che hanno chiamato il servizio clienti meno di tre volte hanno un tasso marcatamente inferiore a quello dei clienti che hanno chiamato il servizio clienti di quattro o più volte. Queste analisi sulle chiamate al servizio clienti hanno 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 fidelizzazione dei clienti. Ci dobbiamo aspettare che qualunque algoritmo di data mining che usiamo per prevedere se il cliente è churn, probabilmente utilizzera 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 suddividere in range i valori degli attributi in funzione della variabile target. 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 I 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%, 4 volte più grande.