Wprowadzenie i motywacja

Wykrywanie oszustw w R

Bart Baesens

Professor Data Science at KU Leuven

Instruktorzy

picture_Bart.png

Wykrywanie oszustw w R

Instruktorzy

picture_BartTim.png

Wykrywanie oszustw w R

Instruktorzy

picture_BartTimSebastiaan.png

Wykrywanie oszustw w R

Czym jest oszustwo?

Oszustwo to przestępstwo rzadkie, przemyślane, niepostrzeżenie ukryte, ewoluujące w czasie i często starannie zorganizowane, występujące w wielu typach i formach.

wolf_in_sheeps_clothing

Wykrywanie oszustw w R

Wpływ oszustw

  • Oszustwa są rzadkie, ale koszt ich niewykrycia może być ogromny!
  • Przykłady:
    • Organizacje tracą 5% rocznych przychodów z powodu oszustw
    • Straty firm z tytułu oszustw przekraczają 3,5 bln USD rocznie
    • Firmy kartowe tracą ok. 7 centów na każde 100 USD transakcji
    • Oszustwa stanowią 5–10% wypłacanych kwot w ubezpieczeniach majątkowych
Wykrywanie oszustw w R

Rodzaje oszustw

  • Pranie pieniędzy
  • Oszustwa czekowe
  • Oszustwa kartą kredytową
  • Oszustwa celne
  • Fałszerstwo
  • Kradzież tożsamości
  • Oszustwa ubezpieczeniowe
  • Oszustwa hipoteczne
  • Oszustwa niedostarczenia
  • Oszustwa internetowe
  • Oszustwa gwarancyjne
  • Uchylanie się od podatków
  • Oszustwa telekomunikacyjne
  • Kradzież zapasów
  • Oszustwa biletowe
  • Oszustwa tranzytowe
  • Oszustwa przelewowe
  • Oszustwa odszkodowawcze
Wykrywanie oszustw w R

Kluczowe cechy skutecznych modeli analityki oszustw

  • Dokładność statystyczna

robinhood

Wykrywanie oszustw w R

Kluczowe cechy skutecznych modeli analityki oszustw

  • Dokładność statystyczna
  • Interpretowalność

minorityreport

Wykrywanie oszustw w R

Kluczowe cechy skutecznych modeli analityki oszustw

  • Dokładność statystyczna
  • Interpretowalność
  • Zgodność z regulacjami

regulatory

Wykrywanie oszustw w R

Kluczowe cechy skutecznych modeli analityki oszustw

  • Dokładność statystyczna
  • Interpretowalność
  • Zgodność z regulacjami
  • Wpływ ekonomiczny

dagobert

Wykrywanie oszustw w R

Kluczowe cechy skutecznych modeli analityki oszustw

  • Dokładność statystyczna
  • Interpretowalność
  • Zgodność z regulacjami
  • Koszt ekonomiczny
  • Uzupełnianie podejść eksperckich technikami data-driven

manmachine

Wykrywanie oszustw w R

Wyzwania modelu wykrywania oszustw

  • Nierównowaga klas
    • np. w oszustwach kartą kredytową zazwyczaj < 0,5% przypadków oszustw

haystack

Wykrywanie oszustw w R

Wyzwania modelu wykrywania oszustw

  • Nierównowaga klas
    • np. w oszustwach kartą kredytową zazwyczaj < 0,5% przypadków oszustw
  • Efektywność operacyjna
    • np. w oszustwach kartą kredytową czas decyzji < 8 sekund

flash

Wykrywanie oszustw w R

Wyzwania modelu wykrywania oszustw

  • Nierównowaga klas
    • np. w oszustwach kartą kredytową zazwyczaj < 0,5% przypadków oszustw
  • Efektywność operacyjna
    • np. w oszustwach kartą kredytową czas decyzji < 8 sekund
  • Unikanie nękania uczciwych klientów

goodcustomer

Wykrywanie oszustw w R

Niezrównoważone dane

  • Po poważnej burzy firma ubezpieczeniowa otrzymała wiele roszczeń

    • Fraudulent claims are labeled with 1 and legitimate claims with 0
  • Odsetek przypadków oszustw w danych można określić za pomocą funkcji

    • table() i prop.table()
  • prop.table(table(...)) do określenia proporcji oszustw

prop.table(table(fraud_label))
     0      1
0.9911 0.0089
Wykrywanie oszustw w R

Wizualizacja nierównowagi za pomocą wykresu kołowego

labels <- c("no fraud", "fraud")
labels <- paste(labels, round(100 * prop.table(table(fraud_label)), 2), "%")
pie(table(fraud_label), labels, col = c("blue", "red"),
      main = "Pie chart of storm claims")

stormclaims

Wykrywanie oszustw w R

Macierz pomyłek

Stosowana do oceny modelu wykrywania oszustw:

confusionmatrix

Wykrywanie oszustw w R
  • Załóżmy, że nie jest stosowany żaden model detekcji — wszystkie roszczenia są uznawane za legitymowane:
predictions <- rep.int(0, times = nrow(claims))
predictions <- factor(predictions, levels = c("no fraud", "fraud"))
  • Funkcja confusionMatrix() z pakietu caret:
library(caret)
confusionMatrix(data = predictions, reference = fraud_label)
             Reference
 Prediction    0   1
            0 614  14
            1   0   0                                   
 Accuracy : 0.9777
Wykrywanie oszustw w R

Całkowity koszt niewykrycia oszustw: przykład roszczeń

  • Całkowity koszt oszustwa definiowany jako suma kwot fraudulentnych roszczeń
  • Całkowity koszt przy braku wykrywania oszustw:
    > total_cost <- sum(claim_amount[fraud_label == "fraud"])
    > print(total_cost)
    
2301508
Wykrywanie oszustw w R

Czas na ćwiczenia!

Wykrywanie oszustw w R

Preparing Video For Download...