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.