Credit Card Fraud Detection
Author: Baidoc Patric David
Detectarea Fraudelor in Tranzactii cu Cardul de Credit
Scopul acestei probleme este identificarea tranzactiilor frauduloase cu cardul de credit pe baza unui set de date real, anonim. Problema reflecta un scenariu din lumea reala, unde datele sunt puternic dezechilibrate si tranzactiile frauduloase sunt rare.
Setul de date
Proiectul utilizeaza doua fisiere CSV:
train.csv- setul de date pentru antrenaretest.csv- setul de date pentru testare
| Coloana | Descriere |
|---|---|
| id | Identificator unic pentru fiecare tranzactie |
| Time | Numarul de secunde scurse de la prima tranzactie |
| V1 - V28 | Caracteristici anonimizate |
| Amount | Valoarea tranzactiei |
| Class | Variabila tinta (0 = tranzactie legitima, 1 = frauda) |
Nota: Coloana Class este disponibila doar in train.csv.
Observatie importanta: Setul de date este sever dezechilibrat, deci accuracy nu este metrica relevanta pentru evaluarea modelelor de clasificare.
Subtask-uri
Subtask 1 - Analiza statistica a tranzactiilor (10 puncte)
Determina cate tranzactii frauduloase au Amount mai mare decat media Amount a tranzactiilor legitime.
Raspunsul este un numar intreg.
Subtask 2 - Mahalanobis Distance (10 puncte)
Evalueaza cat de "anormale" sunt tranzactiile frauduloase folosind distanta Mahalanobis, care ia in considerare toate variabilele numerice simultan (Amount + V1-V28).
Pasi sugerati:
- Selecteaza toate tranzactiile frauduloase (
Class = 1) dintrain.csv. - Calculeaza vectorul mediu si matricea de covarianta a coloanelor numerice.
- Calculeaza distanta Mahalanobis pentru fiecare tranzactie.
- Raporteaza media distantelor Mahalanobis, rotunjita la 2 zecimale.
Subtask 3 - Detectarea fraudei (80 puncte)
Pentru fiecare tranzactie din test.csv, prezice eticheta de frauda:
1= frauda0= tranzactie legitima
Metrica principala: F1-score pe clasa 1.
| F1-score | Punctaj |
|---|---|
| F1 >= 0.85 | 80 puncte |
| F1 < 0.60 | 0 puncte |
| Intermediar | Scalare liniara intre 0 si 80 |
Formatul fisierului de submisie
Fisierul de submisie trebuie sa fie in format CSV cu urmatoarele coloane:
| Coloana | Descriere |
|---|---|
| subtaskID | Numarul subtask-ului (1, 2 sau 3) |
| datapointID | Identificatorul observatiei |
| answer | Raspunsul sau predictia |
Reguli:
- Subtask 1 si Subtask 2:
datapointID = 1(un singur raspuns). - Subtask 3: cate o predictie pentru fiecare tranzactie din
test.csv, cudatapointID= valoarea din coloanaid.
Exemplu:
subtaskID,datapointID,answer
1,1,42
2,1,0.27
3,227846,1
3,227847,0
3,227848,0
Nota: Rezolvarea acestei probleme nu necesita utilizarea arhitecturilor de tip Transformer.