report

Transcript

report
Stats under the stars2
Celtic Team:
Anna Calissano, Alessandra Cabassi, Giorgio Paulon, Tobia Boschi e Jacopo Di Iorio
8 Giugno 2016
1 Introduzione ai dati e obiettivi
L’obiettivo del progetto è quello di prevedere e scoprire operazioni fraudolente come funzione delle transazioni bancarie (tramite carta di credito, atm, pos etc.) e i corrispondenti
attributi, quali la differenza di importo, luogo, anomalie di comportamento etc. Il dataset è
quindi formato da n osservazioni, ognuna delle quali rappresenta una transazione bancaria,
a cui sono associate 30 variabili, alcune flag categoriche ed altre numeriche, divisibili in tre
macro tipologie. Alcune variabili descrivono differenze transazionali in termini di importo,
altre descrivono anomalie comportamentali dell’utente, ed altre mettono a confronto le varie
carte di credito. Una prima importante osservazione sulla variabile Frode nel training set è
lo scarso numero di frodi sul numero di osservazioni complessivo (0.12%): questo fa pensare
ad una stima sbilanciata, vista la rarità dell’evento che stiamo prevedendo. Inoltre, si nota
una fortissima correlazione tra alcune variabili appartenenti allo stesso gruppo concettuale.
Come si nota dalla figura vi è un fenomeno di correlazione a blocchi: le variabili relative alle
anomalie di importo sono strettamente correlate tra loro, così come quelle relative alle anomalie della popolazione, o alle anomalie di comportamento. Un problema non indifferente
è rappresentato dalla alta numerosità di NA nella variabile Anomaly-import9, 24.7% delle osservazioni. Un semplice crop di questi NA diminuisce drasticamente il numero di frodi nel
training set, peggiorando di molto la possibile stima. Inoltre la variabile in esame è completamente scorrelata dalle altre: quindi non direttamente prevedibile dalle altre. La variabile che
descrive la data e l’ora in cui è avvenuta la transazione è interessante per verificare l’impatto
di determinati fattori come l’effetto settimana vs. weekend, mattina vs. sera oppure notte.
L’ora è stata quindi divisa in una variabile descrittiva della fascia oraria e in un label feriale e
non feriale. Sarebbe interessante confrontare l’effetto stagionale oppure geografico rispetto
alle frodi registrate, ma l’intervallo temporale del dataset non consente questo confronto. Si
è rilevato un alto numero di outlier, che per alcune variabili assumevano valori molto elevati rispetto alla media. Per selezionare gli outlier abbiamo scelto il quantile di ordine 99.9.
Quelli superiori alla soglia sono stati di conseguenza eliminati. Si noti che per alcune delle
1
ID_CARTA_BEN
FLAG_BEHAVIOUR_Anomaly1
IMPORTO
Population_Anomaly6
Population_Anomaly5
Population_Anomaly4
Population_Anomaly3
Population_Anomaly2
FLAG_BEHAVIOUR_Anomaly3
FLAG_BEHAVIOUR_Anomaly2
Anomaly_importo7
Anomaly_importo1
Population_Anomaly1
Population_Anomaly7
Population_Anomaly8
Anomaly_importo4
Anomaly_importo5
Anomaly_importo3
FLAG_BEHAVIOUR_Anomaly7
Anomaly_importo2
Anomaly_importo8
Anomaly_importo9
FLAG_BEHAVIOUR_Anomaly8
FLAG_BEHAVIOUR_Anomaly5
FLAG_BEHAVIOUR_Anomaly6
Anomaly_importo6
FLAG_BEHAVIOUR_Anomaly4
Correlation dati using Pearson
1
FLAG_BEHAVIOUR_Anomaly4
Anomaly_importo6
FLAG_BEHAVIOUR_Anomaly6
0.8
FLAG_BEHAVIOUR_Anomaly5
FLAG_BEHAVIOUR_Anomaly8
Anomaly_importo9
?
0.6
Anomaly_importo8
Anomaly_importo2
0.4
FLAG_BEHAVIOUR_Anomaly7
Anomaly_importo3
Anomaly_importo5
0.2
Anomaly_importo4
Population_Anomaly8
Population_Anomaly7
0
Population_Anomaly1
Anomaly_importo1
−0.2
Anomaly_importo7
FLAG_BEHAVIOUR_Anomaly2
FLAG_BEHAVIOUR_Anomaly3
−0.4
Population_Anomaly2
Population_Anomaly3
Population_Anomaly4
−0.6
Population_Anomaly5
Population_Anomaly6
−0.8
IMPORTO
FLAG_BEHAVIOUR_Anomaly1
?
ID_CARTA_BEN
−1
variabili il valore elevato degli outliers può essere collegato alla variabile risposta, perchè descrittiva proprio di fenomeni anomali. Per questo motivo la soglia del quantile non è stata
ulteriormente abbassata.
2 Scelta del Modello previsionale
Considerando l’elevato numero di predittori e soprattutto il loro significato celato, l’idea è
stata quella di utilizzare un modello di classifiazione supervisionata alla stregua delle tecniche a “foresta”: la tecnica di gradient tree boosting. Se consideriamo un training sample
xi
i = 1, . . . , n vogliamo effettuare classificazione sulla nostra variabile frode y i , definia-
mo come Θ = {ω j | j = 1 . . . p}, paramentri del modello lineare predittivo. La nostra funzione
obiettivo da minimizzare sara la seguente:
Ob j (Θ) = L(Θ) + Ω(Θ)
(1)
dove L(Θ) rappresenta una funzione di perdita (nel nostro caso distanza tra la frode effettiva
e quella stimata), mentre Ω(Θ) rappresenta una funzione di regolarizzazione che penalizza
l’eccessiva complesità del modello. Dato il generico modello base appena descritto, il risultato della regressione viene calcolata tramite i modelli ad albero (es. CART). Supponendo di
avere una famiglia F di dimesione K, la funzione obiettivo si può riscrivere come:
Ob j (Θ) =
n
X
l (y i , ŷ i ) +
i =1
K
X
k=1
2
Ω( f k )
(2)
1000
1500
2000
2500
3
0.60273972602739723
0.71641791044776126
0.69841269841269837
0.72222222222222221
5
0.6216216216216216
0.6216216216216216
0.6428571428571429
0.72727272727272718
7
0.69841269841269837
0.68493150684931514
0.76190476190476186
0.72463768115942018
9
0.72727272727272718
0.71428571428571441
0.70422535211267612
0.68493150684931514
L’equazione obiettivo viene quindi ottimizzata step by step grazie alla tecnica del gradiente.
Il metodo è stato implementato in linguaggio Python, usando il pacchetto
sklearn.ensemble.gradientboostingclassifier.
3 Risultati
Come già accennato in precendenza, la scelta è ricaduta su questo modello perché permette
una maggiore agilità in presenza di dati così correlati e difficilmente interpretabili. La performance del metodo dipende principalmente dal numero di alberi K , dal paramentro descrittivo della profondità degli alberi S e di quello di shrinkage α. La bontà del modello è stata
valutata via cross-validazione bilanciata sul training set (selezionando il 30% degli uni e degli
zeri come test set), variando i parametri di interesse. Il coefficiente descrittivo della bontà è il
parametro F1 relativo alla cross-validazione. Nella Tabella si nota che la performance migliore si ottiene in corrispondenza di un numero di alberi 2000, e 7 come parametro di profondità
dell’albero. Inoltre, facendo variare il arametro di shrinkage tra 0.05 e 1. Il parametro otimale
è 0.15. Una volta selezionati questi parametri ottimali abbiamo provato a variare determinate
caratteristiche del training set. A seguito di numerse simulazioni, si è scelto di utilizzare tutte
le variabili come input della funzione, tranne Anomaly-import9, e di considerare l’ora della
transazione come una variabile factor descrittiva dell’ora e un factor descrittivo del giorno feriale/festivo. Con questa configurazione si è raggiunto il risultato ottimale, poichè la migliore
selezione delle variabili è direttamente fatto all’interno della funzione di classificazione.
4 Conclusione
Il risultato ottenuto è abbastanza soddisfacente, tuttavia, si può supporre che prestando
maggior attenzione e tempo alla fase di preprocessing, il metodo potrebbe portare a risultati migliori. Le performance potrebbero decisamente migliorare nel caso in cui si gestisse la
variabile Anomaly-import9 in maniera accurata, trovando una soluzione all’elevato numero
di NA che essa presenta. Un altro fattore impattante è il basso numero di frodi nella variabile
risposta.
Truffatori Tremate!
3