[PYTHON] Gewinnen Sie mit Kaggle, indem Sie "Technologie der Datenanalyse, die mit Kaggle gewinnt" üben - Kaggle M5 Prognosegenauigkeit 59. (von 5558) Lösungszusammenfassung

Einführung

Zusammenfassung der Lösungen für Kaggle M5 Forecasting - Genauigkeitswettbewerb 59. (von 5558).

Meine Lernumgebung ist eine normale PC-Umgebung mit wenig Speicher Nur Speicher 16G, nur CPU (Intel i5-3470 3,2 GHz) Das Modell ist ein einzelnes Modell von LGBM, und es gibt kein Ensemble. Ich habe die Parameter auch nicht eingestellt. Ich habe nichts Besonderes gemacht, sondern nur das getan, was in "Kaggle Winning Data Analysis Techniques" steht. Ich bin überrascht, dass ich deswegen den Hauptpreis im wettbewerbsorientierten Tischwettbewerb gewinnen werde.

KaggleExpert2020.PNG

Es ist ein sehr einfaches Modell, daher dachte ich, es lohnt sich zu teilen und zu teilen, was ich in diesem Wettbewerb getan habe Ich werde aufzeichnen, was ich gedacht und tatsächlich getan habe, um denjenigen zu helfen, die an Datenanalyse-Wettbewerben wie Kaggle teilnehmen werden.

Überblick über den Wettbewerb

Wir prognostizieren den Verkauf von Walmart-Produkten bis zu 28 Tage im Voraus. Die Zielgeschäfte sind Kalifornien (CA), Texas (TX) und Wisconsin (WI) für insgesamt 10 Geschäfte. Die Metrik verwendet eine spezielle Metrik namens WRMSSE anstelle eines einfachen tatsächlichen Umsatz- und Prognose-RMSE.

Funktionen von WRMSSE

――Wenn die tägliche Umsatzänderung drastisch ist, ist der Vorhersagefehler gering, und wenn sich nicht viel ändert, ist der Vorhersagefehler groß.

Datenfunktionen

Wie oben erwähnt, gibt es 10 Geschäfte, Produkte in 3 Kategorien von Lebensmitteln, Hobby und Haushalt, die Anzahl der Produkte beträgt 3049 und vergangene Verkaufsdaten werden für etwa 5 Jahre angegeben. Die Merkmalsmenge wird als Datum, Tag, Ereignisdatum, Verkaufspreis der Waren angegeben, unabhängig davon, ob ein in den USA ansässiger Lebensmittelgutschein namens SNAP verwendet werden kann oder nicht. Ich weiß nicht, wie der Produktname lautet oder wie der spezifische Name lautet (der Truthahn kann zum Erntedankfest verkauft werden, oder eine genaue Korrektur kann nicht einfach durchgeführt werden). Ich persönlich dachte, dass nicht viele Daten als Anzahl der Funktionen angegeben wurden ... (Ist es nicht ein wenig unmöglich, dies vorherzusagen? Sie können nur periodische Funktionen verstehen?)

Öffentliches Notizbuch, das nützlich war

Back to (predict) the future - Interactive M5 EDA Um einen Überblick über die Daten zu erhalten, habe ich zunächst dieses Notizbuch gelesen.

M5 - custom validation Ich habe mit dem Studium begonnen, indem ich das nächste öffentlich verfügbare, erschwingliche Modell verschoben habe. Dieses Modell war das erste, das sich bewegte. Ich denke, es ist ein relativ leichtes Modell, aber ich war enttäuscht, weil ich acht Stunden gebraucht habe, um alle Produkte mit diesem Modell auf meinem PC zu lernen.

M5 - Simple FE Da es sich bei den Originaldaten um relativ große Daten handelt, wurde ein komprimierter Datensatz veröffentlicht, der im Pickle-Format einfach zu verwenden war. Grundlegend Ich habe eine Feature-Menge hinzugefügt, die von mir basierend auf diesem Pickle-Format angepasst wurde.

M5 - WRMSSE Evaluation Dashboard Es war eine große Hilfe beim Verständnis von WRMSSE. Basierend auf diesem Notizbuch habe ich die WRMSSE der Vorhersagedaten meines Modells berechnet und bestätigt und den Verkauf der einzureichenden Daten (Auswertung) mit einer geringfügigen Änderung visualisiert und bestätigt. Abgesehen von diesem Notizbuch wird die offizielle WRMSSE-Berechnungsmethode PDF jedoch auf der Wettbewerbsseite veröffentlicht. Ich denke, es war notwendig, sie sorgfältig zu lesen.

Außerdem veröffentlichten Freiwillige ein Notizbuch, in dem der Wettbewerb auf Japanisch beschrieben wurde, was mir half, ihn zu lesen und zu verstehen. Vielen Dank.

Strategie und Meilenstein

Als persönlicher Hintergrund hatte ich zunächst das grobe Ziel, 2019 Kaggle-Experte zu werden. In Wirklichkeit waren diejenigen, die ad hoc am Wettbewerb teilgenommen und ein wenig Einfallsreichtum für ein Modell in der Nähe des Gewinns eingereicht hatten, aufgrund der Bestrafung außerhalb des Gewinnbereichs. Daher ist das diesjährige Ranking nicht das erste. Etwa dreimal im Jahr an Wettbewerben teilzunehmen und als reguläre Aktivität härter zu arbeiten, wo es üblich ist, aus Wettbewerben zu lernen, ist kein Ranglistenziel, sondern die Häufigkeit, mit der ich richtig teilgenommen habe, und etwas davon Das Ziel war es, es zu einer Sache zu machen.

Als Strategieplan für diesen Wettbewerb habe ich zunächst die folgenden Strategien betrachtet.

--Studieren Sie ähnliche Wettbewerbe in der Vergangenheit ――Suche nach einem Modell, das über einfache und wesentliche Funktionen verfügt und allein verwendet werden kann

Basierend auf dieser Strategie haben wir die folgenden Meilensteine gesetzt. (Eigentlich waren nicht alle fertig, nur etwa die Hälfte))

--Goldene Woche Kurzfristig intensiver Handson (Bestimmen Sie die Zeit, die Sie verbringen müssen, verstehen Sie Daten, erstellen Sie einen minimalen Datensatz, wählen Sie die Feature-Menge aus, erstellen Sie eine Basis für die Bewertung der Feature-Menge, die Modellerstellung, die Erstellung der ersten Einreichung und die retrospektive Implementierung.)

―― Vor einem Monat Top-Baseline-Umfrage (hauptsächlich mit Blick auf Bereiche, die verbessert werden könnten) ―― Vor einer Woche Top-Baseline-Umfrage (hauptsächlich mit Blick auf Bereiche, die verbessert werden könnten)

Funktionswert

M5 - Custom features Ich habe diese Funktion nicht verwendet.

M5 - Simple FE Die folgenden Funktionen wurden hier hinzugefügt.

Ich benutze nicht log1p e? nur das? ··· ist.

Es ist seltsam, dass max als Beitrag des Merkmalsbetrags wirksam ist.

feature_importance.png

Daten und Modell

Aus dem einfachen Grund, dass es nicht in den Speicher passt, werden nur die Daten von März bis Juni und die Daten von 2016 als Trainingsdaten verwendet. Da dies auch nicht in den Speicher passt, wird das Modell trainiert, indem es in Lebensmittel-, Hobby- und Haushaltsdaten unterteilt wird. Darüber hinaus werden 28x3 = 84 Modelle für 28 Tage mit Prognosedaten, Lebensmitteln, Hobby und Haushalt erstellt. Als Trainingsdaten für die endgültige Einreichung verwenden wir alle Daten bis zur letzten Minute.

Individuelle Verbesserungsunterstützung

Reaktion auf allmähliche Umsatzsteigerung

Es wurde geschrieben, dass es in einigen Diskussionen besser wäre, die endgültige Prognose mit 1,02 bis 1,05 zu multiplizieren, da die Makroverkäufe aufgrund des Einflusses der Zunahme der Verkaufsfläche und der Zunahme der Bevölkerung nach und nach zunehmen werden. Da die Feature-Menge meines Modells hauptsächlich die Lag-Feature-Menge ist, scheint es nicht sehr sinnvoll zu sein, dies zu tun. Selbst wenn ich versuche, die tatsächlich übermittelte Umsatzprognose zu visualisieren, indem ich sie mit früheren Daten verbinde, ist die Korrektur besonders korrekt. Ich schien es nicht zu brauchen, also tat ich es nicht.

trend.png

Übermittelte Umsatzprognose predict.png

TX-Hochwasserinformationen

Es gab eine Diskussion über die Vor- und Nachteile des Hinzufügens meteorologischer Daten als Merkmalsgröße. (Es gibt eine Vorschrift, dass externe Daten einschließlich des Prognosezeitraums nicht verwendet werden sollten.) Es gab eine Überschwemmung (schwere Stürme und Überschwemmungen) in Texas am 22.05.-25.06. Der Prognosezeitraum ist der 23.05.-19.06. Jemand hat die Geschichte geschrieben. Da am 4 / 17-5 / 1 (d1909-1923) auch Hochwasserinformationen über Texas ausgegeben wurden, wurde nach dem Lernen durch Ausschluss der Texas-Daten am 4 / 17-5 / 1, 4 / 17-5 / 1 Ich habe die Texas-Daten von Yahoo! Der Feature-Menge wurden keine Hochwasserinformationen hinzugefügt, sodass entschieden wurde, dass es sich um einen guten Ort handelt, der nichts mit Hochwasser zu tun hat.

4 / 17-5 / 1 Texas-Daten mit großem Vorhersagefehler flood_tx.png

Prognose für nicht vorrätige Produkte

Da die Artikel, die nicht vorrätig sind, in erster Linie 0 Verkäufe sind, haben wir einen regelbasierten Prozess erstellt, der Produkte mit 0 Verkäufen ab dem Tag vor der Prognose in allen 10 Filialen oder 9 Filialen extrahiert. Als Merkmal von WRMSSE ist das Gewicht jedoch geringer, wenn der Umsatz weiterhin 0 beträgt, und selbst wenn der Umsatz 0 blind angewendet wird, wird die Punktzahl gesenkt, und es ist nicht möglich vorherzusagen, bis zu welchem Zeitpunkt das Produkt tatsächlich nicht vorrätig ist. Ich konnte es nicht zu einem Ticket machen.

Es gab einige Dinge, die nicht vorrätig zu sein schienen, aber ich entschied, dass FOODS_2_242 nicht vorrätig war, und erstellte eine Übermittlung, indem ich sales = 0 ausfüllte. Nach dieser Nachbearbeitung scheint sich die Punktzahl leicht auf 0,58026-> 0,57987 verbessert zu haben.

FOODS_2_242_lack.png

Rückblick und Eindrücke

Das ist alles was ich wirklich getan habe. Wie ich am Anfang schrieb, ist das Modell ein einzelnes Modell von LGBM, und es gibt kein Ensemble. Ich habe die Parameter auch nicht eingestellt. Ich habe keine Ausreißer entfernt und keine anderen Daten vorverarbeitet. Der Wettbewerb für maschinelles Lernen ist wie ein Mahjong, weil er ein gewisses Glücksspiel hat, aber wenn er auftaucht, sind es nicht zwei Paarungen, sondern hey, es sind vier Erinnerungen und jetzt Amateure !! Nun, ich habe ein paar einfache Vorkehrungen getroffen, nicht wahr? Es tut uns leid.

Gute Sache

――Ich habe zwei Tage frei von der Arbeit bei GW genommen, und meine Familie hat gearbeitet, und tatsächlich habe ich zwei Tage damit verbracht, den gesamten Wettbewerb zu studieren. Das Ziel war es, das Modell von der groben Datenanalyse zu trainieren und den Prozess bis zur ersten Einreichung zu durchlaufen. Es stellte sich jedoch heraus, dass das Training 8 Stunden dauern würde, sodass ich nicht zur ersten Einreichung gehen konnte. .. Mir wurde jedoch klar, wie wichtig es ist, sich die Zeit zu nehmen, um die Konkurrenz zu verstehen. GW, Sommerferien und Neujahr sind Gelegenheiten. Rückblickend hatte GW, selbst als ich vor zwei Jahren den ersten Preis gewann, GW auf meinem PC hart gelernt. ――In der Zeitreihenvorhersage, von der Datenanalyse über die Erstellung benutzerfreundlicher Datensätze, die Extraktion minimaler Datensätze und die Erstellung von Baselines bis hin zum Lernen und Visualisieren von Prognosen, gibt es einige dünne Punkte, aber Sie sollten Ihr eigenes Wissen sammeln. Geschah ――Selbst wenn Sie der "Datenanalysetechnologie, die mit Kaggle gewinnt" folgen, können Sie nicht gewinnen, weil es jeder tut ... Bevor es wurde, konnte ich einen Preis gewinnen, während der Effekt des Buches funktionierte. »Auf jeden Fall sind Sie jetzt auf der Kaggle Expert Ranch.

Was Sie verbessern möchten / woran Sie als Nächstes arbeiten möchten

Andere

Wenn diese Art von Inhalten in Ordnung ist, möchte ich etwa 10 Minuten lang irgendwo in LT darüber sprechen. Ich habe nicht außerhalb des Unternehmens gesprochen, daher möchte ich nach dem Training Erfahrungen sammeln. Ich würde gerne einen Platz für mich finden, kann mich aber gerne kontaktieren, wenn Bedarf besteht ~ (^^ /

Recommended Posts

Gewinnen Sie mit Kaggle, indem Sie "Technologie der Datenanalyse, die mit Kaggle gewinnt" üben - Kaggle M5 Prognosegenauigkeit 59. (von 5558) Lösungszusammenfassung
[Umfrage] Kaggle --Quora 5. Platz Lösungszusammenfassung
[Umfrage] Kaggle --Quora 4. Platz Lösungszusammenfassung