Doku - Fakultät für Wirtschaftswissenschaften an der Hochschule

Transcription

Doku - Fakultät für Wirtschaftswissenschaften an der Hochschule
Fakultät für Wirtschaftswissenschaften
Projektbericht „Don’t get kicked“ - KNIME
Zur Veranstaltung
Business Intelligence
eingereicht von:
Birte Spitz (110127)
Mandy Schacht (110192)
Betreuer:
Wismar, den 20. Dezember 2011
Prof. Cleve
Inhaltsverzeichnis
Inhaltsverzeichnis ............................................................................................................... II
Abbildungsverzeichnis ...................................................................................................... IV
1.
Aufgabenstellung ......................................................................................................... 1
2.
Datenvorbereitung ....................................................................................................... 2
3.
Datenvorbereitung – Mandy Schacht .......................................................................... 3
3.1. Datensäuberung ........................................................................................................ 3
3.1.1.
Fehlende und inkonsistente Daten ................................................................... 3
3.1.2.
Ausreißer ......................................................................................................... 6
3.2.
3.2.1.
Dimensionsreduktion ........................................................................................ 6
3.2.2.
Aggregation ...................................................................................................... 7
3.3.
4.
5.
Datenreduktion ........................................................................................................ 6
Datentransformation ................................................................................................ 8
3.3.1.
Anpassung der Datumsangaben ...................................................................... 8
3.3.2.
Anpassung der Preisangaben .......................................................................... 8
3.3.3.
Berechnung abgeleiteter Werte ........................................................................ 9
3.3.4.
Kombination von Attributen .............................................................................10
Datenvorbereitung – Birte Spitz .................................................................................12
4.1.
Datenreduktion .......................................................................................................12
4.2.
Datensäuberung/-transformation ............................................................................14
4.3.
Neu berechnete Spalten .........................................................................................15
Data Mining - Umsetzung in KNIME ...........................................................................17
5.1.
Grundsätzlicher Aufbau ..........................................................................................17
5.2.
Naive Bayes ...........................................................................................................18
5.3.
Decision Tree .........................................................................................................19
5.4.
J48/WEKA..............................................................................................................20
II
5.5.
Beispiel der Vorgehensweise .................................................................................21
6.
Aufgetretene Probleme ...............................................................................................23
7.
Fazit ..............................................................................................................................25
8.
Anhang - Zeit- und Aufgabenplan ..............................................................................26
III
Abbildungsverzeichnis
Abbildung 1: Modellierung in KNIME ..................................................................................17
Abbildung 2: Daten Number to String .................................................................................18
Abbildung 3: Modellierung Naive Bayes..............................................................................19
Abbildung 4: Modellierung Decision Tree............................................................................20
Abbildung 5: Modellierung WEKA/J48 ................................................................................21
Abbildung 6: Gini-Index Verlauf ..........................................................................................22
IV
1. Aufgabenstellung
Beim Kauf eines gebrauchten Autos bei einer Auktion besteht das Risiko, dass das gekaufte
Auto Mängel aufweist. Geschieht dies, nennt man diese unvorteilhaften Käufe „kicks“.
Diese unvorteilhaften Käufe resultieren oft aus gefälschten Kilometerzählern, mechanischen
Problemen, die der Händler nicht erkennt, Problemen damit den Fahrzeugbrief vom
Verkäufer zu bekommen oder anderen unvorhergesehenen Problemen. Diese Autos können
nach den Transportkosten, Reparaturkosten und Marktverlusten beim Weiterkauf des
Fahrzeuges sehr kostenspielig für den Händler sein. Wenn herausgefunden werden kann,
bei welchen Autos ein höheres Risiko besteht, kann dies einen echten Mehrwert für den
Händler bedeuten, da diese stets versuchen die bestmögliche Auswahl des Bestandes für
den Kunden bereitzustellen.
Die Aufgabe ist zu prophezeien, ob es sich beim angebotenen Auto bei einer Auktion um
einen schlechten Kauf handelt.
1
2. Datenvorbereitung
Aufgabe ist das Treffen der Entscheidung ob das Erwerben eines Autos ein guter oder
schlechter Kauf ist. Diese Entscheidung soll anhand verschiedener Daten getroffen werden,
die in einer Excel-Datei zur Verfügung gestellt wurden. Damit die Daten in KNIME verarbeitet
werden
und
die
Ergebnisse
einheitlich
interpretierbar
sind
muss
zunächst
eine
Datenvorbereitung stattfinden.
Diese Datenvorbereitung spielt eine wichtige Rolle und nimmt einen Großteil des
Gesamtaufwandes ein. Dabei wird zwischen folgenden Klassen unterschieden:
•
Datenselektion und –integration
•
Datensäuberung
•
Datenreduktion
•
Datentransformation
Bei der vorliegenden Aufgabe „Don’t get kicked“ muss die erste Klasse „Datenselektion und
–integration“ nicht beachtet werden, da bei den bereitgestellten Daten kein Zusammenfügen
o. Ä. mehr notwendig ist.
Bei
der
Durchführung
der
Datenvorbereitung
wurden
im
Team
unterschiedliche
Schwerpunkte gesetzt um eine möglichst umfassende Bearbeitung zu ermöglichen und um
zu beobachten inwiefern sich die Ergebnisse unterscheiden.
Während Birte Spitz den Fokus ihrer Vorbereitungen auf die Datenreduktion gerichtet hat,
setzte
Mandy
Schacht
den
Schwerpunkt
eher
auf
die
anderen
Aspekte
der
Datenvorbereitung. Aus diesem Grund werden im Folgenden die Datenvorbereitungen der
Teammitglieder separat geschildert.
Der dazugehörigen Zeit- und Aufgabenplan wird im Anhang aufgeführt.
2
3. Datenvorbereitung – Mandy Schacht
3.1. Datensäuberung
3.1.1. Fehlende und inkonsistente Daten
In diesem Abschnitt werden die Ursprungsdaten der Trainingsdatei auf fehlende („LEERE“)
oder fehlerhafte („NULL“) Angaben überprüft. Wenn eine Änderung der Daten notwendig ist
wird die Vorgehensweise dazu gleich anschließend erläutert.
Spalte A bis H
Spalten : RefId (A), IsBadBuy (B), PurchDate (C), Auction (D), VehYear (E), VehicleAge (F),
Make (G), Model (H)
Diese Spalten sind vollständig bzw. enthalten kein „Null“, „Leere“ oder „Not Available“.
Spalte I - Trim
Bei 2360 Datensätzen fehlen die Abkürzungen für das Untermodell.
Vorgehensweise: siehe unter Punkt 3.2.1. Spalte I – Trim.
Spalte J - SubModel
Diese Spalte enthält vollständige Angaben.
Spalte K - Color
Insgesamt enthalten 102 Autokäufe eine fehlerhafte Farbangabe. Davon wird 94-mal das
Kriterium „Not Available“ und achtmal das Kriterium „Null“ angegeben.
Vorgehensweise: das Kriterium „Not Available“ wird durch „Null“ ersetzt um eine einheitliche
Datenformatierung zu erreichen.
Spalte L - Transmission
In dieser Spalte sind neun Autokäufe mit fehlenden Angaben zur Schaltungsart. Davon wird
einmal das Kriterium „Leere“ und achtmal das Kriterium „Null“ angegeben.
Vorgehensweise: das Kriterium „Leere“ wird durch „Null“ ersetzt.
Spalte M - WheelTypeID
Es fehlt bei 3169 Datensätzen die Reifentyp-ID.
Vorgehensweise: das Kriterium „0“ wird durch „Null“ ersetzt.
3
Spalte N - WheelType
Bei insgesamt 3174 Autokäufen sind keine genauen Angaben („Null“) zum Reifentyp
gemacht. Special Reifen sind bei nur 755 Autokäufen zu finden.
Vorgehensweise: Spalte N kann wahlweise herausgenommen und stattdessen mit Spalte M
gearbeitet werden.
Spalte O (VehOdo)
Diese Spalte enthält vollständige Angaben.
Spalte P bis R
Spalten: Nationality (P), Size (Q), TopThreeAmericanName (R)
Bei fünf Datensätzen (RefID 10890, 25171, 37988, 69950, 69960) ist für die drei genannten
Spalten jeweils das Kriterium „Null“ angegeben.
Spalte S - MMRAcquisitionAuctionAveragePrice
(Auktionspreis durchschnittlich)
Bei 846 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 18-mal und das Kriterium „0“ 828-mal angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte T - MMRAcquisitionAuctionCleanPrice
(Auktionspreis Clean Price)
Bei 715 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 18-mal und das Kriterium „0“ 697-mal angegeben. Weiterhin ist bei einem Datensatz ein
Preis von 1,-USD angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte U - MMRAcquisitionRetailAveragePrice
(Handelspreis durchschnittlich)
Bei 846 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 18-mal und das Kriterium „0“ 828-mal angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte V - MMRAcquisitonRetailCleanPrice
(Handelspreis Clean Price)
Bei 846 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 18-mal und das Kriterium „0“ 828-mal angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
4
Spalte W - MMRCurrentAuctionAveragePrice
(Auktionspreis durchschnittlich, Tageskurs)
Bei 819 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 315-mal und das Kriterium „0“ 504-mal angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte X - MMRCurrentAuctionCleanPrice
(Auktionspreis Clean Price, Tageskurs)
Bei 693 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 315-mal und das Kriterium „0“ 378-mal angegeben. Weiterhin ist bei einem Datensatz ein
Preis von 1,-USD angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte Y - MMRCurrentRetailAveragePrice
(Handelspreis durchschnittlich, Tageskurs)
Bei 819 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 315-mal und das Kriterium „0“ 504-mal angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte Z - MMRCurrentRetailCleanPrice
(Handelspreis Clean Price, Tageskurs)
Bei 819 Datensätzen sind die Preisangaben fehlerhaft oder fehlen ganz. Das Kriterium „Null“
ist 315-mal und das Kriterium „0“ 504-mal angegeben.
Vorgehensweise: das Kriterium „0“ durch „NULL“ ersetzen.
Spalte AA – PRIMEUNIT und Spalte AB - AUCGUART
Bei 69564 Datensätzen fehlen die Nachfrage- als auch die Garantie-Level-Angaben („Null“).
Vorgehensweise: siehe unter Punkt 3.2.1. Spalte AA – PRIMEUNIT und Spalte AB –
AUCGUART.
Spalte AC bis AE
Spalten: BYRNO (AC), VNZIP1 (AD), VNST (AE)
Diese Spalten enthalten vollständige Daten. Es ist zu erwähnen, dass einem Bundesstaat
(Spalte AE) auch mehrere Postleitzahlen (Spalte AD) zugeordnet werden können. Somit ist
zu überlegen ob von einer Entfernung der Postleitzahlen abgesehen werden sollte.
5
Spalte AF – VehBCost
Die Spalte mit den Angaben zu den Kaufkosten enthält vollständig Daten. Jedoch ist in
einem Datensatz (RefID 20455) ein Kaufpreis von 1,-USD angegeben.
Spalte AG – IsOnlineSale und AH – WarrantyCost
Beide Spalten enthalten vollständige Daten.
3.1.2. Ausreißer
Spalte T – MMRAcquisitionAuctionCleanPrice, Spalte X - MRCurrentAuctionCleanPrice
und Spalte AF – VehBCost
In diesen Kostenspalten sind Preise in Höhe von 1,- USD angegeben. Dieser Preis scheint
jedoch sehr unwahrscheinlich und wurde deshalb durch das Kriterium „NULL“ ersetzt. Denn
nur dadurch kann in den weiteren Kostenbe- und verrechnungen eine Verzerrung der
Ergebnisse garantiert werden.
Spalte K - Color
In der Testdatei ist gegenüber den Trainingsdaten noch zusätzlich die Farbe „PINK“
angegeben. Da auch in der Trainingsdatei die Farben klassifiziert werden (Punkt 3.2.2.
Aggregation) kann dieser Ausreißer einer Farbklasse zugeordnet und somit eingefangen
werden. Dadurch sind die Farbangaben der Trainings- und Testdaten in KNIME wieder
vergleichbar.
3.2. Datenreduktion
3.2.1. Dimensionsreduktion
Spalte I – Trim
Diese Spalte beinhaltet die Abkürzung des in Spalte J angegebenen Untermodells. Die
Abkürzungen sind dabei nominal,
numerisch als
auch eine Kombination beider
Möglichkeiten. Weiterhin ist bei 2360 Datensätzen keine Abkürzung des Untermodells
angegeben. Aus diesen Gründen haben wir uns dafür entschieden die Spalte H (Trim) zu
entfernen und dafür mit den vollständigen Untermodellbezeichnungen (Spalte J) zu arbeiten.
Spalte AA – PRIMEUNIT und Spalte AB - AUCGUART
Da bei beiden Spalten 69564 Angaben fehlen sind die wenigen vorhandenen Daten nicht
aussagefähig genug. Beide Spalten wurden deshalb entfernt.
6
Es wurde als sinnvoll angesehen - außer den bereits genannten - nicht noch weitere Spalten
aus der Excel-Datei zu entfernen, da in KNIME mit dem „Column Filter“ noch zusätzlich
entschieden werden kann welche Spalten einbezogen werden sollen und welche nicht.
3.2.2. Aggregation
Die Attribute bzw. Werte der drei nachfolgenden Spalten wurden unter Bezugnahme von
Formeln zu einem übergeordneten Attribut bzw. einem Wert zusammengefasst. Bei den
numerischen Werten beinhaltet die Klasse eins dabei die besten Werte.
Des Weiteren ist unter dem Punkt 3.3.3. eine weitere Klassifikation zu dem Thema
„Berechnung abgeleiteter Werte“ zu finden. Von einer Einordnung an dieser Stelle wurde
abgesehen, da sich die Klassifikation auf den Inhalt des Abschnitts 3.3.3. bezieht.
Spalte F – VehicleAge
Bei dem Alter liegt die Annahme zugrunde, dass ältere Fahrzeuge im Laufe der Jahre mehr
genutzt wurden und somit die Wahrscheinlichkeit für den Kauf eines unfallbehafteten oder
störanfälligen Fahrzeugs mit zunehmendem Fahrzeugalter steigt.
Altersklassen
1 = 0-3
2 = 4-6
3 = 7-9
Formel
=WENN(F2<4;1;WENN(F2>6;3;2))
Spalte O – VehOdo
Je mehr Kilometer ein Fahrzeug zurückgelegt hat desto größer sind der Verschleiß und die
Reparaturanfälligkeit.
Kilometerklassen
1 = 0-10000
2 = 10001-79999
3 = ab 80000
Formel
=WENN(O2>80000;3;WENN(O2<10000;1;2))
Spalte K - Color
Bei der Benennung der Farbklassen wurde die Schreibweise der Umlaute berücksichtigt, da
es sonst zu Problemen bei der Datenverarbeitung in KNIME kommen kann. Auch wurde
darauf geachtet, dass die Anzahl der Attribute in den einzelnen Klassen gleich ist.
Das in den Testdaten zusätzlich auftretende Attribut „PINK“ kann der Farbklasse
„ROTTOENE“ zugeordnet werden. Somit kann es in KNIME bei der Datenverarbeitung der
Trainings- und Testdaten bezüglich der Farbe zu keinen Problemen kommen.
7
Farbklasse
ROTTOENE
BRAUNTOENE
BLAUTOENE
WEISSTOENE
METALLICTOENE
SCHWARZTOENE
GRUENGELBTOENE
SONSTIGE
Farbe
RED,
ORANGE
BROWN,
MAROON
BLUE,
PURPLE
WHITE,
BEIGE
SILVER,
GOLD
BLACK,
GREY
GREEN,
YELLOW
NULL,
OTHER
Formel
=WENN(ODER(L2="RED";L2="ORANGE");"ROTTOENE";
WENN(ODER(L2="BROWN";L2="MAROON");"BRAUNTOENE";
WENN(ODER(L2="BLUE";L2="PURPLE");"BLAUTOENE";
WENN(ODER(L2="WHITE";L2="BEIGE");"WEISSTOENE";
WENN(ODER(L2="SILVER";L2="GOLD");"METALLICTOENE";
WENN(ODER(L2="BLACK";L2="GREY");"SCHWARZTOENE";
WENN(ODER(L2="GREEN";L2="YELLOW");"GRUENGELBTOENE";"SONSTIGE")))))))
3.3. Datentransformation
3.3.1. Anpassung der Datumsangaben
Die Spalte C (PurchDate) enthält das Datum des Kaufes bzw. das Datum der Auktion auf der
das Auto verkauft wurde. Es ist jedoch unklar ob der Zeitpunkt des Kaufes einen Einfluss
darauf hat ob das Auto ein guter oder schlechter Kauf ist. Da zwei verschiedene
Datumsformate vorliegen muss mit Hilfe der nachfolgenden Formel ein einheitliches
Datumsformat erstellt werden.
=DATUM(RECHTS(C17;4);LINKS(C17;FINDEN("/";C17)1);TEIL(C17;FINDEN("/";C17;1)+1;2))
Die neue Spalte mit dem einheitlichen Datumsformat wurde „PurchDate2“ benannt und
anstelle der alten Datumspalte eingefügt.
3.3.2. Anpassung der Preisangaben
Spalte AF – VehBCost
In Spalte AF – VehBCost sind 68 Kaufpreise mit amerikanischen Kommastellen angegeben.
Da fast ausschließlich alle Preise in der Trainingsdatei ganzzahlig angegeben sind werden
die 68 Kaufpreise in Spalte AF daran angepasst, sodass die Kostenangaben vereinheitlicht
sind.
8
3.3.3. Berechnung abgeleiteter Werte
Die nachfolgend genannten Spalten wurden separat sowohl für den „Average Price“ als auch
für den „Clean Price“ eines Fahrzeugs eingefügt und berechnet. Die Daten beziehen sich
dabei auf die Kostenangaben aus den Spalten S bis Z und auf die Kaufkosten (Spalte AF –
VehBCost).
Um Aussagen darüber treffen zu können ob ein Autokauf finanziell positiv für den Käufer
ausgefallen und somit lohnenswert ist wurde eine Reihe von Berechnungen vorgenommen.
Bei Berechnungen die das Kriterium „Null“ beinhalten wurde darauf geachtet, dass das
Ergebnis ebenfalls als „Null“ ausgegeben wird. Zum einen wurde der gezahlte Kaufpreis vom
Auktions- bzw. Handelspreis abgezogen. Im Ergebnis ist dann entweder eine Ersparnis
(positiver Wert) oder ein Verlust (negativer Wert) zu finden.
Ersparnis beim Kauf (+) = Auktionspreis durchschnittlich minus Kaufpreis
Ersparnis beim Kauf (+) = Handelspreis durchschnittlich minus Kaufpreis
Ersparnis beim Kauf (+) = Auktionspreis Clean Price minus Kaufpreis
Ersparnis beim Kauf (+) = Handelspreis Clean Price minus Kaufpreis
Um herauszufinden ob ein Auto seit dem Kauf an Wert gewonnen oder verloren hat wurde
der „normale“ Auktions- bzw. Handelspreis mit dem Auktions- bzw. Handelspreis zum
Tageskurs verrechnet.
Wertsteigerung (+) oder Wertminderung (-) seit dem Kauf = Auktionspreis
durchschnittlich, Tageskurs minus Auktionspreis durchschnittlich
Wertsteigerung (+) oder Wertminderung (-) seit dem Kauf = Handelspreis
durchschnittlich, Tageskurs minus Handelspreis durchschnittlich
Wertsteigerung (+) oder Wertminderung (-) seit dem Kauf = Auktionspreis Clean Price,
Tageskurs minus Auktionspreis Clean Price
Wertsteigerung (+) oder Wertminderung (-) seit dem Kauf = Handelspreis Clean Price,
Tageskurs minus Handelspreis Clean Price
Um nicht nur die Punkte Ersparnis/ Verlust und Wertsteigerung/ Wertminderung separat zu
betrachten wurde abschließend noch eine Verrechnung beider Punkte vorgenommen. Der
Gedanke hinter dieser Berechnung ist, dass eine Ersparnis beim Autokauf durch eine
anschließende Wertminderung aufgezehrt werden kann.
Verrechnung Ersparnis mit Wertsteigerung (Auktionspreis durchschnittlich)
Verrechnung Ersparnis mit Wertsteigerung (Handelspreis durchschnittlich)
9
Verrechnung Ersparnis mit Wertsteigerung (Auktionspreis Clean Price)
Verrechnung Ersparnis mit Wertsteigerung (Handelspreis Clean Price)
Den Überlegungen zur Folge sollte eine Ersparnis beim Kauf als auch eine anschließende
Wertsteigerung ein Indiz für einen guten Autokauf sein. Im Umkehrschluss sollten dadurch
auch die „Bad Buys“ unter dem Aspekt der Kostenbetrachtung identifiziert werden.
Aggregation abgeleiteter Werte
Für die Klassifizierung der Ergebnisse wurde eine einheitliche Formel benutzt. Wie bereits
bei den Klassifizierungen des Alters und des Kilometerstands werden auch hierbei die
besten Werte der Klasse eins zugeordnet. Da wie bereits erwähnt in den Kostenspalten und
den daraus berechneten Werten auch das Kriterium „Null“ angegeben ist wurde dies in der
Klassifizierung berücksichtigt.
Kostenklassifizierung
Null = Null
1 = 5000 < x
2 = 1000 < x ≤ 5000
3 = 0 < x ≤ 1000
4=x≤0
Formel
=WENN(AH2="NULL";"NULL";WENN(AH2<=0;4;WENN(UND
(AH2>0;AH2<=1000);3;WENN(UND(AH2>1000;AH2<=5000);
2;WENN(AH2>5000;1)))))
3.3.4. Kombination von Attributen
Mit den nachfolgenden Kombinationen soll in KNIME überprüft werden ob die Ergebnisse
besser ausfallen, wenn in einer Spalte mehrere verschiedene Attribute angegeben sind.
Spalte G – Make, Spalte H – Model und Spalte J – SubModel
Die einzelnen Angaben aus den Spalten Make, Model und SubModel wurden in einer neu
eingefügten Spalte (Make, Model and Submodel) zusammengefasst.
Klassifizierung Altersklasse und Kilometerstand
Die Klassifikationen des Alters und Kilometerstands werden in einer neuen Spalte
zusammengefasst.
Zusammengefasste Klassen Preis durchschnittlich
Alle Klassifikationen aus Punkt 3.3.3 mit Bezug auf den durchschnittlichen Preis werden in
einer separaten Spalte zusammengefasst.
10
Zusammengefasste Klassen Clean Price
Alle Klassifikationen aus Punkt 3.3.3 mit Bezug auf den Clean Price werden in einer
einzelnen Spalte zusammengefasst.
11
4. Datenvorbereitung – Birte Spitz
4.1. Datenreduktion
Da nicht alle Daten aus den gestellten Tabellen relevant sind, werden mehrere Spalten
gelöscht. In der folgenden Tabelle wird erläutert welche Spalten aus welchem Grund entfernt
wurden.
Die folgenden Spaltenbezeichnungen beziehen sich auf die unbearbeitete Ursprungstabelle!
Spalte
A
RefID
Titel
Beschreibung
Die Spalte enthält nur eine laufende Nummer,
die die verschiedenen Käufe bezeichnet und ist
somit für das Durchführen der Analyse nicht
relevant.
C
PurchDate
Die Spalte enthält das Datum des Kaufes bzw.
das Datum der Auktion auf der das Auto verkauft
wurde. Da dieses Datum keinen Einfluss darauf
hat, ob das Auto ein guter oder ein schlechter
Kauf ist, wird diese Spalte nicht mit einbezogen.
D
Auction
Spalte D enthält den Auktions-Anbieter. In den
Daten werden zwei konkrete Namen genannt,
dies betrifft in den Trainingsdaten ca. 55 000 der
insgesamt 72 984 Datensätze (ca. 15 000
Adesa, ca. 41 000 Manheim). Die restlichen
Daten sind keiner konkreten Auktion zugeordnet.
Da nicht davon ausgegangen werden kann,
dass einer der beiden Anbieter nur gute oder nur
schlechte Autos verkauft, ist diese Spalte nicht
relevant.
E
VehYear
Diese Spalte enthält das Herstellungsjahr des
Autos und ist prinzipiell wichtig. In der nächsten
Spalte (F) wird diese Information allerdings noch
einmal aufgegriffen (bzw. neu errechnet),
diesmal wird das Alter in Jahren angegeben. Da
mit dieser kleineren Zahl besser weiter
gearbeitet werden kann, wird diese beibehalten
und die Spalte E mit der prinzipiell gleichen
Aussage aussortiert.
I
J
Trim
SubModel
Die Spalten I und J beschreiben das Auto,
neben der Angabe des Herstellers und der
Angabe des Modells, noch genauer. Wir
nehmen an, dass die noch genauere
Beschreibung
des
Modells
keine
entscheidungsrelevanten Daten mehr enthält
und das alle wichtigen Daten zum Autotyp schon
in der Angabe des Herstellers und des Modells
12
zu finden sind. Somit entfallen diese beiden
Spalten.
N
WheelType
In der Spalte WheelType ist die Information zu
finden ob das Auto Radkappen oder Felgen
besitzt. Dies könnte zwar eine wichtige
Information sein, allerdings hat die vorherige
Spalte (M) die gleiche Aussage mit der
Ausnahme, dass sie die verschiedenen
Varianten in Form einer Zahl ausdrückt. Da mit
dieser Zahl besser weiter gearbeitet werden
kann, bleibt diese erhalten und die Spalte N wird
nicht berücksichtigt.
P
Nationality
Spalte P sagt etwas über das Herkunftsland des
gekauften Autos aus, wobei die vorhandenen
Angaben zum einen wenig aussagekräftig sind
(American, Top Line Asian, Other Asian, Other)
und zum anderen die Entscheidung, ob ein
guter/schlechter Kauf vorliegt, nicht weiterbringt.
Auch in den Trainingsdaten erhält man, wie
vermutet, keinen eindeutigen Hinweis ob eine
Nationalität auf einen guten/schlechten Kauf
deutet.
R
TopThreeAmerican
Names
In dieser Spalte wird angegeben ob es sich beim
Auto um eine der größten amerikanischen
Automarken (Ford, Chrysler, GM) handelt oder
nicht. Diese Aussage hat keinerlei Relevanz für
die Entscheidung. Zum einen, da dies aus der
Marke selbst abgelesen werden kann, die schon
vorher ausgegeben wird. Zum anderen kann
nicht gesagt werden, dass diese bzw. die
übrigen Autos auf jeden Fall einen guten oder
schlechten Kauf darstellen.
T
V
X
Z
MMRAcquisitionAuctionCleanPrice
MMRAcquisitonRetailCleanPrice
MMRCurrentAuctionCleanPrice
MMRCurrentRetailCleanPrice
Diese vier Zeilen beschreiben den jeweiligen
Preis des gekauften Autos in einem
überdurchschnittlichen Zustand. Da wir keinerlei
Hinweise darauf haben, ob sich das Auto in
einem
überdurchschnittlichen
oder
durchschnittlichen Zustand befindet, gehen wir
immer von den durchschnittlichen Werten aus
und
die
Anschaffungspreise
für
den
überdurchschnittlichen
Zustand
werden
gelöscht.
13
AA
Primeunit
Die Spalte „Primeunit“ drückt aus, ob eine
höhere Nachfrage nach dem Auto vorhanden ist
oder nicht. Diese Spalte wird aussortiert, da sich
diese höhere Nachfrage augenscheinlich nach
der Garantie in Spalte AB richtet. Ist diese auf
dem Status „GREEN“ ist eine höhere Nachfrage
angegeben. Des Weiteren enthält sie in den
Trainingsdaten in nur rund 69 000 Spalten eine
Aussage.
AC
BYRNO
In der Spalte AC ist die Käufernummer
angegeben. Offenbar wurde jedem Käufer eine
bestimmte Zahl zugewiesen. Bei genauerer
Untersuchung wird deutlich, dass ein Käufer
sehr viele Autos kauft, es scheint sich also um
größere Händler zu handeln. Dies sagt
allerdings nichts über die Qualität des Kaufes
aus.
AD
AE
VNZIP1
VNST
Diese Spalten geben den Staat und die konkrete
Postleitzahl an in dem das Auto gekauft wurde.
Diese Daten sagen nichts darüber aus, ob es
sich um einen guten oder schlechten Kauf
handelt.
AG
IsOnlineSale
Spalte AG enthält die Information ob der
angegebene Kauf über eine Online-Auktion
abgewickelt wurde oder nicht. Diese Spalte wird
nicht mit in die Entscheidung einbezogen, da sie
in den Trainingsdaten nur knapp 2 000 der
Käufe betrifft und bei diesen Käufen auch kein
Hinweis darauf entdeckt werden konnte, ob
dieser Sachverhalt auf einen guten/schlechten
Kauf hinweist.
4.2. Datensäuberung/-transformation
Nach der Datenreduktion ist der Umfang der nun vorliegenden Daten sehr viel
übersichtlicher geworden. In der folgenden Tabelle wird nun erläutert welche Änderungen an
den noch verbliebenen Daten vorgenommen wurden.
Die folgenden Spaltenbezeichnungen beziehen sich auf die unbearbeitete Ursprungstabelle!
Spalte
K
Farbe
N
WheelTypeID
Titel
Beschreibung
In dieser Spalte wurde die Eintragung NOT
AVAIL und leere Felder durch NULL ersetzt
um die Werte einheitlicher zu gestalten.
In dieser Spalte wurde 0 durch NULL ersetzt,
14
da dies in Spalte N „WheelType“ die gleiche
Aussage zur Folge hat. So gibt es dann
außerdem eine Variante weniger zu beachten.
T
V
X
Z
MMRAcquisitionAuctionCleanPrice
MMRAcquisitonRetailCleanPrice
MMRCurrentAuctionCleanPrice
MMRCurrentRetailCleanPrice
In diesen vier Zeilen werden alle Felder, die
einen Preis von 0 ausgeben, durch NULL
ersetzt. Es erscheint höchst unwahrscheinlich,
dass die Preise dieser Autos 0 betragen, es
liegt näher, dass der Preis nicht bekannt ist.
4.3. Neu berechnete Spalten
Titel
Altersklassen
Beschreibung
In der neu eingefügten Spalte „Altersklassen“ wird
das Alter in Klassen eingeteilt (Klasse 1: 0-3 Jahre,
Klasse 2: 4-6 Jahre, Klasse 3: 7-9 Jahre)
Schaltung-ID
In der neuen Spalte „Schaltung-ID“, die nach Spalte
L „Transmission“ eingefügt wurde, wird die
Getriebe-Art mit einer Zahl „codiert“ (MANUAL = 1,
AUTO = 2, NULL = NULL).
KM-Stand gerundet
Diese Spalte wurde nach der Spalte O „VehOdo“
eingesetzt. Sie hat die Funktion den Kilometerstand
auf volle 10.000er zu runden um die Klassifizierung
in der nächsten Spalte zu erleichtern.
KM-Klasse
Es wurde eine neue Spalte eingefügt, in der der
Kilometerstand (Spalte O) eines jeden Autos einer
Klasse zugeordnet wird. Die verwendete Formel
bezieht sich dabei allerdings auf die zuvor
eingefügte Spalte „KM-Stand gerundet“. Folgende
Unterteilung wurde vorgenommen: Klasse 1: bis
30.000, Klasse 2: 40.000 – 60.000, Klasse 3:
70.000 – 90.000, Klasse 4: >= 100.000.
Garantie-ID
Nach Spalte AB „AUCGUART“, die den
Garantielevel anzeigt, wird eine Zeile eingeführt, die
dem Garantielevel eine ID zuordnet. Dabei scheint
in Spalte AB der Wert „GREEN“ die stärkste
Aussage zu haben, diesem wird also eine 0
zugeordnet, während allen anderen Werten
(YELLOW, RED, NULL) eine 1 zugeordnet wird.
Auktionspreis vs. Preis Handel
(Tageskurs)
In dieser Spalte wird die Differenz zwischen dem
tagesaktuellen Preis im Handel (Spalte Y) und dem
Kaufpreis auf der Auktion (AF) ausgegeben. Ist das
Ergebnis positiv, war der Einkaufspreis auf der
Auktion günstiger als im Handel und dem Wert wird
in der nächsten Spalte „Ersparnis?“ eine 0
zugeordnet. Dies könnte auf einen guten Kauf
hindeuten. Ist die Differenz negativ, war der
Ersparnis?
15
Auktionspreis teurer als der im Handel und in der
nächsten Spalte „Ersparnis?“ steht eine 1. Dies
könnte auf einen schlechten Kauf hindeuten.
Werteverlust/-zuwachs
Werteverlust/-zuwachs-ID
In dieser Spalte wird vom durchschnittlichen
Auktionspreis vom Zeitpunkt des Kaufes der
durchschnittliche Auktionspreis zum Tageskurs
abgezogen (Spalte S - Spalte W), um
herauszufinden um wie viel sich der Wert des
Fahrzeuges im Laufe der Zeit verändert hat. In der
nächsten Spalte (Werteverlust/-zuwachs-ID) wird
diesem Wert, je nachdem ob ein Gewinn oder ein
Verlust vorliegt, eine 0 oder 1 zugeordnet.
16
5. Data Mining - Umsetzung in KNIME
5.1. Grundsätzlicher Aufbau
Das Data Mining selbst wurde im Programm KNIME vorgenommen.
Abbildung 1: Modellierung in KNIME
Der erste Knoten in KNIME muss erst einmal ein Knoten sein, mit dem die bearbeiteten
Excel-Werte in das Programm eingelesen werden können. Dies ist (wie oben dargestellt) der
File Reader. Schon hier stießen wir auf erste Probleme: Weder in diesem File Reader noch
im extra installiertem XLS-Reader können die Excel-Daten eingelesen werden. Nach
Umwandlung der Excel-Datei ins CSV-Format wurde diese zwar nicht im CSV-Reader, aber
immerhin im File Reader erkannt.
Im darauffolgenden Knoten „Number to String“ werden, wie der Name schon sagt, Zahlen in
Zeichenketten umgewandelt. Dies ist bei ordinalen Datentypen sinnvoll. Also bei Daten mit
denen man nicht rechnen kann, sondern die nur eine Ordnungsrelation darstellen. Solche
Daten sind z. B. die in der folgenden Abbildung aufgeführten Daten.
17
Abbildung 2: Daten Number to String
Im „Column Filter“ kann dann noch einmal eine Datenselektion vorgenommen werden. Hier
können Spalten in die Analyse ein- und ausgeschlossen werden.
Nach dem Colum Filter folgt die Analyse der Daten mit drei verschiedenen Verfahren.
5.2. Naive Bayes
Bei dem Naive Bayes-Verfahren wird davon ausgegangen, dass alle Attribute voneinander
unabhängig sind.
Im ersten Knoten des Verfahrens („Partitioning“) werden die eingespielten Daten prozentual
in zwei Mengen geteilt. In unserer Einstellung umfasst ein Teil der Daten 60%, der andere
40%. Nun verlassen den Knoten „Partitioning“ zwei Verbindungen: Eine führt zum „Naive
Bayes Learner“, der andere zum „Naive Bayes Predictor“. D.h. mit 60% der Daten lernt
KNIME das Muster der Daten nach dem Naive Bayes-Verfahren kennen (im Knoten „Naive
Bayes Learner“) und wendet diese Erkenntnisse dann auf die restlichen 40% der Daten im
Knoten „Naive Bayes Predictor“ an. Der nachgeschaltete Scorer zeigt dann an, wie gut die
Vorhersage ausgefallen ist bzw. wie viel Prozent der guten und schlechten Käufe richtig
vorhergesagt wurden.
18
Um dieses Muster auf die Testdaten anzuwenden, müssen diese im File Reader unten
eingelesen werden. Nach den Knoten für die üblichen Einstellungen erfolgt die Anwendung
des gelernten Musters aus dem Naive Bayes Learner im Naive Bayes Predictor, dafür
werden nun die Test- und nicht mehr die Trainingsdaten mit dem Predictor verbunden
(gestrichelte Linie). Der Scorer gibt nun verständlicherweise keine Ergebnisse aus. Im
nachfolgenden Column Filter wird nun nur die Spalte mit der Vorhersage „Winner“
ausgewählt und schon gibt der CSV Writer eine CSV-Datei mit den Vorhersagen aus, die
nun auf kaggle.com hochgeladen und bewertet werden können.
Abbildung 3: Modellierung Naive Bayes
5.3. Decision Tree
Dem Vorgehen nach der Methode des Decision Trees bzw. des Entscheidungsbaum in
KNIME ähnelt dem Vorgehen nach Naive Bayes sehr. Wieder werden die Daten im ersten
Knoten „Partitioning“ in zwei Mengen (60/40) aufgeteilt, wobei KNIME von den 60% der
Daten die Muster nach dem Decision Tree-Verfahren lernt und dann auf 40% der Daten
anwendet. Im Scorer kann man sich auch dann wieder das Ergebnis anzeigen lassen.
19
Problematisch bei diesem Vorgehen ist allerdings, dass dieses Verfahren anscheinend nur
mit einer begrenzten Datenmenge arbeiten kann. Werden im Column Filter umfangreich
Daten selektiert, bringt der Decision Tree ganz KNIME zum Absturz.
Das Vorgehen zur Anwendung der Testdaten und zur Ausgabe der CSV-Daten ist dem oben
beschriebenen sehr ähnlich (wieder gestrichelte Linie). Anfangs trat allerdings ein Problem
auf: Aus Gründen, die nicht nachvollzogen werden können, wird für manche Zeilen keine
Prognose ausgegeben. Somit kann ein solches Ergebnis auch nicht auf kaggle.com
hochgeladen und bewertet werden. Dieses Problem konnte behoben werden, indem der
Knoten „Missing Value“ vorgeschaltet wird mit dem alle fehlenden Werte in der PrognoseSpalte durch 0 oder 1 ersetzt werden. Dies führt dann allerdings bei ca. 20 Zeilen zu
verfälschten Werten. Insgesamt haben diese aber einen geringen Einfluss.
Abbildung 4: Modellierung Decision Tree
5.4. J48/WEKA
Auch
WEKA
generiert
mit
dem
J48-Algorithmus
einen
Entscheidungsbaum.
Die
Vorgehensweise in KNIME ist den beiden vorherigen wieder sehr ähnlich. Allerdings kann
dieser Algorithmus nur mit
numerischen Werten arbeiten, also wird vor den Knoten
„Partitioning“ noch der Knoten „String to Number“ geschaltet.
20
Abbildung 5: Modellierung WEKA/J48
5.5. Beispiel der Vorgehensweise
Bei der Spaltenauswahl im „Column Filter“ wurden von Mandy Schacht mehr als 57
Möglichkeiten ausprobiert um die besten Ergebnisse zu erzielen. Jedoch konnte schon mit
den ursprünglich enthaltenen Spalten der Trainingsdatei nach der Datenvorbereitung bereits
im zweiten Versuch eine gute Trefferquote bei den Vorhersagen erreicht werden. Mit dem
Naive Bayes Learner betrug die richtige Vorhersage fast 75 Prozent, davon wurden 1778
sogenannte Bad Buys richtig erkannt. Eine so gute Vorhersage der Bad Buys zu Beginn der
Versuche erschwerte allerdings das Finden einer besseren Lösung.
In
der
nachstehenden
Tabelle
ist
beispielhaft
festgehalten,
welche
Kombinationsmöglichkeiten der Spalten eine Verbesserung oder Verschlechterung im
Vergleich zum vorherigen Upload bewirkten. Die grau hinterlegten Felder kennzeichnen
dabei den Gini-Index, der gegenüber dem vorherigen Versuch eine Verbesserung darstellt.
In den Versuchen sechs, sieben und acht konnten kontinuierlich Plätze gewonnen werden,
jedoch wird es mit zunehmend steigendem Gini-Index schwerer eine Verbesserung
gegenüber der Vorlösung zu erreichen.
21
Abbildung 6: Gini-Index Verlauf
Aufbauend auf dem Ergebnis des zweiten Versuchs wurden abwechselnd Spalten vom
Training ausgeschlossen um herauszufinden, welche Auswirkungen das Fehlen einer
bestimmten Spalte auf die Vorhersage mit dem Naive Bayes Learner hat.
Die besten Ergebnisse konnten mit den Möglichkeiten 50 und 54 erreicht werden, bei denen
der Gini-Index jeweils über 0,13 lag. Dabei wurde in der Möglichkeit Nummer 50 neben einer
Anzahl anderer Spalten auch die Klassifizierung der Farbe, die zusammengefassten Klassen
der Preise als auch die acht ursprünglichen Preisspalten einbezogen. Bei der Möglichkeit
Nummer 54 wurden dagegen die in Nummer 50 noch einbezogenen Spalten „PurchDate2“
und Klassifizierung der Farbe rausgenommen.
22
6. Aufgetretene Probleme
Im Laufe der Versuche stellte sich heraus, dass die Bewertung der Daten von Kaggle nicht
vollständig nachvollzogen werden kann. Im Laufe der Versuche bestärkte sich die
Vermutung, dass es nicht auf die prozentuale Gesamtheit der richtig identifizierten Käufe
ankommt, sondern vielmehr darauf, wie viele Bad Buys (1) richtig identifiziert werden
konnten. Diesbezüglich konnte beobachtet werden, dass bei einer allgemeinen Trefferquote
von durchschnittlich 70 bis 75 Prozent die richtige Vorhersage bei den Bad Buys mit einer
Anzahl von 1600 bis 1900 am größten war. Dagegen sank die Anzahl der vorhergesagten
Bad Buys mit zunehmender allgemeiner prozentualer Richtigkeit der Vorhersagen.
Des Weiteren hat die Bewertung von Kaggle vor Ende des Wettbewerbes keine 100%ige
Aussagekraft, da nur 30% der hochgeladenen Daten zur Bewertung herangezogen werden.
Erst bei Wettbewerbsende erfolgt eine vollständige Berechnung der Daten und somit auch
erst dann ein gültige Bewertung.
Ein weiteres Problem wurde bereits oben in 4.1. beschrieben: Der erste Knoten in KNIME
muss erst einmal ein Knoten sein, mit dem die bearbeiteten Excel-Werte in das Programm
eingelesen werden können. Allerdings können weder im File Reader noch im extra
installiertem XLS-Reader die Excel-Daten eingelesen werden. Nach Umwandlung der ExcelDatei ins CSV-Format wurde diese zwar nicht im CSV-Reader, aber immerhin im File Reader
erkannt.
Weiterhin ergaben sich bei der Modellierung mit KNIME, insbesondere bei der Anwendung
des Decision Trees, einige Schwierigkeiten. Zum einen kann dieses Verfahren nur beim
Input weniger Daten angewendet werden. Werden zu viele Daten zur Berechnung
ausgewählt, bringt dies ganz KNIME zum Absturz. Zum anderen prognostiziert der Decision
Tree nicht für alle Daten ein Ergebnis, was dazu führt, dass das Ergebnis nicht bei Kaggle
hochgeladen und bewertet werden kann. Dem kann vorgebeugt werden indem durch den
Knoten „Missing Value“ die fehlenden Daten durch einen festgelegten Wert ersetzt werden.
Dies führt allerdings insgesamt zu einem leicht verfälschten Ergebnis.
Außerdem konnte beobachtete werden, dass die Teilung der Daten in Trainings- und
Testdaten im Knoten Partitioning immer unterschiedlich vorgenommen wird. Dies führt zu
unterschiedlichen Ergebnissen bei gleichen Einstellungen, was die eigene Bewertung der
ausgewählten Daten erschwert.
Beim Anwenden der Verfahren auf die Testdaten fiel außerdem auf, dass diese teilweise
andere Werte beinhaltet als die Trainingsdatei (z.B. Spalte Farbe). Bei der Berechnung
kommt es so bei diesen für KNIME unbekannten Werten also zu Problemen. Diesem kann
23
entweder durch eine Klassifizierung oder durch das Ändern des jeweiligen Wertes in der
Testdatei vorgebeugt werden.
24
7. Fazit
Für die Lösung der Aufgabe „Don’t get kicked“ in KNIME konnten die besten Ergebnisse mit
dem Naive Bayes-Verfahren erzielt werden. Zum einen war die Modellierung unkompliziert,
da dieser nominale und numerische Attribute verarbeiten kann. Zum anderen waren die
Ergebnisse im Gegensatz zu den anderen beiden genutzten Methoden (WEKA/J48 und
Entscheidungsbaum) eindeutig die besten. Das Verfahren WEKA/J48 lieferte grundsätzlich
die schlechtesten Ergebnisse.
Insgesamt kann kaum eine allgemein gültige Aussage bezüglich der Auswahl der Daten
getroffen werden, da es immer darauf ankommt, welche Daten kombiniert werden. Dennoch
konnten einige Tendenzen, die nachfolgend aufgeführt sind, beobachtet werden.
In der Regel führen weder die Klassifizierungen des Alters noch die Klassifikation des
Kilometerstandes zu einer Verbesserung der Ergebnisse. Das Weglassen der absoluten
Werte, also nur die Verwendung der Klassen, führte sogar zu schlechteren Ergebnissen.
Dies war, entgegen der Erwartung, auch bei Anwendung des Decision Trees der Fall.
Des Weiteren führen die acht Spalten, die die verschiedenen Anschaffungspreise beinhalten,
zu einer gewissen Unübersichtlichkeit. Auch die Definitionen dieser Preise sind schwierig
abzugrenzen. Dennoch dürfen diese bei der Bearbeitung nicht vernachlässigt werden, da
dies die Ergebnisse massiv verschlechtert. Der Versuch die verschiedenen Preise mit dem
Kaufpreis in Beziehung zu setzen bzw. aus den Preisen aussagekräftige Kennzahlen zu
errechnen, brachte im Ergebnis keine Verbesserung.
Werden nur wenige, aber zentral wichtige Daten als Input gewählt, z. B. Kilometerstand,
Alter, Hersteller und Kaufpreis, werden ebenfalls sehr schlechte Ergebnisse erzielt. Dies
lässt den Schluss zu, dass die wichtigsten Datenkombinationen nicht in den für
Privatpersonen zentralsten Datensätzen liegen bzw. für ein gutes Ergebnis mehrere Spalten
benötigt werden.
Abschließend konnte eine wirklich gute Lösung nicht erreicht werden. Auch bei Abschluss
des Projekts konnten aufgrund der sehr vielen Kombinationsmöglichkeiten und Ergebnisse
nur schwer Aussagen darüber getroffen werden welche Spalten verzichtbar für ein gutes
Ergebnis sind und welche nicht. Auch die unterschiedliche Schwerpunktsetzung konnte nicht
dazu beitragen. Somit kann letztendlich auch keine der beiden Vorgehensweisen als besser
oder erfolgreicher bezeichnet werden.
25
8. Anhang - Zeit- und Aufgabenplan
26