NN zur Entdeckung des Kreditkartenbetrugs

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
Post Reply
Xenia
Posts: 3
Joined: Wed 3. Nov 2010, 16:01

NN zur Entdeckung des Kreditkartenbetrugs

Post by Xenia »

Hallo,
ich schreibe meine Diplomarbeit über Fraudmanagement im Kreditkartengeschäft und deren Präventionsmaßnahmen (darunter neuronalbasierte Maßnahme, die ich mit Hilfe von MemBrain simulieren möchte). Das Netz soll anhand der historischen Kreditkarten-Transaktionen (ca. 3000) das Verhalten der neuen identifizieren können.
Meine Überlegungen dazu sind folgende:
- 5 Input-Neuronen: Kartennummer, Betrag, Händler,Land, POS
- 3 Hidden-Neuronen (Faust-Regel)
- 1 Output-Neuron
Praktisch handelt es sich dabei um eine Klassifikation der Trx. "gute" ( mit 0 codiert) und "schlechte" (mit 100 codiert) die überwachte Lernmethode, die Ausgaben liegen beim Training dem Netz vor, gelernt wird mit dem BP-Verfahren bis der Fehler min. wird. Bitte teilen Sie mir mit, ob ich bis dahin richtig liege????
Und noch eine Frage bzgl. Datenskalierung: muss man weche vornehmen oder findet die normierung austomatisch im MemBrain statt?

Vielen herzlichen Dank vorab!
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: NN zur Entdeckung des Kreditkartenbetrugs

Post by Admin »

Hallo und herzlich willkommen!
Xenia wrote:Bitte teilen Sie mir mit, ob ich bis dahin richtig liege?
Prinzipiell ja. Wenn wir allerdings vom 'minimalen Fehler' sprechen, dann stimmt das nur, wenn es sich um den Fehler bzgl. eines Validierungsdatensatzes handelt, der nicht Teil der Trainingsmenge ist.
MemBrain bietet im Lesson Editor die Möglichkeit, einen Datensatz zufallsbasiert aufzuteilen, so dass man zwei getrennte Datensätze gewinnt, einen für das Training und einen für die Validierung. Beide lädt man in MemBrain in den Lesson-Editor, der Trainingssatz diesnt als Grundlage für das Training, wobei man während des Trainings sich immer schon den Fehler bezogen auf den Validierungsdatensatz anzeigen lassen kann. Wenn dieser minimal wird, sollte man das Training abbrechen.

Im Forum, unter 'Scripting' gibt es ein 'Basis-Skript' von MemBrain Nutzer 'Seppy', das das oben erwähnte Vorgehen unterstützt. Wenn Du also etwas programmieren kannst, dann kann das die Arbeit mit MemBrain sehr erleichtern.
Xenia wrote:Und noch eine Frage bzgl. Datenskalierung: muss man weche vornehmen oder findet die normierung austomatisch im MemBrain statt?
In MemBrain kann man jedem Ein- und Ausgangsneuron seinen eigenen Datenbereich zuweisen. Das geht über die Eigenschaften der Neuronen, dort Button 'Normalization'.
Diese Datenbereiche sollte man so klein wie möglich, aber auch so groß wie nötig wählen, also etwas 'Luft' für zukünftige, unbekannte Datenlassen.

Über die Auswahl der Eingänge kann ich wenig sagen, es kommt auf einen Versuch an, ob diese Eingangsgrößen sinnvoll sind. Besonders bei der Kartennummer sehe ich hier Probleme, da sie keine Abbilldung auf eine skalierbare Größe der Realität hat.

Viele Grüße
Thomas Jetter
Xenia
Posts: 3
Joined: Wed 3. Nov 2010, 16:01

Re: NN zur Entdeckung des Kreditkartenbetrugs

Post by Xenia »

Vielen Dank für Ihre schnelle Antwort,

wg. der Eingangsdaten werde ich mir noch Gedanken machen. Vielen Dank!
Verraten Sie mir bitte, mit welcher Formel die Daten in Membrain skaliert werden.
Die Ausgabe hab ich von 0 (für gute Trx) bis 1 (für schlechte Trx.) begrenzt, da es der Wertebereich einer logistischen Funktion ist. Kann ich die Ausgabe des Netzes als Risikoeintrittswahrscheinlichkeit interpretieren? z.B die Ausgabe von 0,789999 als 79% W-keit für Fraudeintritt????

Vielen Dank voraus!
Xenia
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: NN zur Entdeckung des Kreditkartenbetrugs

Post by Admin »

Xenia wrote:Verraten Sie mir bitte, mit welcher Formel die Daten in Membrain skaliert werden.
Die Ausgabe wird vom internen Wertebereich der Aktivierungsfunktion (hier also 0..1 für logistische Funktion) linear auf den Anwenderbereich umgerechnet. Wenn der Anwenderbereich auch 0..1 ist, dann kann man sich die Normalisierung und das entsprechende Häkchen in MemBrain übrigens auch ganz sparen...
Xenia wrote:Die Ausgabe hab ich von 0 (für gute Trx) bis 1 (für schlechte Trx.) begrenzt, da es der Wertebereich einer logistischen Funktion ist. Kann ich die Ausgabe des Netzes als Risikoeintrittswahrscheinlichkeit interpretieren? z.B die Ausgabe von 0,789999 als 79% W-keit für Fraudeintritt????
Ausgehend davon, dass die Trainingsdaten binär als Ausgangsvorgabe entweder 1 oder 0 enthalten (ist eingetreten oder nicht eingetreten), dann kann der Ausgang auf unbekannte Trainingsmuster durchaus 'analog', d.h. stufenlos betrachtet werden: Ein Wert nahe 0 bedeutet, dass das Netz 'sich ziemlich sicher ist', dass das Ereignis nicht eintreten wird, ein Wert bahe 1 bedeutet 'das Ereignis gilt aus Sicht des Netzes als wahrscheinlich'. Zwischenwerte bedeuten weniger eindeutige Aussagen, können aber nicht linear als Wahrscheinlichkeiten abgelesen werden. Es existiert hier keine direkte Umrechnung, denke ich.

Viele Grüße
Thomas Jetter
Xenia
Posts: 3
Joined: Wed 3. Nov 2010, 16:01

Re: NN zur Entdeckung des Kreditkartenbetrugs

Post by Xenia »

Vielen Dank erneut für Ihre Hilfe!

Dennoch ist mir nicht ganz klar, wie man ein Ergebnis statistisch aussagekräftig machen kann. Ich würde gerne der Ausgabe einen Irrtumswahrscheinlichkeitswert zuweisen, kann ich diesen aus dem Error Viewer entnehmen???? Z.B. der Fehler nach 1000 Lernschritte ist 0,0125 klein, d.h. das Netz irrt sich zu 1,25%, dass es sich um z.B. betrügerische Trx. handelt. Oder können die Ausreise ganz banal zur Grundgesamtheit prozentuel anteilig bestimmt werden. SInd meine Überlegungen richtig????
Ferner würde ich die Schranke Epsilon einführen, um das Vertrauensintervall aufzuzeigen und um die Ausgabe des Netzes leichte interprätieren zu können. Gibts es in MemBrain eine dafür geeignete Funktion, die dies umsetzt????

Vielen herzlichen Dank in Voraus!!!

Xenia
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: NN zur Entdeckung des Kreditkartenbetrugs

Post by TJetter »

Die Aussage, zu wie viel Prozent sich das Netz 'irrt' bzw. wie hoch die Trefferwahrscheinlichkeit ist, kann eigentlich nur basierend auf einer binären Einordnung der Validierungsergebnisse erzeugt werden.
D.h., die Ausgabe muss mit einem Schwellwert verglichen werden (z.B. 0.5) und dementsprechend in ein eindeutiges 'Ja' oder 'Nein' konvertiert werden.

Das kann man z.B. in Excel machen, nachdem man die Validierungsergebnisse in MemBrain aufgezeichnet und exportiert hat. Am Einfachsten macht man das über ein Skript, wie es z.B. in der MemBrain Hilfe im Abschnitt 'Validating Your Net' beschrieben ist. Wenn man will kann man die Auswertung auch direkt in ein Skript programmieren und sich somit die manuelle Auswertung in Excel o.ä. sparen.

Des Weiteren ist eine neue MemBrain Version in Arbeit, die es erlauben wird, eigene Fehlerfunktionen zu definieren. Damit könnte man dann z.B. eine Fehlerfunktion auch so codieren, dass sie 'binäre Abweichler' zählt und sich somit die binäre ENtscheidungsqualität des Netzes direkt am Fehlergraphen ablesen lässt.
Thomas Jetter
Post Reply