Kreditkortsvindel er et løbende problem i bankbranchen. Med den kontaktløse betalingsmulighed og e-handel er det endnu lettere at misbruge en anden persons kreditkort.
Kreditkortsvindel er dyrt for bankbranchen, da de har brug for at registrere kontantstrømmen og om muligt spore pengene tilbage. Hvis dette ikke er muligt skal banken derimod tilbagebetale det tabte beløb til sin kunde. I 2017 udgjorde kreditkortsvindel 52.6 mio. i Danmark (1). Selvom der udvikles ny teknologi til bekæmpelse af kreditkortsvindel, bliver teknikker såsom site-kloning, falske købmandssteder, skimming og phishing desuden mere avancerede (2).
En sag for machine learning
Ved at se på mønstre er det muligt at forudsige, om et kreditkort bliver misbrugt. Nogle vigtige funktioner kan være transaktionsmængden, transaktionernes kontante sum og geografi.
Det givne svindelproblem er et binært klassificeringsproblem, hvor outputlaget kun har en neuron. Modellen skaber en sandsynlighed, der indikerer et konfidensniveau for den givne forudsigelse. Hvis output er 1, er du sikker på, at det givne kreditkort misbruges, mens en værdi på 0 indikerer en normal transaktion. I Patidar & Sharma indikerer et output under 0,6 eller 0,7, at transaktionen er normal, mens output ovenfor viser et behov for yderligere undersøgelse (2).
Et ubalanceret dataset - praktisk eksempel
ASom et praktisk eksempel på, hvordan vi kan hjælpe med at detektere kreditkortsvindel, er datasættet fra Kaggle brugt. Datasættet indeholder transaktioner over en to-dages periode i september 2013. Tabellen herunder viser datasættet:
n | 284,807 |
---|---|
n_ok | 284,315 (98.828%) |
n_svindel | 492 (0.172%) |
Heldigvis er datasættet, der er samlet over to dage, meget ubalanceret med antallet af svindel transaktioner, værende minoriteten, der kun bidrager med 0,122% af stikprøvestørrelsen.
Nulhypotesen vil være, at transaktionen er i orden, mens den alternative hypotese er, at transaktionen ikke er i orden. Hvis vi bare ville have en model til at forudsige korrekt så mange gange som muligt, kunne vi bare træne modellen til altid at give svaret: Transaktion ok. Vi ville faktisk have en model, der muligvis kunne forudsige korrekt 99,8% af tiden. Dog er vi interesseret i at opdage falske positiver og specifikt falske negativer, vil denne tilgang ikke løse problemet.
H_0 Sand | H_0 Falks | |
---|---|---|
Accepter H_0 | Korrekt | Type II fejl (beta) Falsk Negative |
Afvis H_0 | Type I fejl (alpha) Falsk Positive | Korrekt |
Når vi træner en model, er det ofte fordelagtigt at have hver klasse ligeligt repræsenteret. Dette problem kan løses på forskellige måder:
- Undersampling
- Oversampling
- Kombinerede klassemetoder
Når vi prøver at afbalancere datasættet, skal kun træningsdatasættet transformeres, hvorimod valideringen og testdatasættet distribueres som det sande datasæt er distribueret. Det er meget let at transformere trænings datasættet, ved brug af oversampling strategien, og det kan udføres med to linjer kode:
|
|
Inden Oversampling | Efter Oversampling | |
---|---|---|
X_train | 182276, 29 | 182276, 29 |
y_train | 182276, 1 | 182276, 1 |
X_validate | 45569, 29 | 45569, 29 |
y_validate | 45569, 1 | 45569, 1 |
X_test | 56962, 29 | 56962, 29 |
y_test | 56962, 1 | 56962, 1 |
I dette eksempel har vi designet et meget simpelt neuralt netværk for at vise, hvor stærkt et netværk som dette kan være. Netværket består af kun 2 skjulte lag.
|
|
Den følgende model har en ROC AUC-score på 0,985 og indikerer, at modellen har et potentiale til at opdage de falske negativer og falske positiver. Derudover har det en træn, validering og test nøjagtighed på 0,99. Dette er fantastisk! Modellen fungerer meget godt på både trænings-, test- og valideringsdatasæt. Derudover forudsiger det nøjagtigt, når det introduceres til nye data.
Brug af et simpelt neuralt netværk viser sig at være et stærkt værktøj til at detektere kreditkortsvindel. Imidlertid giver brug af en logistisk regressionsmodel eller en long short-term memory maskinlæringsmodel faktisk en score på næsten 99%.
Endelig, hvis vi vender modellen om og ser på indgående transaktioner i stedet for udgående transaktioner, kan vi desuden være i stand til at opdage svindel fra f.eks. hvidvaskning af penge og svindel på et personligt og virksomhedsniveau. Dette kan potentielt hjælpe banker og revisorer med at opdage svindel blandt deres mange klienter ved kun at få dem til at se på de tilfælde, som modellen genererer en stor sandsynlighed for og dermed har brug for yderligere undersøgelser.
// Maria Hvid, Machine Learning Engineer @ neurospace
Referencer
[1] dankort.dk
[2] Patidar & Sharma (2011) Credit Card Fraud Detection Using Neural Network. International Journal of Soft Computing and Engineering (IJSCE) (1) NCAI2011 (p. 32-38)