Logistische Regression in SAP HANA

In diesem Artikel wird beschrieben, wie die logistische Regression zur Vorhersage von Kreditkartenbetrug verwendet werden kann. Ziel soll es sein, dem Leser die entscheidenden Unterschiede zwischen linearer und logistischer Regression näher zu bringen, und eine beispielhafte Umsetzung der logistischen Regression in SAP HANA zu zeigen und mögliche Fehlerquellen aufzudecken.

Theorie

Bei der Fraud Detection handelt es sich um ein Klassifikationsproblem. Das Ergebnis ist eine Binäre Variable mit 0 für „Nicht Fraud“ und 1 für „Fraud“. Eine erste Idee für die Modellierung des Problems, könnte die Adaption einer einfachen linearen Regression auf dieses Problem sein.


Die Konstruktion der linearen Regression ist der Zusammenhang zwischen einem Satz unabhängiger Variablen θ und einer quantitativen abhängigen Variablen y(θ). Im Fall einer Klassifikation (Fraud vs. Nicht Fraud) kann der Output der Funktion als eine Wahrscheinlichkeit p(θinterpretiert werden, welche schätzt ob eine Transaktion ein Betrugsversuch ist. Bei genauerer Betrachtung wird aber klar, dass eine angepasste Grade bei bestimmten Feature Kombinationen dazu führt, dass der Output <0 oder >0 ist.

Abbildung 1: Output Lineare vs. Logistische Regression

Dies ist in Bezug auf Wahrscheinlichkeiten schwer zu interpretieren. Um dies zu vermeiden, kann die logistische Regression verwendet werden. Die logistische bzw. sigmoid Funktion berechnet sich durch


Diese bildet den Feature Raum θ auf das Intervall [0,1] ab. Der Output der logistischen Regression ist die Wahrscheinlichkeit p(θ) das eine Transaktion ein Betrugsversuch ist. Der Parameter a und der Parametervektor wird über eine numerische Optimierung an die Trainingsdaten angepasst. Dies geschieht in einem iterativen Prozess, welcher den rechenintensiven Faktor darstellt. Ist das Modell trainiert, d.h. die Parameter sind bestimmt, kann das Modell zur Vorhersage von Betrugswahrscheinlichkeiten genutzt werden. Die Berechnung ist dann nur eine Verkettung von Multiplikationen und Additionen, welche relativ wenig Rechenleistung erfordern.

Umsetzung im Application Function Modeler

Das Klassifikationsmodell wurde mit dem in SAP HANA implementierten Application Function Modeler (AFM) erstellt. Dieser stellt mithilfe der grafischen Programmierung eine effiziente und übersichtliche Möglichkeit bereit, den Datenfluss zu modellieren. Die „Drag and Drop“- Funktionalität ermöglicht ein bequemes platzieren und ordnen der genutzten Funktionsknoten.

Zunächst sollte der Datensatz auf eine mögliche Imbalance untersucht werden, da Betrugsdaten oftmals eine ausgeprägte Ungleichverteilung besitzen. Hierbei stellt sich heraus, dass nur 0,2% der Daten fraudulent sind. Für ein erfolgreiches Trainieren des Algorithmus ist es deshalb essentiell, die Klassenverteilung anzupassen, da das Modell sonst darauf trainiert werden würde, möglichst gut Non-Fraud zu erkennen. Zum Balancieren des Datensatzes, bietet es sich an, diesen in zwei Klassen (Fraud und Non-Fraud) aufzuteilen. Danach kann ein ausgeglichener Datensatz, mittels Sampling erstellt werden.

Zum Erzeugen der Samples wird das in der Kategorie „PAL“ vorhandene Sampling-Element, das in der Unterkategorie Preprocessing zu finden ist, verwendet. Im Samplingknoten kann ausgewählt werden, welcher Anteil des Inputdatensatzes zufällig für den Outputdatensatz ausgewählt wird. Die gesampelten Daten werden nun zum Trainieren des Modells verwendet. Im Anschluss daran erhält man neben der Result-Tabelle, die später in das Prediction Modell fließt, auch eine Tabelle, die das „Akaike Information Criterion“ (AIC) des Modells angibt. Das AIC kann zum Vergleichen verschiedener Modelle verwendet werden. Je niedriger das AIC, desto besser performt das angewandte Modell.

Nach der Modellanpassung kann ein Test des Modelles auf den restlichen Fraud-Daten durchgeführt werden. Wichtig ist nun, dass die Variable „CLASS“, die zum Trainieren des Modells genutzt wurde, in diesem Schritt herausgefiltert wird, da dies die abhängige Variable ist, die anhand der unabhängigen Variablen ermittelt werden soll. Als Ergebnis erhält man die klassifizierten Datensätze.

Herausforderungen und Lösungen

Im Folgenden wird auf Schwierigkeiten und Lösungen eingegangen, die sich während der Modellierung ergeben haben.

In Abb.1 ist das erste Flowgraph-Modell zu sehen. Problematisch waren hier die im markierten Bereich liegenden Views, welche auf der blau Markierten Tabelle basieren. Da diese als Data Source für das Prediction-Modell deklariert wurden, werden sie beim Start des Modells geladen und enthielten nicht die bei der Ausführung des Flowgraphs generieten Daten.

Abbildung 2: fehlerhafte Einbindung von Views

Für die Problemlösung gibt es zwei Möglichkeiten, wie die logistische Regression richtig modelliert werden kann. Erstens, das Trainingsmodell und das Prediction-Modell in zwei Flowgraphen aufteilen (wie in Abb. 2 und 3 zu sehen). Dann würde das Modell aus Abb. 1 funktionieren, da die Daten persistiert wären.

Abbildung 3: Training Flowgraph

Abbildung 4: Prediction Flowgraph

Oder aber, man ersetzt die zwei Views aus Abb. 1 durch zwei Join-Elemente (Abb. 4), wodurch Training- und Prediction-Modell in einem Flowgraph abgebildet werden können.

Abbildung 5: Views durch Joins ersetzt

Die Implementierung des Samplings im Trainingsschritt hat zur Folge, dass sich der Trainings- und Testdatensatz beim Ausführen des Flowgraphs ändern. Dies führt zu leicht unterschiedlichen Ergebnissen in der Modellanpassung. Für einen produktiven Case ist es notwendig, die Datensätze erst zu Sampeln und diese Sample zu persistieren, um im Umkehrschuss reproduzierbare Ergebnisse zu erzielen.

Auswertung

Doch wie gut performt nun die logistische Regression in diesem Beispiel? Wie viele Fraud-Fälle wurden richtig zugeordnet? Aufschluss geben die in Abb. 5 folgenden Metriken.

Abbildung 6: KPIs

  • Accuracy: Mit welcher Wahrscheinlichkeit ist die Klassifikation richtig?
  • Precision: Mit welcher Wahrscheinlichkeit ist die klassifizierte Variable tatsächlich richtig klassifiziert?
  • Recall: Die Wahrscheinlichket mit der Fraudfälle richtig Klassifiziert werden.

In nachfolgenden Blog-Beiträgen wird die Performance der logistischen Regression mit der des Random-Forest und der Support Vector Machine verglichen.

Getagged mit: , , , , , , , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*