Datenanalyse zum Kündigungsverhalten von Stromabnehmern (SS 2004)

Gruppe 5

Name Funktion
Jens Jahnke Gruppenleiter, Arbeiter
Jörn Seidel Arbeiter
Sebastian Straus Arbeiter
Florian Scholz Arbeiter

Der Arbeitsplan der Gruppe.

Aufgabe

Ein Energieversorger möchte mit zielgerichteten Kundenbindungsmaßnahmen seine Kunden halten. Durch unsere Arbeit sollen treue Kunden von potentielle Kündiger unterschieden werden, um somit Letzteren bestimmte "Rabatte" zu gewähren, damit sie dem Unternehmen nicht verloren gehen.

Die Aufgabenstellung entspricht dabei der des Data Mining Cups aus dem Jahre 2002.

Überlegungen zur Datenvorverarbeitung

Im Vorfeld der Datenvorverarbeitung haben wir uns überlegt, daß die folgenden Attribute gestrichen werden könnten:

Allerdings war uns bewußt, daß wir diese Selektion im Laufe der Tests eventuell wieder ändern bzw. verwerfen würden.

Software

Bei der Suche nach Software haben wir uns auf die bekannten Programme SNNS und JavaNNS beschränkt, da diese im KI-Labor zur Verfügung stehen und zumindest der JNNS auch auf den heimischen Rechnern ohne Probleme lief.


Der JavaNNS in Aktion.

Datenvorverarbeitung

Zur Vereinfachung der Datenvorverarbeitung haben wir ein Skript in Python geschrieben, da klar war, daß eventuell im Verlaufe der Netztests eine nochmalige Modifizierung von Attributauswahl und Kodierung anstehen würde.

Zur Kodierung der Daten haben wir m.H. des Skriptes alle Werte auf den Bereich 0 bis 1 abgebildet, um die logistische Aktivierungsfunktion für die Neuronen nutzen zu können.
Desweiteren wurde das Attribut des Stromverbrauches (power_consumption) auf zwei Neuronen aufgeteilt und dabei klassiert.

Netzstruktur

Es wurden im Laufe der Tests verschiedenste Netzstrukturen getestet, allerdings haben wir uns auf Feed-Forward Netze beschränkt, obwohl sich Selbstorganisierende Karten (SOMs) vielleicht auch bewährt hätten. Das Netz, welches sich gegen Ende der Tests herauskristallisierte, ist folgendermaßen aufgebaut:

Schicht Neuronen Typ
1 33 Input
2 8+4 Hidden
3 1 Output

Das Netz

Nach mehreren Durchläufen kristallisierte sich das folgende Netz vom Fehlerwert her als brauchbar heraus.


Eine Abbildung des endgültigen Netzes.

Beim Training zeigte sich das fürs Verfahren Quickprop eine starke Schwankung der Fehlerkurve zu erkennen war ohne das sich diese normalisierte.
Backpropagation, Backpropagation mit Momentum und Resilent Propagation waren in ihren Ergebnissen etwa gleichwertig, wobei Resilent Propagation die besten Werte erziehlte. (siehe Abbildung)


Ein Bild der Fehlerkurve aus dem Trainingsverlauf.
Wie man sieht entspricht der relative Fehler hier in etwa dem Wert 0,2 während der Fehler der Validierungsmenge konstant knapp unterhalb von 0,1 liegt.

Lösung

Beim Betrachten der Analyzerausgabe (vgl. Abbildung) kam die Idee auf, dass die Verteilung der Werte der realen Verteilung von Kündigern und Nichtkündigern entspräche, nur eben in einem anderen “Maßstab”. Aufgrund der Ausgabe des Analyzers konnten wir abschätzen, dass der optimale Schwellwert irgendwo im Bereich um 0,2 liegt.


Die Ausgabe des Output Neurons für die ersten 500 Testmuster.

Nach einigen Tests konnten wir feststellen, daß der optimale Schwellwert für unsere Lösung bei 0,12 liegt.

Ergebnis


Die Ausgabe des Auswertungsprogramms für den Schwellwert 0,12.

Wie in obenstehender Abbildung zu erkennen liefert unser selbstgeschriebenes Auswertungsprogramm (Quelltext) einen Lift von 9328,812.

Somit hätte der Stromanbieter in diesem Anwendungsfall eine Kosteneinsparung von 9328 € zu verzeichnen. Die Ergebnisse sind nochmal in einer Tabelle zusammengefaßt.

Variable Wert Bedeutung
c 511 Anzahl der Kündiger, die angeschrieben werden (richtig erkannt).
nc 489 Anzahl der Kündiger, die nicht angeschrieben (erkannt) werden.
k 6710 Anzahl der Nichtkündiger, die nicht angeschrieben werden (richtig erkannt).
nk 2290 Anzahl der Nichtkündiger, die angeschrieben werden (falsch erkannt).

Interpretation und Bewertung

Die Anzahl der erkannten Kündiger ist in unseren Augen durchaus befriedigend, es wurden zwar nur 51,1% derselben korrekt klassifiziert, aber bei höheren c-Werten war die Fehlerrate immer inakzeptabel. Andererseits ist die Zahl der irrtümlich angeschriebenen Kunden nicht zu hoch (25,45%), was eine positive Kostenreduktion bedeutet.
Der sich insgesamt ergebende “Lift” von 9328 Euro ist jedoch sehr überzeugend, d.h. der Stromanbieter macht im Gegensatz zur “Nichts tun Strategie” 9328 EUR Gewinn.

Hochgerechnet auf die wahre Kundenanzahl von 1 Million ergibt sich damit ein Profit von rund 933 Tausend Euro (+ 933 TEUR).

Dateien