Menu
CoddyTech

Kreditkartenbetrug im Blick

Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 49 von 51.

Das Kartenteam einer Kreditgenossenschaft kann täglich nur wenige Zahlungen von Hand überprüfen. Im letzten Monat versteckten sich die Betrugsfälle an den Rändern:

Die 300 Kartenzahlungen des letzten Monats, Tageszeit auf der horizontalen Achse und Betrag nach oben auf einer logarithmischen Skala: Graue legitime Zahlungen füllen den mittleren Tagesbereich, rote Kreuze markieren 12 gemeldete Betrugsfälle, winzige nachts und sehr große zu jeder Tageszeit

Doch niemand erkennt einen Betrugsfall, bis sich Wochen später ein Kunde beschwert. Daher müssen zwei Detektoren die ungewöhnlichen Zahlungen ganz ohne Labels finden.

Die Beschwerden dieser Woche sind eingegangen. Welcher Detektor hätte mehr davon erkannt?

challenge icon

Aufgabe

Schwer

Die 400 Zahlungen dieser Woche stehen in payments.csv; das Programm liest ein, wie viele davon das Team prüfen kann: budget.

  1. Skaliere die vier Merkmale.
  2. Markiere budget Zahlungen mit einem Isolation Forest (random_state=0) und mit einem Local Outlier Factor (20 Nachbarn).
  3. Öffne erst jetzt fraud: Gib aus, wie viele Betrugsfälle jede Liste erfasst hat und wie viele ehrliche Zahlungen das Team damit prüfen musste.
  4. Sende dem Team die Liste, die mehr Betrugsfälle erfasst hat: the isolation forest's list oder the local outlier factor's list, andernfalls either list, they tie.

Für den letzten Monat und ein Budget von 10:

Budget: 10 of 300 payments
Isolation forest: caught 6 of 12 frauds, 4 honest payments checked
Local outlier factor: caught 10 of 12 frauds, 0 honest payments checked
Send the team: the local outlier factor's list

Probier es selbst

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

# Eine Zeile pro Kartenzahlung; fraud ist 1 bei Zahlungen, die Kunden erst Wochen später gemeldet haben
payments = pd.read_csv("payments.csv")
features = ["amount_eur", "hour", "km_from_home", "minutes_since_last"]

# Wie viele Zahlungen das Team manuell überprüfen kann
budget = int(input())

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler