di
Merlo Fabrizio1, Porcedda Riccardo1, Radaelli
Sommario
È possibile prevedere se una transazione è fraudolenta basandosi sulle variabili della transazione stessa?
Per rispondere alla domanda di ricerca sono stati implementati sette metodi di classificazione di tipo supervisionato, utilizzando varie metodologie di validazione e sampling per massimizzare le performance dei modelli di machine learning utilizzati. Dato che la variabile Class (che indica se la transazione è o meno fraudolenta) è sbilanciata, è stato necessario mettere a punto, applicando metodologie adeguate, delle soluzioni che tenessero conto di questa peculiarità del dataset
sono stati tentati ulteriori approcci che non si curano a monte della capacità dei modelli di classificare correttamente le istanze, ma che ottengono ciononostante risultati di grande interesse: in questi tentativi si fa uso di Cost Sensitive Classifiers, algoritmi di Anomaly Detection quali l’Isolation Forest e modelli ensemble.
Machine Learning Transazioni Classi Sbilanciate Classificazione
1. Introduzione
furto di dati personali è un reato penale riconosciuto in tutto il mondo e in Italia, secondo l’art. 493 ter del Codice Penale, “Chiunque, al fine di trarne profitto per sé o per altri, indebitamente utilizza, non essendone titolare, carte di credito o di pagamento, ovvero altro documento analogo che abiliti al prelievo di denaro contante o all'acquisto di beni o alla prestazione di servizi, è punito con la reclusione da uno a cinque anni e con la multa da 310 euro a 1.550 euro”. È in questi casi che si parla di frode: si tratta dell'utilizzo illegale dei dati di una carta di credito senza che il titolare ne sia a conoscenza. Una carta o un numero di carta rubato è la causa di una transazione fraudolenta. Dopo che il titolare si accorge del pagamento da lui non effettuato sull'estratto conto, ha il diritto di aprire una disputa contattando la sua banca. La banca o la società emittente della carta investiga e restituisce il denaro al titolare. In questo caso la transazione viene identificata come fraudolenta. Per dare un’idea dei costi di questo reato, nel 2018 si è raggiunta a livello mondiale una quota pari a 25 miliardi di dollari, nell’area SEPA costituiscono lo 0,038% delle transazioni totali e in Italia lo 0,016%. (vedi Ardizzi, Bonifacio, Painelli)
2. Presentazione del Dataset
Il set di dati utilizzato contiene le transazioni effettuate con carte di credito nel settembre 2013 da titolari di carte europei.
Questo dataset presenta le transazioni avvenute in due giorni, in cui si sono registrate 492 frodi su 284.807 transazioni totali: il set di dati è dunque molto sbilanciato, con la classe positiva (la classe delle operazioni fraudolente) che rappresenta lo 0,172% di tutte le transazioni.
Questi dati sono stati ottenuti tramite la piattaforma Kaggle
2.1 Descrizione delle variabili
Il dataset contiene 284.807 righe, con 31 variabili numeriche, di cui 28 (reali e nominate con le sigle V1, V2, …, V28) sono il risultato di una trasformazione PCA (Principal Component Analysis). La ragione di questa trasformazione è l’obbligo di riservatezza da parte delle banche, le quali non possono pubblicare dati sensibili.
Le uniche features che non sono state trasformate con PCA sono:
• Time: variabile intera contenente i secondi trascorsi tra ogni transazione e la prima transazione nel set di dati;
• Amount: variabile reale contenente l’importo della transazione;
• Class: assume valore 1 in caso di frode e 0 in caso contrario.
Sfortunatamente, avere un numero così alto di variabili trasformate ci impedisce di poter fornire una soddisfacente interpretazione dei risultati. Ciononostante, si vuole comunque affrontare il problema per comprendere se effettivamente sia possibile (e se sì, con quali metodi) prevedere se una transazione è fraudolenta o meno.
3. Preprocessing
Prima di procedere all’apprendimento automatico, si è ritenuto necessario creare delle nuove variabili a partire dalla feature Time. Le considerazioni sono le seguenti:
• Potrebbe risultare utile discretizzare i dati esprimendoli non solo in secondi, ma anche in minuti e ore;
• Le transazioni di questo dataset avvengono nell’arco di due giorni, pertanto potrebbe
risultare utile considerare non il tempo trascorso dalla prima transazione del dataset, ma il tempo dalla prima transazione della giornata (ad esempio, il classificatore potrebbe scoprire che le transazioni fraudolente si concentrano in particolari momenti del giorno).
Non conoscendo, invece, l’origine delle variabili trasformate tramite PCA, non è stato possibile effettuare a monte una decisione su quali variabili sono da considerarsi utili o meno all’apprendimento.
4. Metodologia
4.1 Modelli Applicati
In questo studio sono state implementate diverse tecniche di classificazione con lo scopo di individuare la più adatta sulla base dei risultati:
• Naїve Bayes Tree (implementato dal nodo Weka NBTree): un metodo di classificazione probabilistico ibrido, basato sull’applicazione del teorema di Bayes (con una forte assunzione di indipendenza tra le variabili) e sugli alberi di decisione
• J48 Decision Tree (implementato dal nodo Weka J48): un albero di decisione (metodo euristico) basato sull’algoritmo ID3 sviluppato dal team Weka. Si tratta di un algoritmo ricorsivo che trova per ogni attributo i punti di split che minimizzano l’entropia (massimizzando quindi l’information gain).
• Random Forest: si tratta di un modello di ensemble learning per classificazioni e regressioni che costruisce più alberi di decisione utilizzando un subset delle features composto ogni volta in maniera casuale In questo studio si usa il nodo Weka Random Forest, settando a 100 il numero degli alberi di decisione.
• Logistic regression (implementato dal nodo Weka Logistic): è un modello regressivo di classificazione che usa la funzione logit per stimare la probabilità a posteriori che un’osservazione appartenga alla classe positiva.
Prevedere le transazioni fraudolente: Il caso studio delle carte di credito europee• Support-Vector Machine (SVM), il cui obiettivo è quello di trovare la retta di separazione delle classi che massimizza il margine tra le classi stesse, dove con margine si intende la distanza minima dalla retta ai punti delle due classi. I nodi utilizzati sono SVM Spegasos, SMO PolyKernel e SMO Puk:
o SVM SPegasos: implementato dal nodo Weka SPegasos sulla piattaforma Knime, è una variante stocastica del metodo Pegasos di Shalev Shwartz che sostituisce globalmente tutti i valori mancanti e trasforma gli attributi nominali in valori binari. Normalizza anche tutti gli attributi, quindi i coefficienti nell'output sono basati sui dati normalizzati.
o SVM PolyKernel: implementato dal nodo Weka SMO (Sequential Minimal Optimization) della piattaforma Knime, usa il metodo dei kernel per trovare margini di separazione delle classi non lineari (polinomiali).
o SVM-Puk: anche quest’ultimo è stato implementato tramite il medesimo nodo Weka SMO
In questo caso il kernel è basato sulla distribuzione di Pearson di tipo VII ( PUK sta per Pearson VII function based Universal Kernel).
4.2 Bilanciamento del Dataset
Come anticipato, il dataset è altamente sbilanciato e ciò porta a problemi durante la fase di apprendimento, poiché qualsiasi algoritmo sarà portato a classificare similmente ad uno ZeroRule Classifier (ovvero si assegna ad ogni istanza la classe più frequente)
Per ovviare a ciò, sono stati applicati due metodi per il bilanciamento del dataset: Undersampling e Oversampling.
4.3 Undersampling
L’Undersampling è una tecnica di campionamento che, oltre a ridurre la dimensione del dataset prelevando da una popolazione un suo sottoinsieme, rimuove un numero di istanze della
classe maggioritaria tale per cui il campione finale abbia entrambe le classi ugualmente popolate. Esistono diversi algoritmi che raggiungono questo scopo (tramite k nearest neighbour, clustering o tecniche quali i cosiddetti Tomek Links), ma in questo studio faremo uso di una semplice selezione casuale.
Sulla piattaforma KNIME, questo processo è implementato dal nodo Equal Size Sampling
Questo metodo ha però delle controindicazioni:
• Il più evidente è che più è importante lo sbilanciamento, più perdiamo dati;
• Anche in caso di sbilanciamenti poco accentuati, una selezione casuale delle istanze può comportare la perdita di dati utili all’apprendimento;
• Un numero minore di righe causa un aumento della varianza nei classificatori applicati.
4.4 Oversampling
L’altro metodo utilizzato all’interno del progetto per bilanciare il dataset è l’Oversampling.
In questo caso lo scopo è creare nuovi dati della classe minoritaria simili a quelli in nostro possesso La tecnica usata è SMOTE (Synthetic Minority
Over sampling Technique) e l’algoritmo funziona nella maniera seguente: si sceglie un’osservazione della classe meno rappresentata, vengono selezionate un certo numero K di osservazioni tra le più vicine (viene fatto con un K nearest neighbors), si eseguono le interpolazioni tra queste e l’osservazione iniziale e si inseriscono N punti in maniera casuale nei segmenti definiti.
L’algoritmo si ripete fino a quando non si ottiene lo stesso numero di istanza per entrambe le classi In questa sede, lo SMOTE è stato implementato usando l’omonimo nodo su KNIME.
Dato però il dataset in questione, con solo lo 0,172% delle osservazioni appartenente alla classe positiva, non appare né utile né opportuno creare un dataset con poco meno del 50% dei dati sintetizzati
Per questa ragione si è deciso di includere nel campionamento solo il 10% delle istanze create da SMOTE. Dunque il dataset finale non sarà bilanciato, ma avrà comunque una proporzione delle classi meno aspra che potrà essere d’aiuto ai classificatori.
Prevedere le transazioni fraudolente: Il caso studio delle carte di credito europeeNota aggiuntiva su undersampling e oversampling: entrambi i tipi di campionamento sono stati eseguiti esclusivamente sulla partizione di training. Se questi campionamenti fossero stati eseguiti prima della divisione del dataset in training, validation e test set, allora i risultati finali (probabilmente anche eccellenti) sarebbero stati distorti poiché frutto di un overfitting
5. Misure di performance
Si procede ora alla scelta delle metriche di valutazione per i metodi di classificazione sopra presentati. Non si tratta di una scelta facile o tantomeno banale, soprattutto se si ragiona sulla natura del caso di studio. Sicuramente, poiché si ha a che fare con un dataset sbilanciato, non si userà l’Accuracy come misura di performance (che sarebbe altamente distorta e costituirebbe più una misura della proporzione fra le classi, piuttosto che una misura di bontà del classificatore).
Una metrica spesso utilizzata nei problemi con class imbalance è l’AUC, ovvero l’area sotto la curva ROC: se pari a 0, il classificatore predice la classe 1 per la classe reale 0 e viceversa, se pari 0.5 assegna le classi in maniera casuale e se pari a 1 siamo di fronte ad un classificatore perfetto, qualunque sia la soglia scelta È considerata una metrica robusta, poiché basata su altre due metriche ottime per questo genere di problemi, ovvero il True Positive Rate (TPR o Recall) e il False Positive Rate (FPR).
Ad ogni modo, è difficile rendersi conto delle differenze fra i classificatori quando l’AUC è compresa fra 0.9 e 1 (come si è verificato nel corso di questo studio), pertanto si preferisce adottare le seguenti metriche:
• Recall
Precision
• Cohen’s Kappa
L’indice Recall misura la frazione di record positivi correttamente predetti dal modello di classificazione e la formula è:
=
La Precision determina la frazione di record che effettivamente si rileva positiva nel gruppo che il classificatore definisce come classe positiva e la formula è:
Il Cohen’s Kappa è un coefficiente statistico che rappresenta il grado di accuratezza e affidabilità in una classificazione statistica. Attraverso la matrice di confusione è possibile valutare questo parametro:
(����)
(����)
(����)
dove:
Pr(a) è la somma della prima diagonale della matrice divisa per il totale dei giudizi:
(����)
Pr(e) è il prodotto dei totali positivi sommato a quelli negativi, il tutto diviso per il quadrato del totale dei giudizi:
La Cohen’s Kappa può essere pensata come un’accuratezza che tiene conto dello sbilanciamento delle classi (in casi estremi come il problema che si sta studiando, lo sbilanciamento fa tendere il valore della Kappa ad un’altra misura nota: l’F1 Score).
Nei risultati verrà inclusa anche l’accuratezza. Non da intendersi come metrica di performance (per i motivi sopra spiegati), ma come broader view per avere contezza di come e se cambia la classificazione per entrambi i tipi di transazione. Può essere inoltre utile per una più facile interpretazione del Cohen’s Kappa.
6. Classificazione e risultati
Come anticipato, i modelli illustrati nella metodologia sono stati stimati sui dataset undersampled e oversampled.
Per il dataset undersampled, si è applicata una 10 Folds Cross Validation al fine di ottenere una stima delle soglie ottimale, usando ogni osservazione 9 volte per il training e una volta per la validation, per poi usare queste ultime sul test set e ottenere le metriche di performance.
6.1 Undersampling
Prevedere le transazioni fraudolente: Il caso studio delle carte di credito europeeLogistic Regression 0.99 0.833 0.293 0.996 0.432
J 48 0.94 0.895 0.02 0.926 0.037
SVM SPegasos 0.01 0.889 0.053 0.972 0.097
SVM PolyKernel 0.01 0.864 0.197 0.994 0.319
SVM Puk 0.01 0.858 0.128 0.99 0.221
Tabella 6 1: Metriche di performance per i sette modelli (Dataset bilanciato con Undersampling)
Dalla Tabella 6.1 si apprende che:
• Random Forest risulta essere il modello con i maggiori valori di Precision e Cohen’s kappa, ma con il peggior valore di Recall con 0.79
• Il modello J 48, con un valore pari a 0.02 e 0.037, è il peggiore rispettivamente per Precision e Cohen’s kappa
• In generale, con la sola eccezione del Random Forest, i classificatori non performano bene su un dataset undersampled. Ciò accade per le ragioni enunciate nella sezione 4.3.
Nell’approccio oversampling, invece, si è deciso di optare per una validazione con semplice Holdout, poiché risulta computazionalmente impegnativo applicare una Cross Validation con un numero così alto di istanze da classificare (e con uno SMOTE da applicare ad ogni ciclo).
6.2 Oversampling
Modello Soglia Recall Precision Accuracy Cohen’s kappa
NB Tree
Random
Logistic
J
SVM
le transazioni fraudolente: Il caso studio
carte
credito europee
SVM PolyKernel 0.01 0.833 0.771 0.999 0.801
SVM Puk 0.01 0.84 0.795 0.999 0.816
Tabella 6.2: Metriche di performance per i sette modelli (Dataset bilanciato con Oversampling)
Dalla Tabella 6.2 si apprende che:
• Random Forest risulta essere il modello con i maggiori valori di Recall, Precision e Cohen’s kappa
• Il modello NB Tree, con un valore pari a 0.79, è il peggiore per Recall
• Invece, SVM SPegasos risulta essere il peggior classificatore per Precision e Cohen’s kappa, al punto che ne risente persino l’Accuracy, anche se di poco.
Dati i migliori risultati ottenuti nell’approccio Oversampling, si è deciso di operare su questo una feature selection per verificare se una riduzione dimensionalità del dataset possa portare a risultati ugualmente soddisfacenti, ma con uno sforzo computazionale evidentemente minore.
Il metodo scelto è quello dei Multivariate Filters, i quali prendono in considerazione sottoinsiemi di attributi (al limite anche tutti) e selezionano quelli scorrelati tra di loro, ma fortemente associati con la variabile di classe
In questo studio si usa una Correlation Feature Selection (CFS) implementata tramite il nodo Weka AttributeSelectedClassifier con metodo di ricerca BestFirst.
Anche qui, per i motivi già illustrati, si è deciso di optare per una validazione con Holdout.
Gli attributi selezionati sono 10: V3, V4, V7, V10, V11, V12, V14, V16, V17 e Minutes
6.3 Oversampling con Feature Selection
Prevedere le transazioni fraudolente: Il caso studio delle carte di credito europee
SVM SPegasos 0.01 0.827 0.687 0.999 0.75
SVM PolyKernel 0.01 0.833 0.692 0.999 0.756





SVM Puk 0.01 0.846 0.506 0.998 0.632
Tabella 6.3: Metriche di performance per i sette modelli (Dataset bilanciato con Oversampling+ Feauture Selection)
Dalla Tabella 6.3 si apprende che:
• Random Forest risulta essere il modello con i maggiori valori di Precision e Cohen’s kappa, ma con il peggior valore di Recall.
• Il modello SVM Puk, con valori pari a 0.506 e 0.632, è il peggiore rispettivamente per Precision e Cohen’s kappa, ma risulta avere il miglior valore di Recall (0.846).
L’eliminazione di ben 20 attributi sembra non influire pesantemente sulle performance dei modelli scelti.
E se la soluzione fosse invece non preoccuparsi delle classi?
Si può affrontare il tema delle transazioni fraudolente senza preoccuparsi di dover fare una classificazione?
Potremmo trarne un guadagno anche in termini di tempo di training e classificazione?
Da qui la scelta di operare con altri due approcci: minimizzazione dei costi e ricerca di anomalie
Prima di tutto, data la grandezza del dataset (sia per numero di righe che per dimensionalità) e l’obiettivo di ottenere un training più veloce, si è deciso di operare una discretizzazione delle features (trasformandole quindi da variabili reali a variabili categoriali) sia con metodi non supervisionati, sia con metodi supervisionati:
• Auto-binner (Equal frequency): nodo messo a disposizione da Knime che crea le ripartizioni in modo tale per cui ogni categoria contenga lo stesso numero di osservazioni;
• Auto-binner (Equal width): nodo messo a disposizione da Knime che crea le ripartizioni in modo tale per cui ogni categoria abbia la stessa ampiezza;
• CAIM binner: un algoritmo che trova il numero minimo di ripartizioni massimizzando l’interdipendenza fra gli attributi e la classe da prevedere.
Figura 6.1 Boxplot della differenza tra Cohen’s kappa con featurs selection e senza feuturs selection dei modelli con Oversampling
Come si può osservare nella figura modello SPegasos addirittura ne giova, mentre lo stesso non si può dire per la SVM
7. Come non preoccuparsi della classe
Finora si sono adottati metodi che in qualche modo dovevano eliminare o sintetizzare dati affinché i classificatori non si comportassero male con una classe positiva estremamente rara.
Successivamente, si applicano i modelli di apprendimento Cost Sensitive J48 Classifier e Isolation Forest
Un Cost Sensitive Classifier non ha come obiettivo la massimizzazione dell’accuratezza o di altre metriche di performance, ma la minimizzazione di un costo definito a partire da quella che viene appunto detta matrice dei costi: come la matrice di confusione, si hanno le classi reali nelle righe e le classi predette nelle colonne, ma ogni cella contiene un costo associato a quella classificazione.
La minimizzazione dei costi coincide con la massimizzazione dell’accuratezza solo quando i costi sulle diagonali sono identici.
Nel workflow KNIME in questione si usa il nodo Weka CostSensitiveClassifier, con modello J48 e la seguente matrice dei costi:
• Ai True Negatives si associa un costo nullo, in quanto la classificazione è corretta e la banca non ha nulla da notificare;
• Nel caso dei True Positives, si associa un ipotetico costo amministrativo per l’invio di un alert al cliente;
• Nel caso dei False Positives si associa un costo pari a 3, equivalente al costo amministrativo dell’alert più una minima penalità dovuta ad un intaccamento della fiducia da parte del cliente per via del falso allarme;
• Infine, ai False Negatives si associa come costo la media degli amount delle transazioni fraudolente (poiché questa è la stima di quanto la banca perde in risarcimenti per ogni frode non rilevata).
7.1 Cost Sensitive Classification
Binning Soglia Recall Precision Accuracy Cohen’s kappa
No Binning 0.99 0.753 0.762 0.999 0.757
CAIM Binning 0.99 0.728
Equal Frequency Binning
Equal Width Binning
Tabella
1:
Dalla Tabella
apprende
• Il modello senza Binning ha i valori di Precision e Cohen’s kappa maggiori rispetto agli altri modelli.
• Il valore peggiore per quanto
•
modello con Equal Frequency Binning ha
valori di Precision e Cohen’s kappa peggiori, ma risulta avere il miglior valore
Dopodiché, data l’estrema rarità della classe positiva, si è seguito l’approccio della anomaly detection tramite Isolation Forest Questo algoritmo partiziona ricorsivamente le osservazioni (selezionando casualmente una feature e scegliendo poi, sempre casualmente, un punto di split compreso fra il massimo e il minimo), fino a isolarle Queste partizioni possono essere viste appunto come un albero e il numero di splits equivale alla distanza percorsa prima di ottenere l’isolamento dell’istanza.
Minore è la distanza percorsa (mean path length), maggiore è la probabilità dell’osservazione di essere un’anomalia.
L’algoritmo è implementato
dal nodo H2O Isolation Forest Learner (più efficiente di Weka).
Si noti, in riferimento a quanto detto sopra, che in questo caso il valore di soglia non corrisponde alla probabilità di appartenere alla classe positiva, ma al valore massimo della mean path length (scalata al range [0,1]) per cui un’istanza viene classificata come anomalia (e dunque, si spera, appartenente alla classe positiva).
7.2 Isolation Forest
No Binning 0.47 0.37 0.331 0.998 0.349
CAIM Binning 0.43 0.469 0.76 0.999 0.58
Equal Frequency Binning
Equal Width Binning

0.3 0.062 0.013 0.99 0.019
0.59 0.475 0.322 0.997 0.383
Tabella 7 2: Anomaly Detection sulle features discretizzate
Dalla Tabella 7.2 si apprende che:
Recall appartiene
modello
Equal Width
• Il modello con CAIM Binning risulta essere quello con i maggiori valori di Precision e Cohen’s kappa
• Il modello con Equal Width Binning, scelta una soglia pari a 0.5, è il migliore per Recall
• Invece, il modello con Equal Frequency Binning risulta essere il peggior classificatore per Recall, Precision e Cohen’s kappa
7.3 Bag of Forests
L’obiettivo della classificazione delle transazioni fraudolenti dovrebbe essere quello di saper agire in maniera tempestiva e anche di aggiornarsi in tempi abbastanza brevi (perlomeno servono trainings rapidi ogni giorno, aggiungendo i dati ottenuti nella giornata passata). Per questo motivo oversampling e categorizzazioni come il CAIM Binning (computazionalmente importanti) non sono scelte ideali, nonostante i risultati mostrati sopra. Si propone qui un altro approccio denominato “Bag of Forests”: si tratta di un sistema di ensemble learning nel quale Cost Sensitive J48 Classifier, Isolation Forest e Undersampled Random Forest vengono allenati simultaneamente (con un 10 Folds Cross Validation), per poi compiere le previsioni su un medesimo test set. Le previsioni vengono infine comparate e si associa all’istanza la classe prevista da almeno due dei classificatori.
Recall Precision Accuracy Cohen’s kappa
0.747 0.877 0.999 0.806
Tabella 7.3: risultati di Bag of Forests
Come si può evincere dalla tabella 7.3, i valori delle metriche di performance sono molto promettenti e superiori ai risultati mostrati dai singoli modelli che vengono qui messi insieme.
le transazioni fraudolente: Il caso studio delle carte di credito europee
8. Conclusioni e sviluppi futuri
Prima domanda di ricerca
Il trattamento dello sbilanciamento dei dati può essere d’aiuto alla classificazione delle transazioni?
Considerando i valori restituiti dai metodi di classificazione scelti, si evince che bilanciando le classi con il metodo di Oversampling, campionando solo il 10% delle istanze create da SMOTE, si riescono ad ottenere dei valori alti per le variabili di Precision, Recall e Cohen’s Kappa (Tabella 6.2). Inoltre, applicando la feature selection sul metodo sopracitato, si può affermare che i valori delle metriche non vengono pesantemente influenzate, o addirittura migliorano, e quindi anche applicando uno sforzo computazionale minore i risultati restano soddisfacenti.
Discorso diverso per quanto riguarda l’Undersampling, escludendo il Random Forest che è l’unico modello degno di nota per performance.
Seconda domanda di ricerca Potrebbe essere preferibile usare approcci alternativi che mantengono il dataset sbilanciato? Si è osservato che utilizzare approcci alternativi come la minimizzazione dei costi e l’anomaly detection porta a buoni risultati senza andare minimamente a modificare il dataset in ingresso. Addirittura, questi risultati migliorano ulteriormente ragionando in termini di Ensamble Learning, come si è visto con la Bag of Forests.
Uno sviluppo futuro di questa ricerca potrebbe non solo concentrarsi sui singoli algoritmi di apprendimento automatico, ma approfondire anche quelle che sono le infrastrutture e i metodi adottati dalle istituzioni bancarie per raccogliere i dati sulle transazioni e prevedere le frodi, considerando quindi l’evoluzione nel tempo dell’infrastruttura stessa, generando un modello concettuale più realistico (vedi Dal Pozzolo).
9. Sitografia e Bibliografia
9.1 Sitografia
- Kaggle: https://www.kaggle.com/ Dataset: https://www.kaggle.com/mlg ulb/creditcardfraud
Knime: https://www.knime.com/ Cohen’s kappa: https://it.wikipedia.org/wiki/Kappa_di_Cohe n
Articolo 494 ter: https://www.brocardi.it/codice penale/libro secondo/titolo vii/capo iii/art493ter.html Undersampling: https://machinelearningmastery.com/under sampling algorithms for imbalanced classification/
9.1 Bibliografia
“Le frodi con carte di pagamento: andamenti globali ed evidenze empiriche sulle frodi online in Italia”, di Guerino Ardizzi, Elisa Bonifacio e Laura Painelli, Questioni di Economia e Finanza.
Dal Pozzolo, Andrea & Boracchi, Giacomo & Caelen, Olivier & Alippi, Cesare & Bontempi, Gianluca. (2017). Credit Card Fraud Detection: A Realistic Modeling and a Novel Learning Strategy. IEEE Transactions on Neural Networks and Learning Systems. PP. 1 14. 10.1109/TNNLS.2017.2736643.