ProjektdokumentationTeamBachelor

Werbung
Projektdokumentation:
Data – Miningcup 2012
Team: Bachelor
Mitglieder: Benjamin Krämer
Roman Knolle
Franz Klaus
Aufgabenstellung:
Analyse eines Warenkorbs mit 570 Items zur Analyse des Bestellverhaltens.
Gegeben ist eine Datei mit einer Auflistung von 570 Items und deren Verkaufsanzahl
und Preis über einen Zeitraum von 42 Tagen. Ziel ist es mit Hilfe verschiedener DataMiningverfahren eine Vorhersage über die Verkaufszahlen der Items in den
folgenden 14 Tagen.
Datenanalyse:
Gegeben ist die Anzahl der verkauften Items pro Tag sowie die jeweiligen Preise.
Sowohl die Preise als auch die Anzahl der Verkäufe unterliegen mehr oder weniger
starken Schwankungen.
Erste Überlegungen:
Nach ersten groben Analysen ist uns eine Unabhängigkeit der einzelnen Items von
deren Preis und der verkauften Menge aufgefallen. Selbst bei steigendem Preis
konnte die verkaufte Menge noch steigen. Des Weiteren erkannten wir, dass die
Items jeweils auf verschiedene Analyseverfahren besser ansprachen als auf andere.
Wir konnten jedoch kein Analyseverfahren finden, welches alle Items
zufriedenstellend analysierte. Anhand dieser Erkenntnis fingen wir an, das jeweils
beste Analyseverfahren für jedes einzelne Item zu suchen. Im zweiten Schritt haben
wir dann eine Abhängigkeit von den Tagen bei jedem Item abgebildet. Dies war sehr
wirksam und verkleinerte die Fehlerpunkte sehr stark.
Durchschnittsberechnung
Im diesem ersten Workflow wird die gegebene Train Datei in 28 und 14 Tage
aufgeteilt und es wird die durchschnittliche Anzahl der verkauften Items für den
ersten Zeitraum ermittelt. Diese werden dann als Variablenliste in das zweite
Workflow eingefügt.
Dieser zweite Workflow ist für die Auswertung und die Fehlerwertberechnung des
Durchschnittsverfahrens. Wir nehmen für die Auswertung die letzten 14 Tage aus der
gegebenen Train Datei und vergleichen die gegebenen Verkaufszahlen mit unserem
vorher berechneten Durchschnittswert. Hierbei wird das Quadrat der Differenz von
einem Item am jeweiligen Tag berechnet (Sum). Dies ermöglicht einen direkten
Vergleich zu anderen Verfahren und die Wurzel der Summe dieser Werte sind die
vom Data Mining Cup(DMC) geforderten Fehlerpunkte. Das Durchschnittsverfahren
hat für einige der Werte gute Vorhersagen ermöglicht.
Als Letztes wird hier der Datensatz auf den Joiner vorbereitet, um die besten
Ergebnisse der einzelnen Analyseverfahren zu verbinden.
Entscheidungsbaum
Das Entscheidungsbaum Verfahren, das wir in diesem Workflow benutzen, ist das
erste Verfahren, das wir nutzen, indem wir Bezug auf die von uns erhofften
Tagesrhythmen nehmen. Für den Bezug auf die Tagesrhythmen nutzen wir die
Variable „Regal“. Diese ist so aufgebaut, dass die Schleife für jedes Item ein
Tagesrhythmus von 1 bis 14 durchläuft. Dabei wird in einem Java Snippet in einer
neuen Spalte vom ersten Tag bis zum Tagesrhythmus hochgezählt, um dann wieder
von 1 zu starten. Der Tagesrhythmus eins wurde von uns aufgenommen, um zu
prüfen, ob bei den Items evtl. keine Abhängigkeit von den Tagen vorhanden ist. Dies
war bei einigen wenigen Items auch der Fall.
Das oben gezeigte Workflow wird genutzt, um die besten Tagesrhythmen für jedes
Item zu ermitteln, d.h. dass für jedes Item die geringste Sum gesucht und dieser
zusammen mit Item ID und Tagesrhythmus an eine Ausgabedatei weitergegeben
wird.
Das dritte Workflow bildet wieder die Sum und bereitet die Daten auf den Joiner vor.
Support Vector Machine
Zunächst haben wir mit einem leicht abweichenden Workflow die besten
Tagesrhythmen für die SVM ermittelt. Nach dem das getan war, haben wir mit dem
unten angestellten Workflow unsere Regal-Variable so verändert, dass sie nun die
Item IDs aller Items enthält, die besten Tagesrhythmen, die wir vorab ermittelt haben
und für jedes Item die Sigma Werte von 0,1 bis 1.
Mit der so veränderten Regal-Variable und dem oben gezeigten Workflow war es uns
möglich, das SVM Verfahren RBF so effektiv wie möglich zu nutzen.
Neuronale Netze
Bei den Neuronalen Netzen hatten wir das Problem, dass die ausgegebene
Vorhersage-Spalte noch normalisiert war. Dies konnten wir beheben, indem wir den
maximalen Wert der verkauften Mengen von jedem Item in den ersten 28 Tagen als
Variable in die Ausgabedatei schrieben. Da wir die Normalisierung bei den
verkauften Mengen über eine Min-Max Normalisation vorgenommen hatten, konnten
wir so die benötigten Werte errechnen. Ähnlich wie bei den anderen
Analyseverfahren wurde dann ein Tagesrhythmus hinzugefügt.
Bei dem letzten Workflow werden die besten Ergebnisse nach dem Tagesrhythmus
errechnet und die Datei für den Joiner vorbereitet.
Neutonale Netze / Bett Variable
Als weiterer Ansatz hatten wir vor, die Neuronalen Netze noch weiter zu optimieren.
Dabei hatten wir vor, nach dem Tagesrhythmus noch die Neuronen und Lagen des
Netzes zu verändern. Die Variablenliste „Bett“ bildete dabei das jeweilige Item mit
dem schon optimierten Tagesrhythmus und einer angepassten Lagenzahl von 1 bis
10 sowie dazu jeweils 1 bis 10 Neuronen.
Nach dem Berechnen der Ausgabewerte für die letzten 14 Tage der Train Datei,
welches einige Stunden in Anspruch nahm, kamen wir mit diesem Ansatz nicht
weiter. Die Auswertung der ca. 800 000 Zeilen hätte einige Tage in Anspruch
genommen, welche uns leider nicht mehr zur Verfügung standen. Darum mussten wir
für das Joinen der Dateien die Ausgabewerte der Neuronalen Netze ohne die
Anpassung an Lage und Neuronen wählen.
Join
Mit dem oben zu sehenden Workflow haben wir im letzten Schritt die besten
Ergebnisse der jeweiligen Analyseverfahren für jedes Item zusammen mit dem
dazugehörigen Parametern an eine Datei übergeben, um so die Fehlerpunkte zu
minimieren. Mit Hilfe der Verfahren Durchschnitt, Entscheidungsbaum und Neuronale
Netze haben wir am Ende für unsere Testdaten einen Gesamtfehlerwert von 391,8
Punkten berechnet.
Herunterladen