DMC 2005


Ergebnisse auf den trainingsdaten, zum Vergleich jeweils 10-fach CV

Baseline Ergebnisse

Trivialer Classifier

also keine Betrüger.

Correctly Classified Instances       22518               94.1782 %
Incorrectly Classified Instances      1392                5.8218 %
Total Cost                         -302970


=== Confusion Matrix ===

     a     b   <-- classified as
 22518     0 |     a = nein
  1392     0 |     b = ja

Nichtdeterministischer Classifier

rät für jeden Kunden die Klassenzugehörigkeit, natürlich richtig ;-)

ER = 0.0 % (logisch)
Score = 340554 (somit obere Schranke)

was sagt uns das? wir brauchen alle nicht zum nächsten Meeting kommen, da Thomas ja nur Scores von mindestens 400000 akzeptiert ;-)

Andre

- Alle Daten unter Berücksichtigung von Iljas Holdout-Set und 5fach-Crossvalidation
- Die Klassifikatoren sind dem Score-Ergebnis nach geordnet.

MaxEnt

- Vorverarbeitung:
hauptsächlich Normierung, Geburtsdatum ausgelassen, binäre Features für Zahlungsart, Feature "Liefer- und Rechnungsanschrift identisch" ausgelassen,
Gültigkeitszeit der Kreditkarte ausgelassen, zwei zusätzliche binäre Features für Session-Time (für sehr niedrige und sehr hohe Zeiten),
binäre Features für beide Mahnstufen
ER = 5.84% (schlechter als Baseline)
Score = 315329 (+12359 gegenüber Baseline, -25225 gegenüber Optimum)

Logistic (WEKA)

Die Vorverarbeitung ist identisch wie bei MaxEnt.
Score = 315138 (+12168 gegenüber Baseline, -25416 gegenüber Optimum)

SVM (libsvm)

Die Vorverarbeitung ist identisch wie bei MaxEnt.
Score = 315072 (+12112 gegenüber Baseline, -25472 gegenüber Optimum)

Neuronale Netze (WEKA)

Multilayer-Perceptron Implementierung von WEKA mit Standardeinstellungen, mit anderen Parametern, oder besser noch einer anderen nicht-WEKA Implementierung, werde ich es auch noch versuchen.
Wiederum identische Vorverarbeitung.
Score = 310315 (+7345 gegenüber Baseline, -30239 gegenüber Optimum)

k-Nearest-Neighbor

für k=6 und Vorverarbeitung wie zuvor
Score = 309235 (+6265 gegenüber Baseline, -31319 gegenüber Optimum)

Tobias

Naive Bayes (Weka)

Binäre Features hinzugefügt für Zahlungsmethoden, Kartenart, diskretisierte Bestellungsuhrzeit, Artickegruppierung in Anfangsziffer.

Score = 303515 , also kaum Verbesserung 
Error = 6.57%

Normalisierung/weka.replaceMissingValues bringen keine nennenswerte Verbesserung

Durch hinzufügen der Merkmale für signifikante Kombinationen von binären Features kann der Score stark verbessert werden, allerdings steigt auch die Fehlerrate.

Score = 309145
Error = 10.46%

Mit dem Kostensensitiven Metaclassifier steigt die Score nochmal um ca 2000, aber die Fehlerrate....

Score = 311904
Error = 27.96%

Ilja

Logistische Regression mit Netlab

---------------------------------
TOTAL SCORE w/o loss: 303549.000000
TOTAL error w/o loss: 5.814683
TOTAL SCORE w loss: 315803.000000
TOTAL error w loss: 25.572056
Vorverarbeitung: Binäre Features, equi-depth Histogramme

Score: * 0 62551.000000 * 1 63510.000000 * 2 63397.000000 * 3 63570.000000 * 4 63658.000000


Verwendete Attribute:

AGROUPX_normalized
ANUMMER_XX_continuous_EQ
ANUMMER_XX_continuous_EQ_20
ANUMMER_XX_EQ
ANUMMER_XX_Group_normalized
ANUMMER_XX_isMissing
ANZ_BEST_GES_isZERO
ANZ_BEST_isNot1
B_ALTER
B_EMAIL
B_GEBDATUM_MONTH_is2_10_12
B_GEBDATUM_YEAR_1930_1940
B_GEBDATUM_YEAR_1930_1950
B_GEBDATUM_YEAR_1950_1960
B_GEBDATUM_YEAR_1960_1970
B_GEBDATUM_YEAR_1970_1980
B_GEBDATUM_YEAR_1980_1990
B_GEBDATUM_YEAR_isFraudYear
B_GEBDATUM_YEAR_isMissing
B_TELEFON
CHK_CARD
CHK_COOKIE
CHK_IP
CHK_KTO
CHK_LADR
CHK_RADDATUM_LBEST_isMissing
DATUM_LBEST_MONTHSSINCE_EQ
FAIL_LORT
FAIL_LPLZ
FAIL_LPLZORTMATCH
FAIL_RORT
FAIL_RPLZ
FAIL_RPLZORTMATCH
FLAG_LRIDENTISCH
FLAG_NEWSLETTER
MAHN_AKT_isZero
MAHN_HOECHST_isGreaterOne
MAHN_HOECHST_isZero
NEUKUNDE
SESSION_TIME_EQ_4
SESSION_TIME_is1MIN
SESSION_TIME_isLESS3MIN
TAG_BEST
TAG_BEST_isWE
TIME_BEST_MINUTESsinceMIDNIGHT_EQ
WERT_BEST_0_16
WERT_BEST_100_400
WERT_BEST_16_70
WERT_BEST_70_100
WERT_BEST_EQ
WERT_BEST_GES_EQ
WERT_BEST_GES_isZERO
Z_CARD_ART_isEurocard
Z_CARD_ART_isVisa
Z_CARD_VALID_MONTHSREMAIN_EQ
Z_LAST_NAME
Z_LAST_NAME_isMissing
Z_LAST_NAME_YES
Z_METHODE_isKredit
Z_METHODE_isKunde
Z_METHODE_isRechnung

Buck

Trennung Neukunden / Altkunden

Alle: Wenige Attribute, bei Neukunden die für Neukunden irrelevaten Daten entfernt. Insbes. keine Aktikel-Daten. 10-fach CV auf Trainingsset ohne Holdout.

Attribute

Benutzte Attribute (arff-header):

Ergebnisse

Naive Bayes (mit Kerneln), Altkunden und Neukunden: 311888
Naive Bayes (mit Kerneln), Neukunden: 149483
Naive Bayes (mit Kerneln), Altkunden: 164555
                           Summe:     314035 (+2147 gegenüber nicht getrennt)
Leider sieht das bei Logistic Regression, unserem neuen Baseline nicht mehr so toll aus:
Logistic (Weka), Altkunden und Neukunden: 314751
Logistic (Weka), Neukunden: 149394
Logistic (Weka), Altkunden: 165035
                 Summe:     314429 (-322 gegenüber nicht getrennt) :-(

Neue Ergebnisse

noch mehr Features verbessern den Score, jetzt mit 5-fach CV:
Logistic (Weka), Altkunden und Neukunden: 316441
Logistic (Weka), Neukunden: 151457
Logistic (Weka), Altkunden: 164900
                 Summe:     316357 
damit verliere ich den thron an ilja ;)

MLP funktioniert auf dem Datenset sehr schlecht:

MLP (Weka), Altkunden und Neukunden: 302675
MLP (Weka), Neukunden: 147622
MLP (Weka), Altkunden: 153268
                Summe: 300890
(das hat natürlich mit weka nichts zu tun!)

Tobias W.

Alle Ergebnisse mit 5x CV und Costsensitive Classifier auf Trainingsdaten ohne Holdoutset

Ergebnisse auf unmodifizierten Daten

Naive Bayes: 307051
Naive Bayes mit Kernel densities: 307914
Decision Table: 313604

Ergebnisse auf Vorverarbeiteten Daten

Im Wesentlichen die von Daniel vorgeschlagenen Sachen, keine Einsetzung von missing values
Naive Bayes: 312176
Decision Tree (J48): 308791
Logistic: 314867
Reptree (schneller decision Tree): 312.010

Ergebnisse von manual backward elimination

Jeweils 5x-CV, Logistic, Cost-Sensitive, Trainingsdaten ohne Holdoutset
Alle Features, außer die großen Klassenfeatures TIME_BEST, DATUM_LBEST, B_GEBDATUM: 316.108

Nach ein paar Iterationen manueller backward elimination blieb dieses Featureset

ANUMMER.Group1ByNumber
ANUMMER.Group2ByNumber
ANUMMER.Group3ByNumber
ANUMMER.Group4ByNumber
ANUMMER.Group5ByNumber
ANUMMER.Group6ByNumber
ANZ_BEST_GES_isZERO
ANZ_BEST_GES.normalized
ANZ_BEST_isNot1
ANZ_BEST.normalized
B_EMAIL.numeric
B_GEBDATUM.ageclasses.numeric.normalized
B_GEBDATUM-MISSING.numeric
B_TELEFON.numeric
CHK_CARD.numeric
CHK_COOKIE.numeric
CHK_IP.numeric
CHK_KTO.numeric
CHK_LADR.numeric
CHK_RADR.numeric
DATUM_LBEST_MONTHSSINCE_EQ
DATUM_LBEST-TAGE_SEIT.normalized
FAIL_LORT.numeric
FAIL_LPLZ.numeric
FAIL_LPLZORTMATCH.numeric
FAIL_RORT.numeric
FAIL_RPLZ.numeric
FAIL_RPLZORTMATCH.numeric
FLAG_NEWSLETTER.numeric
MAHN_AKT_isZero
MAHN_AKT.normalized
MAHN_HOECHST_isGreaterOne
MAHN_HOECHST.normalized
NEUKUNDE.numeric
SANITY_CHKCARD_VS_ZMETHODE
SANITY_CHKKTO_VS_ZMETHODE
SESSION_TIME_is1MIN
SESSION_TIME_isLESS3MIN
SESSION_TIME-NORMALIZED-0..1
TAG_BEST-NUMERIC-1..7.normalized
TIME_BEST_MINUTESsinceMIDNIGHT_EQ
TIME_BEST-MINUTES-SINCE-MIDNIGHT.normalized
WERT_BEST_0_16
WERT_BEST_100_400
WERT_BEST_16_70
WERT_BEST_70_100
WERT_BEST_EQ
WERT_BEST_GES-NORMALIZED-0..1
WERT_BEST-NORMALIZED-0..1
Z_CARD_ART.missing
Z_CARD_ART-MISSING-AS-NEW-VALUE
Z_CARD_ART.numeric.normalized
Z_LAST_NAME-MISSING-AS-NEW-VALUE
Z_LAST_NAME.numeric
Z_METHODE.kreditkarte
Z_METHODE.kundenkarte
Z_METHODE.lastschrift
Z_METHODE.rechnung

Score: 316.377

Helga

Scores auf meinen 42 magischen Features:

alles aus weka in 5-fold crossvalidation.

Auf dem Hold-out-set:

das arfffile mit den magischen features liegt in /work/dmlab


Offline DMC Log & Layout: Arnd Ißler, http://arndissler.net/