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 zuvorScore = 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.572056Vorverarbeitung: Binäre Features, equi-depth Histogramme
Score: * 0 62551.000000 * 1 63510.000000 * 2 63397.000000 * 3 63570.000000 * 4 63658.000000
-
316686
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):-
'ANZ_BEST ' numeric
-
'ANZ_BEST_GES ' numeric
-
'B_EMAIL ' {ja,nein}
-
'B_GEBDATUM.ageclass0.numeric ' numeric
-
'B_GEBDATUM.ageclass1.numeric ' numeric
-
'B_GEBDATUM.ageclass2.numeric ' numeric
-
'B_GEBDATUM.ageclass3.numeric ' numeric
-
'B_GEBDATUM.ageclass4.numeric ' numeric
-
'B_GEBDATUM.ageclasses.numeric ' numeric
-
'B_GEBDATUM-MISSING ' {False,True}
-
'B_TELEFON ' {nein,ja}
-
'CHK_CARD ' {nein,ja}
-
'CHK_COOKIE ' {nein,ja}
-
'CHK_IP ' {nein,ja}
-
'CHK_KTO ' {nein,ja}
-
'CHK_LADR ' {nein,ja}
-
'CHK_RADR ' {nein,ja}
-
'DATUM_LBEST-TAGE_SEIT ' numeric
-
'FAIL_LORT ' {nein,ja}
-
'FAIL_LPLZ ' {nein,ja}
-
'FAIL_LPLZORTMATCH ' {nein,ja}
-
'FAIL_RORT ' {nein,ja}
-
'FAIL_RPLZ ' {nein,ja}
-
'FAIL_RPLZORTMATCH ' {nein,ja}
-
'FLAG_LRIDENTISCH ' {ja,nein}
-
'FLAG_NEWSLETTER ' {ja,nein}
-
'MAHN_AKT ' numeric
-
'MAHN_HOECHST ' numeric
-
'NEUKUNDE ' {ja,nein}
-
'SANITY_CHKCARD_VS_ZMETHODE ' numeric
-
'SANITY_CHKKTO_VS_ZMETHODE ' numeric
-
'SESSION_TIME ' numeric
-
'TAG_BEST-NUMERIC-1..7 ' numeric
-
'TIME_BEST-DAYTIME ' {Morgens,Nachmittags,Nachts,Abends}
-
'TIME_BEST-MINUTES-SINCE-MIDNIGHT ' numeric
-
'WERT_BEST ' numeric
-
'WERT_BEST_GES ' numeric
-
'Z_CARD_ART.amex ' numeric
-
'Z_CARD_ART.eurocard ' numeric
-
'Z_CARD_ART.kundenkarte ' numeric
-
'Z_CARD_ART.missing ' numeric
-
'Z_CARD_ART.visacard ' numeric
-
'Z_CARD_VALID ' numeric
-
'Z_CARD_VALID-MONTHS_LEFT ' numeric
-
'Z_LAST_NAME-MISSING-AS-NEW-VALUE ' {Missing,ja,nein}
-
'Z_METHODE.kreditkarte ' numeric
-
'Z_METHODE.kundenkarte ' numeric
-
'Z_METHODE.lastschrift ' numeric
-
'Z_METHODE.rechnung ' numeric
-
'TARGET_BETRUG ' {nein,ja}
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: 316357damit 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 valuesNaive 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 HoldoutsetAlle 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:
-
Logistic: 315362 (92,6% vom maximalen score)
-
Naive Bayes: 310678
-
Decision Table: 313220
-
Trees.J48: 307984
-
LogiBoost: -I 200 315519
alles aus weka in 5-fold crossvalidation.
Auf dem Hold-out-set:
-
Logistic 80599 (92,9 % vom maximalen score)
das arfffile mit den magischen features liegt in /work/dmlab