[ESERCIZIO IN CLASSE]
Per darvi un esempio, possiamo prendere il file excel che ho caricato sul portale e-learning
(phone_raw_data). Questo è un dataset dove, per ogni riga, abbiamo un’istanza, un cliente in cui
e alla fine abbiamo un’informazione che,
sono presente diverse informazioni (es. al tempo t-2 con
un attributo binario, dice se il cliente è fedele o meno). Prendiamo in considerazione timein e
numout: timein è la durata in secondi delle chiamate ricevute nel periodo t-2, numout è il numero di
chiamate inserite nel periodo t-2. Quindi abbiamo il numero di chiamate e secondi come unità di
misura -> naturalmente sono unità di misura diverse. (Nello screen di sopra i valori sono già stati
resi comparabili tra loro). Si può misurare facilmente il valore minimo o massimo di questi attributi
su excel, con un’equazione. Per timein il minimo è 0, ad esempio. Trovare il massimo e il minimo
valore per un attributo con excel è semplice: basta usare una semplice equazione.
Quando dobbiamo applicare una funzione di excel, dobbiamo selezionare una cella, andare
digitare “=” seguito dalla
nella barra della formula, funzione che vogliamo usare. In questo
caso la funzione che dobbiamo usare è min (quando selezioniamo la funzione compare una
breve descrizione: “restituisce il valore minimo di un insieme di valori”). Dopo aver scelto
la funzione, avremo una finestra dove comparirà ciò che si aspetta questa funzione, ovvero
una lista di valori tra i quali dovrà trovare il minimo (torno alla tabella e seleziono tutta la
colonna del timein per trovarne il valore minimo). Dopodichè, premendo invio, avremo il
risultato che, in questo caso, corrisponde a 0, ovvero in questa colonna il valore minimo
corrisponde a 0.
Nella barra della formula vedremo che tra le coordinate di due celle ci sarà un “:”, che
N.B. tutto l’intervallo di celle che vanno da quella
indica che la formula è stata applicata per
prima dei due punti fino a quella dopo i due punti. Ad esempio, in questo caso, per trovare il
minimo della colonna timein, il programma ha analizzato i valori da C2 a C24 (C2:C24).
Bisogna fare molta attenzione alle diverse unità di misura: la normalizzazione è un compito
fondamentale per la preparazione dei dati. Se non normalizzassimo, i risultati di un
algoritmo quale, ad esempio, la regressione lineare potrebbero essere influenzati dalla
diversità delle due scale di misura.
[FINE ESERCIZIO IN CLASSE]
Un’altra attività che dobbiamo svolgere quando iniziamo un’analisi (tutte queste operazioni vanno
fatte prima di svolgere l’analisi vera e propria) è ridurre i dati perché i dataset, come quello che
stiamo usando, non sono reali: non si inizia un processo di data mining se non abbiamo un
sufficiente quantitativo di dati. Quando facciamo un’analisi dobbiamo cambiare i parametri, le
impostazioni ed, in alcuni casi, è utile ridurre i dati, ottenendo un campione, e fare su di esso
l’analisi per capire quale sia la migliore configurazione dell’algoritmo. Dopo averla trovata,
possiamo tornare indietro, prendere l’intero dataset e compiere nuovamente l’analisi (con i
Analizzare l’intero dataset è un’attività molto lunga che può
parametri e le impostazioni trovate).
durare ore: in genere, dovendo compiere vari tentativi con diversi parametri, conviene farla su dei
campioni (dei subset) e, solo una volta decisi i parametri e le impostazioni, possiamo estendere i
risultati all’intera popolazione. Effettuare un campionamento vuol dire selezionare un sottogruppo
di clienti che sia rappresentativo dell’intera popolazione (il campione deve essere statisticamente
comparabile con la popolazione).
Abbiamo due soluzioni:
Simple sampling: prendiamo l’intero dataset e consideriamo solo una percentuale dell’intera
1) popolazione (ad es. abbiamo 1.000.000 di osservazioni e decidiamo di considerare solo il
30% della popolazione (il campione verrà scelto casualmente));
2) Stratified sampling: riduciamo la popolazione iniziale ma preserviamo la percentuale del
dataset originale in relazione ad un attributo categorico considerato critico se facciamo
un’analisi sul nostro dataset e vogliamo campionarlo, dovremo specificare qual è l’attributo
critico per noi (nel nostro caso la colonna churner) e il campione stratificato ci darà il 50 %
delle osservazioni, mantenendo le stesse proporzioni di istanze che appartengono al valore 0
e le stesse proporzioni di istanze appartenenti al valore 1. Quindi il sottogruppo risultante
avrà 11/12 istanze (dato che il dataset iniziale era composto da 24 istanze) ed il numero di
clienti churner e leale sarà comparabile con la popolazione iniziale. In altri termini con il
campionamento stratificato manteniamo le distribuzioni di istanze rispetto ad un attributo
target se non applichiamo il campionamento stratificato non siamo sicuri che il campione
risultante avrà le stesse proporzioni di utenti appartenenti ad un valore e utenti appartenenti
all’altro valore.
Quindi il primo topic della riduzione dei dati riguarda la raccolta di un campione degli utenti,
mentre il secondo riguarda la selezione delle caratteristiche, degli attributi.
Abbiamo due tipi di problemi: il primo è che abbiamo troppe istanze e quindi dobbiamo ricorrere al
campionamento, mentre il secondo è che possiamo avere troppi attributi (troppe colonne) e la
soluzione è selezionare solo le colonne che sono davvero utili per noi (ai fini della nostra analisi).
Supponendo di avere migliaia di colonne, non possiamo considerarle tutte, anche perché
sicuramente avremo attributi che non sono per niente utili ai fini della nostra analisi. Ad esempio, se
nel nostro dataset di clienti churner e loyal abbiamo il nome e il cognome (tra gli attributi) di un
utente, è utile per predire se l’utente in questione appartiene ai churner o ai loyal? Probabilmente
no, dato che non c’è nessuna correlazione tra il nome e il comportamento di un utente. Eliminare
questi attributi, in questo caso, può essere utile. Il problema è che selezionare quali sono le colonne
utili ed importanti e quali non lo sono è un compito difficile. Ci sono 3 diversi approcci per svolgere
questa selezione:
1) Filter methods: analizziamo tutti gli attributi e proviamo a selezionare i più rilevanti, i più
pertinenti per il nostro scopo (ad es. considerando il nostro dataset, dovremmo guardare gli
attributi uno ad uno e chiederci se sono importanti, necessari per il nostro scopo, che in
questo caso è classificare gli utenti tra churner e loyal. Quindi dovremmo chiederci se un
attributo può aiutarci a capire se un utente è churner o loyal).
Ad esempio, l’area magari c’è una correlazione tra la zona di residenza e il
comportamento dell’utente; numero di chiamate probabilmente posso predire se un
utente sta abbandonando o meno la company in base al numero di chiamate; nome
dell’utente posso eliminarlo in quanto non è un attributo utile alla mia analisi;
2) Wrapper methods: trova automaticamente un sottogruppo di variabili che conducono alla
massima precisione (leading to highest accuracy) nel nostro compito. In alcuni strumenti per
il data mining, ci sono dei filtri, algoritmi che permettono di individuare automaticamente
gli attributi più significativi rispetto alla classificazione del nostro target;
Embedded methods: la selezione degli attributi è inclusa (embedded) nell’algoritmo che
3) usiamo per svolgere la nostra operazione. Quindi, se stiamo effettuando una classificazione,
ci sono dei filtri che individuano automaticamente quali sono i migliori attributi (lo vedremo
direttamente nei risultati).
Vedremo meglio questi tre metodi usando Weka. Comunque, col primo approccio, dobbiamo
osservare e capire se gli attributi sono correlati con la classe obiettivo (target class); nel secondo ci
sono algoritmi che ci forniscono direttamente la lista degli attributi più pertinenti; col terzo
facciamo direttamente partire l’algoritmo e sarà lui stesso a selezionare gli attributi migliori ai fini
della nostra analisi.
Troveremo queste funzioni, operazioni in alcuni strumenti statistici: il PCA (Principal Component
Analysis) (strumento usato dall’ingegnere gestionale, che lavora nel marketing, per le mappe di
posizionamento), il cui scopo è ridurre il numero di attributi senza generare una perdita di
informazioni. Non tutti gli attributi sono utili e spesso avremo attributi correlati tra loro. Quando
due attributi sono correlati, usarli entrambi, piuttosto che uno solo dei due, non aggiunge alcun
ad esempio, abbiamo la data di nascità e l’età (attributi correlati) e li
valore alla nostra analisi. Se,
usiamo entrambi, non stiamo aggiungendo alcun tipo di informazione perché usare un attributo o
l’altro ci da le stesse informazioni quindi ne useremo solo uno (ed elimineremo l’altro) senza alcuna
perdita di informazioni. Il PCA è quindi un metodo per ridurre il numero di attributi, eliminando gli
attributi correlati tra loro, in quanto ridondanti.
Proviamo ad applicare questo metodo di riduzione dei dati al nostro dataset usando Weka. Noi
abbiamo poche istanze e pochi attributi quindi non avremmo bisogno di campionare le istanze e di
ridurre gli attributi ma lo faremo per esercitarci. Se vogliamo ridurre il numero di istanze (data
reduction) dobbiamo applicare un filtro (che sceglieremo dalla cartella dei filtri, che a sua volta si
divide nelle sottocartelle “unsupervised” e “supervised”). Nelle cartelle unsupervised e supervised
abbiamo le cartelle “attributes” ed “istances”: la prima contiene tutti i filtri che devo applicare per
gli attributi mentre la seconda contiene i filtri per le istanze (se voglio fare un campionamento per
ridurre il numero di istanze, dove dovrei andare per trovare un sampling filter? Probabilmente lo
troverò nella cartella delle istanze). In realtà troveremo due filtri per il campionamento delle istanze
(Resample filters), uno contenuto nella cartella supervised e l’altro nella cartella unsupervised.
Sapete perché? Cosa vi aspettare di ottenere se usate il Resample della cartella supervised?
Abbiamo detto che abbiamo due tipi di campionamento (simple e stratified), quale vi aspettate di
trovare in questo caso? Quello stratified perché questo resample appartiene alla cartella supervised e
se ci clicchiamo abbiamo una serie di opzioni che possiamo modificare la più importante
opzione è l’ultima: la dimensione percentuale del campione (sample size percent), in cui dobbiamo
specificare la dimensione percentuale del campione che vogl
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti presi a lezione di Modelli di e-business e business intelligence
-
Appunti presi a lezione di Modelli di e-business e business intelligence
-
Appunti presi a lezione di Modelli di e-business e business intelligence
-
Appunti presi a lezione di Modelli di e-business e business intelligence