analisi esplorativa con weka esercitazione data mining 08/10/2008
Post on 01-May-2015
232 Views
Preview:
TRANSCRIPT
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 @attribute <name> numeric @attribute <name> real
Nominal Specification, lista di valori: @attribute <name> {<nominal-name1>, <nominal-name2>,…}
String: @attribute <name> string
Date: @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 Linea di comando
Explorer Versione grafica di base
Experimenter Parte sperimentale con collegamento a
JDBC KnowledgeFlow
Versione drag and drop
Weka
Explorer
Nella sezione in alto sono visibili le operazioni disponibili
Preprocessing
Distribuzioni in funzionedella classe selezionata
Apertura Dataset
Attributi del dataset
Tipo di Filtro da applicare
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
International Plan
Churn No Yes
False. 2664 186
True. 346 137
Nella tabella è mostrato il risultato della cross-tabulazione.
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) non-churners; 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
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
Night Charge 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
CustServ Calls 9 0 1,562856 1,315294 1
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 condottaAccount 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.
top related