summaryrefslogtreecommitdiff
path: root/doc/document.asciidoc
blob: b3aba3b64c361b73e0d333e9316e8f9cbd395909 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
DMC 2012
========
:author: Jan Klemkow, Benjamin Franzke

Vorbetrachung der Daten
-----------------------

Bei der Datenvorbetrachung konnten weitere Informationen herrausextrahiert
werden.
Die Summer aller Quantitäten abgetragen in einem Graphen ueber die Zeit ergab
eine deutliche periodische Schwankung ueber sieben Tage.
Aus dieser Erkenntniss herraus wurde das Sevenday-Verfahren(siehe unten)
entwickelt.

Verfahren und Programme
-----------------------

Zur Verarbeitung der Daten wurde das Programm Octave benutzt.
In dem Programm wurden die Daten in Form von Matriezen dagestellt.

- Mittelwert
- Liniare-Approximation (preis -> quantitaet)
- Liniare-Approximation (zeit -> quantitaet)
- Mittlere-Wochen-Verhersagen

image::image/opt_pred_pie.svg[Anteil der Verfahren an der Gesammtloesung]

Mittelwert
~~~~~~~~~~
Mittelwert eines Produktes ueber die Trainingsdaten sind die Daten zur
Vorhersage.

Sevenday-Verfahren
~~~~~~~~~~~~~~~~~~

Beim Sevenday-Verfahren wird fuer jeden Wochentag ein Mittelwert gebildet und
Vorhergesagt.

Liniare-Approximation Zeit -> Quantitaet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Der Verlauft der Quantitaet ueber die Trainingsdaten wird linear angenaehert und
fuer den die Vorhersage benutzt.

Lineare-Regresion (special)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Grundidee:
- herrausrechnen der 7-Tage-Einbruche aus den Trainingsdaten fuer die Regression
	und eine Approximation fuer reinen Preis->Quantitaets-Zusammenhang.
- 7-Tage-Einbrueche hinein rechnen.

Der Absatz eines Produktes setzt sich aus verschiedenen Einflussfaktoren
zusammen.
Zum eine die Wochen- und die Preisschwankung.

Zufallsverfahren
~~~~~~~~~~~~~~~~
Dieses Verfahren wurde entwickelt um Plausibitaet der anderen Verfahren zu
Testen und um der Vermutung nach zu gehen, das es Produkte gibt, welche
gar nicht vorhersagbar sind.

Bei dieses Verfahren wurde fuer jedes Product der Mittelwert und die
Standardabweichung ermittelt.
Mit dieses Parametern konnten fuer jedes Product 14 Werte zufaellig fuer die
Vorhersage bestimmt werden.
Zur Zufallsbestimmung wurden Octave-interen Zufallsfunktionen mit Normal- und
mit Chi-Verteilung benutzt.
Beide Verteiltungen lieferten aehnliche Ergebnisse.

Der Gesammtfehler bei diesem Verfahren schankte zwischen 640 und 590
Fehlerpunkten.
Im Vergleich mit anderen Verfahren (siehe Optimierungsverfahren) stellte sich
herraus, dass es immer wieder Produkte gab, welche mit diesesm Verfahren bessere
Werte lieferten.
Circa 7% der Podukte liessen sich mit Zufall besser vorhersagen, als duch die
Zuvor beschriebenen Verfahren.
Es stellte sich aber herraus, dass es bei jedem duchlauf andere Produkte waren,
welche mit dem Vergleich zu den Realendaten besser vorhergesagt wurden.
Somit war dieses Verfahren keine Option fuer eine serioese Vorhersage fuer
unbekannten Datensaetze.

Optimierungsverfahren
~~~~~~~~~~~~~~~~~~~~~
Das Optmierungsverfahren ist Post-Clustering und wurde im Script 'opt_pred.m'
implementiert.
Dieses Meta-Verfahren bestimmt fuer jedes Produkt eines der oben genannten
Verfahren, welches den geringsten Fehlerwert bei der Vorhersage ueber der
Trainingsmenge ergab.
Dabei werden die Vorhersage-Matrizen der Verfahren mit den Real-Daten ueber die
Manhatten-Distanz verglichen.
Als Ergebnis erhaelt man nun einen Vektor, welches die Indizes der jeweils
besten Verfahren enthaelt.
Die Position des Indizes spiegelt dabei das Produkt wieder, fuer die dieses
Verfahren am besten geeignet ist.

Mit diesem Vektor koennen nun die Vorhersagen der einzelnen Produkte fuer den
unbekannten Zeitraum zusammen gelegt werden.

image::image/opt_pred_pie.svg[OptimizePie]

Dieses Verfahren wuerde sich auch gut zur Bestimmung des Abgabe-Datensatzes fuer
den Daten-Mining-Cup eignen.
Dabei koennten alle Teams fuer ihre Verfahren einmal ihre Vorhersage fuer die
Tage 29 bis 42 in Form der "train.txt" und ihre Vorhersagen fuer den unbekannten
Zeitraum abgeben.
Anhand der verschiedenen Fehler der Vorhersagen pro Produkt koennte wie oben
beschrieben ebenfalls ein Vektor mit den Indizes der Verschiedenen Einreichungen
erstellt werden und damit auch der Datensatz fuer die Einreichung im Wettbewerb.