Data-Mining-Cup 2012

Werbung
Hochschule Wismar
University of Applied Sciences
Technology, Business and Design
Fakultät für Ingenieurwissenschaften, Bereich EuI
Data-Mining
Data-Mining-Cup 2012
Eingereicht am:
von:
13. Mai 2012
Merten Kopp, Henry Köhler, Hans Fanter
Szenario
Das Thema der automatischen Preisoptimierung im E-Commerce gewinnt zunehmend an Bedeutung. Dies ist insbesondere der Tatsache geschuldet, dass sich mittels
intelligenter Preisfestlegungen deutliche Margensteigerungen erzielen lassen. Neben
den Standardalgorithmen, die Einzelpreisoptimierungen für prinzipiell jedes Produkt eines Online-Shops vorsehen, werden spezielle Algorithmen entwickelt, die u.
a. dem gewinnorientierten Verkauf kombinierter Produkte oder dem zügigen Abverkauf schnell verderblicher Ware dienen. Die Zeit ist nun reif, das Thema der
automatischen Preisoptimierung in den Fokus der DMC-Aufgabe zu rücken. Diese besteht im Jahr 2012 wieder aus einem Offline-, sowie einem Online-Teil, die
unabhängig voneinander bewertet werden.
Aufgabenstellung
Im Offline-Teil, der ersten Aufgabe, werden zu ausgewählten Produkten Preise und
zugehörige Abverkaufszahlen für einen konkreten Zeitraum vorgegeben. Mit Hilfe
dieser Daten soll ein Modell entwickelt werden, das die Zusammenhänge zwischen
den Daten beschreibt. Auf Basis dieses Modells erfolgt dann in einer Anwendungsphase die Prognose von Abverkaufszahlen. Sieger der ersten Aufgabe ist das Team,
welches die Abverkaufszahlen möglichst genau voraussagt.
2
Inhaltsverzeichnis
Inhaltsverzeichnis
1
2
3
Ausgangspunkt
4
Analyse der Trainingsdaten
5
2.1
2.2
5
6
Programm zur Visualisierung der Trainingsdaten . . . . . . . . . . . .
Vorgedanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Theoretische Grundlagen
3.1
3.2
8
Probalistische Neuronale Netze . . . . . . . . . . . . . . . . . . . . . 8
Lineare Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4
Vorverarbeitung
11
5
Lösungsvarianten
12
5.1
5.2
5.3
6
Probabilistische neuronale Netze . . . . . . . . . . . . . . . . . . . . . 12
Mittelwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Lineare Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Ergebnisse
15
Literaturverzeichnis
18
Abbildungsverzeichnis
19
Inhalt des Archivs
20
3
Kapitel 1. Ausgangspunkt
1 Ausgangspunkt
Gegeben sind zwei Tabellen die sich in vier Spalten unterteilen. Es sind fortlaufend
Tage gelistet, deren Items mit ihrer Preisentwicklung und ihren Verkaufszahlen zugeordnet sind. Die erste Tabelle ist zu 100% konsistent und dient als Trainingsmenge
für das Testen anwendbarer Algorithmen. Bei der zweiten Liste sollen die Verkaufszahlen der einzelnen Artikel ausgehend von der Preisentwicklung und dem aus der
Trainingsmenge gewonnenem Wissen vorhergesagt werden.
Um dies zu bewerkstelligen ist eine Vielzahl von Verarbeitungsschritten notwendig, um letzten Endes Schlussfolgerungen und Analogien zwischen den bekannten
Daten ziehen zu können und diese auf die unbekannte Menge anzuwenden. In den
folgenden Kapiteln werden diese Vorgänge und Arbeitsschritte näher beleuchtet und
verdeutlicht.
4
Kapitel 2. Analyse der Trainingsdaten
2 Analyse der Trainingsdaten
Um Rückschlüsse auf anwendbare Verfahren erhalten zu können, ist es sinnvoll die
gegebenen Daten zu analysieren und gewisse Gemeinsamkeiten der unterschiedlichen
Datensätze herzuleiten. In den folgenden Sektionen wird auf eine frühe Analyse
dieser Daten eingegangen.
2.1 Programm zur Visualisierung der Trainingsdaten
Um eine Übersicht über die gegebenen Daten zu erhalten, wurde zunächst ein
simples Programm umgesetzt, welches die Trainingsdaten verarbeitet und in einem Diagramm visualisiert. Hierzu wurde die Trainingstabelle mit diversen StringOperationen bearbeitet, sodass die einzelnen Daten in einer Liste aus Structs bereitgestellt werden konnten. Ausgehend von dieser Liste wurden die Werte für jedes
Item normalisiert.
1
2
3
4
5
6
7
8
9
public struct Eintrag
{
public int id ;
public int tag ;
public double preis ;
public int anzahl ;
public double preisNorm ;
public double anzahlNorm ;
}
Das Visualisierungs-Tool umfasst folgende Funktionen:
• Graph Tag/Preis für ein/alle Item(s) (absolut / normalisiert)
• Graph Tag/Anzahl für ein/alle Item(s) (absolut / normalisiert)
Der Zweck des Programms ist es dem Anwender logische Zusammenhänge leichter
erkennbar zu machen bzw. aufgestellte Thesen zu festigen oder zu verwerfen. Dabei
soll das Programm nur als unterstützendes Hilfsmittel dienen.
5
Kapitel 2. Analyse der Trainingsdaten
Bild 2.1: DMC-Viewer: Preis(blau), Anzahl(rot) normalisiert
2.2 Vorgedanken
Erste Theorien liefen darauf hinaus, dass die Werte wiederkehrende periodische Sequenzen aufweisen. Bei vielen Items ist ein sieben Tage Rhythmus zu erkennen.
(siehe Bild 2.1) Ein erster Schritt war es nun die Tage anhand eines Java-Snippets
in KNIME in Wochen und Wochentage aufzuteilen.
Zudem ist um den 11. und 41. Tag eine erhöhte Anzahl von Käufen zu beobachten,
was wiederum auf den Tag der Gehaltsausschüttung hindeuten könnte. So könnte
man diese Tage als Monatsende bzw. -anfang deklarieren. Teilweise erhalten Arbeitnehmer ihr Gehalt auch in der Mitte des Monats. So ist um den 25. Tag ein lokales
Maximum der Ausgaben zu erkennen. Ausgehend davon sollten die berechneten Ergebnisse an diesen Tagen des Monats stärker gewichtet werden.
Des Weiteren ist anzunehmen, dass sich die Items in bestimmte Gruppen einteilen
lassen:
Items in Abhängigkeit des Preises
Diese Sorte von Items werden nur gekauft, wenn der Preis ein relativ niedriges Niveau erreicht hat bzw. kurz nach einem Preissturz. Dabei ist ein Offset einzuplanen,
6
Kapitel 2. Analyse der Trainingsdaten
welcher der Reaktion des Marktes entspricht.
Bedarfsabhängige Items
Diese Gruppe von Items werden immer nach Bedarf gekauft. Sie sollten eine geringe
Varianz in der Preisentwicklung zeigen und dazu stetig bleibende Verkaufszahlen
aufweisen.
Items in Abhängigkeit anderer Items
Es sollten Produkte zu finden sein, die immer mit anderen Produkten zusammen
gekauft werden. Dabei ist darauf zu achten, dass Produkte oftmals vergessen und
nachgekauft werden (+/- 2 Tage). Die Items dieser Itemsets sollten ähnliche Verkaufsentwicklung aufzeigen. Zudem sollte es möglich sein, dass sich diese Menge mit
den Mengen der bedarfsabhängigen bzw. preisabhängigen Items überschneidet.
Bei weiteren Überlegungen und genauer Betrachtung der Graphenverläufe des Preisverhaltens und der Anzahl der Verkäufe wird jedoch schnell ersichtlich, dass sich
kaum Zusammenhänge zwischen den beiden Werteverläufen herstellen lassen können. Somit sollte dies zu der Entscheidung führen, gewisse Assoziationsregeln in den
Hintergrund für die geforderte Wertevorhersage zu rücken.
7
Kapitel 3. Theoretische Grundlagen
3 Theoretische Grundlagen
Im folgenden Kapitel werden einige anwendbare Techniken theoretisch beleuchtet
und erklärt. Diese Techniken könnten einen Teil zur Lösung des Problems beitragen.
3.1 Probalistische Neuronale Netze
Künstliche Neuronale Netze stellen Modelle dar, mit denen biologische neuronale
Netze nachgebildet werden sollen. Sie kommen in verschiedenen Bereichen zur Anwendung, wie bspw. bei Klassifikationszwecken. Das Netz besteht aus sogenannten
Neuronen, die mit Hilfe gewichteter Eingaben und einer Aktivierungsfunktion Ausgaben erzeugen. Grundsätzlich unterscheiden sich die Klassen der Netze vorwiegend
durch die unterschiedlichen Netztopologien und Verbindungsarten, wie bspw. einschichtige, mehrschichtige, Feedforward- oder Feedback-Netze.
Probabilistische neuronale Netze (PNN) gehören zur Klasse der Radial-Basis-Netze,
welche wiederum den neuronalen Feedforward Netzen zuzuordnen sind. Das Netz
besteht hierbei aus vier Schichten. Einer Eingabe- und einer Ausgabe-Schicht zur
Dateneingabe bzw. -ausgabe und den so genannten Hidden und Pattern Schichten.
Am Eingang des Neurons liegt ein Eingangsvektor x mit R Elementen an. Bei der
Eingabe werden die importierten Werte des Eingabevektors einzelnen Neuron zugeordnet, die später in der Hidden-Layer mit dem Gewichtsvektor ω verknüpft werden.
Die Gewichtsvektoren dienen als Kostenfaktoren, wodurch die Entscheidung nicht
anhand von reinen Wahrscheinlichkeiten sondern z.B. durch die zu erwartenden
Kosten getroffen werden. Die Verknüpfung mit dem Gewichtsvektor, der ebenfalls
R Elemente enthält, erfolgt als vektorielle Distanz d zwischen Eingangs- und Gewichtsvektor über den euklidischen Abstand.
8
Kapitel 3. Theoretische Grundlagen
Bild 3.1: PNN: Verfahrensweise
Den Netzeingang n erhält man durch Multiplikation der Distanz d mit dem Bias
b. Der Bias entspricht einem weiteren Gewicht mit dem Eingangswert 1. Der so erhaltene Netzeingang n wird als Argument der Radial-Basis-Funktion, die hier als
Aktivierungsfunktion f dient, übergeben. Die Radial-Basis-Transformation stellt eine gaußförmige Funktion mit dem Erwartungswert 0 dar. Die Aktivierungsfunktion
generiert die Ausgabe des Neurons, welche eben mittels ω und b beeinflusst werden
kann. Das Training des Netzes besteht darin, die Gewichte so anzupassen, dass die
gewünschte Ausgabe erzeugt wird. Der Netzausgangswert a des Neurons wird damit
maximal, wenn der Netzeingang n = 0 ist. Dies ist der Fall, wenn der Eingangsvektor
x und der Gewichtsvektor ω identisch sind. Das Neuron kann damit als ein Detektor
angesehen werden, der als Ausgang ein Ähnlichkeitsmaß für x und ω liefert. Die
Empfindlichkeit der Detektion kann dabei durch Anpassung des Bias-Wertes eingestellt werden. Bei den PNN wird eine normalisierende Aktivierungsfunktion in den
Ausgabeneuronen verwendet, wodurch die Summe der Ausgabe aller Neuronen gleich
1 ist. Folglich lässt sich die Ausgabe der Posteriori-Wahrscheinlichkeit für Cluster
bei Beobachtung der Muster interpretieren. Damit berechnet die Ausgabeschicht die
bedingte Wahrscheinlichkeit für eine Klasse.
9
Kapitel 3. Theoretische Grundlagen
3.2 Lineare Regression
Die Lineare Regression ist ein konzeptuelles Modell zur Vorhersage einer abhängigen Variablen Y durch eine unabhängige Variable X. Bei der einfachen linearen
Regression ist der Ausprägungsgrad der Variable X bekannt, wodurch der Ausprägungsgrad der Variable Y vorhergesagt werden kann. Der Regressionskoeffizient ist
hierbei als Anstieg der Geraden zu betrachten, wodurch es möglich ist eine lineare
Funktion, die den Zusammenhang zwischen X und Y optimal beschreibt, zu finden.
Der Anstieg repräsentiert die durchschnittliche Veränderungsrate der Y -Werte pro
Zunahme einer Einheit von X -Werten.
Jede Gerade lässt sich mit einer Funktion vom Typ Y = bX + a abbilden. In der
Gleichung wird der Y -Wert zur Schätzung linear transformiert. Die Regressionsgerade entspricht dann dem Trend der Punkte im Streudiagramm. Jedoch liegen die
wenigsten Punkte genau auf der Geraden. Der Schätzfehler der Vorhersage eines
bestimmten Wertes Y ist als Differenz zwischen dem tatsächlichen und dem vorhergesagten Y -Wert definiert. Da alle anhand der Regressionsgleichung vorhergesagten
Werte auf der Regressionsgeraden liegen, ist ein Gesamtmaß für den Schätzfehler
der Regressionsgleichung nach dem Kriterium der kleinsten Quadrate die Summe
der quadrierten Abweichungen der vorhergesagten Werte Y von den tatsächlichen
gegebenen Werten. Dabei sollte der Anstieg so gewählt werden, das der quadratische
Fehler minimal ist.
Die lineare Regression geht über die reine Beschreibung der Daten hinaus. Sie kann
als Erklärungs- und auch als Prognosemodell eingesetzt werden. Dazu wird eine
Regressionsgerade gesucht, welche den Trend im Streudiagramm am besten wiedergibt.
10
Kapitel 4. Vorverarbeitung
4 Vorverarbeitung
Die Vorverarbeitung wurde in KNIME bewerkstelligt. Zunächst wurden alle Items
in einer Schleife normalisiert, um einen Wertebereich der Verkaufszahlen und Preise
zwischen 0 und 1 zu realisieren.
Da es anzunehmen ist, dass die Kurven der Attribute periodisch auftreten, wurden
diese in einem 7-Tage-Rhythmus in Wochen und Wochentage eingeteilt.
Bild 4.1: Vorverarbeitung
Für jeden Ansatz war es zudem wichtig die Datensätze in Trainings- und Testmenge
aufzuteilen. Die Trainingsmenge belief sich auf 28 Tage. Somit wurde auf den übrigen
14 Tagen getestet.
11
Kapitel 5. Lösungsvarianten
5 Lösungsvarianten
Im folgenden Kapitel werden Varianten zur Findung einer Lösung des genannten
Problems erklärt. Zudem wird hier auf die Anwendung der Methoden mittels KNIME eingegangen.
5.1 Probabilistische neuronale Netze
Ein Ansatz stellt die Anwendung von PNNs dar. Hierzu wurden die Daten zunächst
normalisiert und in Cluster mittels Kmeans aufgeteilt. Für das Clustering-Verfahren
wurden zunächst der Mittelwert und die Varianz eines jeden Items berechnet. Diese
zwei Merkmale dienten so als Kriterien für das Clustering-Verfahren. Jeder Cluster
beinhaltete also die Datensätze für den PNN-Learner. Das sich daraus ergebene
Modell wurde für die Vorhersage (PNN-Predictor) genutzt.
Bild 5.1: KNIME: Clustern & PNN
Ein Nachteil der gegebenen Datensätze stellt ihre Anzahl dar, speziell die Menge
an Tagen, die zum Trainieren gegeben war, bzw. die geringe Anzahl von 570 Items.
Bei einer Clusteranzahl von acht ergaben sich für den größten Cluster 115 und
12
Kapitel 5. Lösungsvarianten
für den kleinsten 49 Datensätze. Jedes Item besaß den Verlauf der Anzahl und
des Preises über 28 Tage. Somit ergaben sich für den Preis und die Anzahl des
größten Clusters zusammen 6440 Datensätze. Für solche geringen Mengen an Daten
in Verbindung mit der Komplexität des eigentlichen Problems stellen neuronalen
Netze keine verwendbare Lösung dar.
5.2 Mittelwert
Für die Menge an Items, deren Verkaufszahlen nicht ausreichend gut mit den oben
genannten Techniken vorhergesagt wurden, bediente man sich der Berechnung des
Mittelwertes.
Dazu wurden die Mittelwerte für jedes Item zum einen über die gesamte Zeit (s.
Abb. 5.2) berechnet und zum anderen für jeden einzelnen Wochentag (s. Abb. 5.3).
Bild 5.2: Knime: Mittelwertberechnung über alle Tage
Bild 5.3: Knime: Mittelwertberechnung über die einzelnen Wochentage
13
Kapitel 5. Lösungsvarianten
5.3 Lineare Regression
Um die Entwicklung über alle Items einschätzen zu können, wurde zunächst in
KNIME die lineare Regression angewendet. (s. Abb. 5.5)
Bild 5.4: Lineare Regression über alle Items
Diese Art der Regression wurde in einer Schleife in KNIME auf jedes Item angewendet, sodass mit den vorhergesagten Daten für jedes Item der Fehler berechnet
werden konnte. Dabei wurde zunächst die Anzahl der verkauften Produkte über den
Tag und den Preis vorhergesagt. Ignoriert man jedoch den Tag ergeben sich wesentlich geringere Fehlerwerte. Da ein Wert der Verkaufsanzahl nicht kleiner null sein
kann, wurden negative Werte auf Null gesetzt. Ein wesentlicher Vorteil der linearen
Regression ist die stärkere Gewichtung aktuellerer Daten, die durch den errechneten
Anstieg gegeben ist.
Bild 5.5: KNIME: Lineare Regression für jedes Item
14
Kapitel 6. Ergebnisse
6 Ergebnisse
Die Liste der vorhergesagten Ergebnisse setzt sich aus den „besten“ Vorhersagen
aller angewendeten Methoden zusammen.
Dazu wurde für jede Methode über jeden vorhergesagten Wert eines jeden Items die
Distanzen zum eigentlichen Wert berechnet und aufsummiert. Anschließend wurde
der Wert mit der kleinsten Distanzsumme in die endgültige Liste aufgenommen.
Eine weitere Spalte in der Ergebnisliste gibt an, mit welcher Methode die Werte des
jeweiligen Items vorhergesagt wurden.
Folgende Tabellen verdeutlichen die Ergebnisse der angewendeten Methoden:
Quadratischer Fehler
Manhatten Distanz
nicht gerundet
465,93
20789,20
abgerundet
473,06
20470
aufgerundet
464,53
21478
gerundet
467,04
20713
Tabelle 6.1: Ergebnisse: Lineare Regression
Quadratischer Fehler
Manhatten Distanz
nicht gerundet
489,44
21083,07
abgerundet
495,95
20756
aufgerundet
488,54
21774
gerundet
489,87
21018
Tabelle 6.2: Ergebnisse: Mittelwert über alle Tage
15
Kapitel 6. Ergebnisse
Quadratischer Fehler
Manhatten Distanz
nicht gerundet
485,35
20915
abgerundet
489,86
20682
aufgerundet
484,89
21316
gerundet
484,96
20872
Tabelle 6.3: Ergebnisse: Mittelwert über die jeweiligen Wochentage
Tabelle 6.1 zeigt einen Gegenüberstellung der Ergebnismengen der verschiedenen
Knime report powered by Birt
Methoden.
DataMining Cup 2012
"itemID"
"meanWeekday"
"linReg"
"mean"
"Winner_distance"
"Winner_name"
3
40
38.866
39.429
38.866
LinReg
69
30
30.85
32.714
30
MeanWeekDay
114
24.5
23.811
24.143
23.811
LinReg
249
15
13.223
13
13
Mean
271
58
59.814
57.429
57.429
Mean
287
19.5
14.563
19.429
14.563
LinReg
389
21
17.905
18.429
17.905
LinReg
445
17.5
14.034
14.5
14.034
LinReg
516
19.5
22.295
19
19
Mean
550
20
15.872
17.286
15.872
LinReg
Bild 6.1: Ergebnisgegenüberstellung der einzelnen Methoden an zufällig ausgewählten
Items
Date: 11.05.2012 12:37
Author: Team FKK
1
of
1
www.knime.org
16
Kapitel 6. Ergebnisse
Die besten Werte wurden über die lineare Regression und den Mittelwerten über
alle Tage, sowie die der Wochentage vorhergesagt.
In Tabelle 6.4 wurde der beste Wert durch das aufrunden der vorhergesagten Werte
erzielt (Kriterium: Quadratischer Fehler). Dabei wurden 167 Items mit der Linearen
Regression, 164 Items über den Mittelwert über alle Tage und 239 Items über den
Mittelwert über den jeweiligen Wochentag bestimmt.
Quadratischer Fehler
Manhatten Distanz
nicht gerundet
444,74
19249,54
abgerundet
451,84
19090
aufgerundet
443,07
19789
gerundet
444,57
19131
Tabelle 6.4: Ergebnisse: Lineare Regression in Verbindung mit Mittelwert über alle Tage
& Mittelwert über die jeweiligen Wochentage
17
Literaturverzeichnis
Literaturverzeichnis
[1] Mutz, Michael:
Universitaet Potsdam - Lineare Regressionsanalyse.
http://www.uni-potsdam.de/u/soziologie/methoden/mitarbeiter/
shk/Michael/1b/9_Zusammenfassung_Teil1.pdf, Abruf: 13. Mai 2012
[2] Universitaet Hamburg - Lineare Regression. http://www2.jura.uni-hamburg.
de/instkrim/kriminologie/Mitarbeiter/Enzmann/Lehre/StatIKrim/
Regression.pdf, Abruf: 13. Mai 2012
[3] Siebers, Stefan: Ein Konzept fà 41 r die merkmalsbasierte Tumor-Klassifikation
mit diagnotischem Ultraschall. Dissertation, 2008
[4] Berthold, M.:
Netzwerke mit radialen Basisfunktionen.
http:
//www.informatik.uni-konstanz.de/fileadmin/BioML/Lehre/SS_09/
DM2/VL06_RBF_PNN_details.pdf, Abruf: 13. Mai 2012
18
Abbildungsverzeichnis
Abbildungsverzeichnis
2.1
DMC-Viewer: Preis(blau), Anzahl(rot) normalisiert . . . . . . . . . .
6
3.1
PNN: Verfahrensweise . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4.1
Vorverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1
5.2
5.3
5.4
5.5
KNIME: Clustern & PNN . . . . . . . . . . . .
Knime: Mittelwertberechnung über alle Tage . .
Knime: Mittelwertberechnung über die einzelnen
Lineare Regression über alle Items . . . . . . . .
KNIME: Lineare Regression für jedes Item . . .
6.1
Ergebnisgegenüberstellung der einzelnen Methoden an zufällig ausgewählten Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
. . . . . . . .
. . . . . . . .
Wochentage .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
13
13
14
14
19
Inhalt des Archivs
Inhalt des Archivs
/
KNIME-Workflow
KNIME_LinReg_PNN_und_Mittelwert_Modelle.zip
KNIME_Modellaufbau_zur_Abgabe.zip
DMC-Viewer
DMC-Viewer.exe
ZedGraph.dll
Dokumentation.pdf
Ergebnisse
class.txt
Offizielle Aufgabe
class.txt
dmc2012_task.pdf
ShopAgentInterface.java
SimpleAgent.java
train.txt
20
Herunterladen