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