[PYTHON] Juli, eine bestimmte, M5 ~ Kaggle Anfänger Zeitreihen Datenwettbewerb Fehlergeschichte ~

Wenn ich den 27. Platz in meinem Leben erreichen könnte, hätte mich M5 gerettet. 27. Platz ist anders, weil das Format anders ist ... [Original Song Yorushika / August, sicher, Mondschein](https://music.apple.com/jp/album/%E5%85%AB%E6%9C%88-%E6%9F%90-%E6% 9C% 88% E6% 98% 8E% E3% 81% 8B% E3% 82% 8A / 1455955689? I = 1455955692)

Einführung

Wir haben an dem Wettbewerb Kaggle M5 Forecasting Accuracy teilgenommen, der von März bis Juni 2020 stattfand. Ich habe ein Modell eingereicht, das dem 27. Platz von entspricht (oberste 0,4%) </ font>. Ich habe einen Fehler im Format gemacht und es wurde am niedrigsten </ font>, also trauere ich um die Lösung. Wenn Sie mich das nächste Mal kennen, behandeln Sie mich bitte als beruhigende Gebühr. Nun genieße die Geschichte, wie wir in die Hölle gefallen sind.

Wettbewerbsübersicht

Kaggle M5 Forecasting: Walmart (Supermarkt) Umsatzprognosenwettbewerb Umsatzprognose (Verkaufsvolumen) für jedes Produkt (3049 Typen) in den kommenden 28 Tagen aus den Verkaufsdaten der letzten 1913 Tage. Die Zielgeschäfte sind 10 Geschäfte in Kalifornien, Texas und Wisconsin. スクリーンショット 2020-07-07 21.53.42.png Angesichts der Daten -Vergangene Verkäufe (nach ID, nach Geschäft, nach Artikel usw.) -Preisübergang, -Kalender (Feiertage usw.) Der Bewertungsindex ist im Grunde RMSE (es war ein wenig technisches WRMSSE, aber diesmal wird es weggelassen)

Modell-

Erstellen Sie LGBM für jedes Geschäft und für jedes Prognosedatum (siehe Abbildung unten).

  • Grundsätzlich ist die Vorhersage von Zeitreihen eine sehr schwierige Aufgabe, daher wurden die meisten meiner Ressourcen für die Modellerstellung aufgewendet. Ich bin wirklich dankbar, dass meine Teamkollegen die Funktionen erstellt und das Basismodell erstellt haben. スクリーンショット 2020-07-07 20.45.15.png

Politik

Die Vorhersage von Zeitreihendaten ist nicht für maschinelles Lernen geeignet (Referenz), daher war es zunächst ein statistisches Modell Ich habe LSTM ausprobiert. Es hat aus irgendeinem Grund nicht funktioniert. Daher wurde LGBM für jede Region und jedes Prognosedatum erstellt, damit die Dynamik, die die Daten steuert, so einheitlich wie möglich ist.

-Grund für die Wahl von LGBM Ich denke, dass Modelle, die für die Vorhersage von Zeitreihen erstellt wurden, wie statistische Modelle und LSTMs, im Grunde genommen eine große Dynamik lernen. Aber was ich diesmal vorhersagen möchte, ist jedes Produkt, dh eine kleine Dynamik. Selbst wenn zum Beispiel die Bewegung des gesamten Japaners vorhergesagt werden kann, ist es schwierig, das einzelne Individuum vorherzusagen (ich glaube, dass Japaner Ramen mögen, aber ich weiß nicht, ob Sie Ramen mögen. , Ich mag Tantan-Nudeln. Deshalb habe ich mich entschlossen, LGBM zu fragen, das eine hohe Ausdruckskraft hat.

Gründe für die Erstellung eines Modells für jedes Geschäft

Als ich den Verkaufsübergang jedes Geschäfts anhand von EDA-Notizbuch visualisierte, stellte ich fest, dass die Bewegung für jedes Geschäft sehr unterschiedlich war. .. スクリーンショット 2020-07-07 20.44.55.png

Darüber hinaus hatten FOODS beim Clustering mit UMAP fast die gleiche Verteilung, während HOBBBIES bemerkenswerte regionale Unterschiede aufwiesen. umap_f_cat.png Aufgrund dieser Ergebnisse haben wir beschlossen, die Modelle zu trennen, da es einige gibt, die verkaufen, und einige, die nicht für jedes Geschäft verkauft werden, und die Dynamik, die sie regelt, unterschiedlich ist. Die Bundesstaaten Kalifornien, Texas und Wisconsin, in denen sich die Geschäfte befinden, sind geografisch voneinander getrennt, und ich fand es vernünftig, dass sie unterschiedlich verkauft wurden.

Gründe täglich erwartet

Ob ein rekursives Modell besser ist oder täglich vorhergesagt werden sollte, wie in Diskussion beschrieben. Es war ein wichtiger Punkt. Wir haben einfach einen sicheren Weg gewählt, der nicht viel verfehlt. Bei der Erstellung eines Wiederholungsmodells war lag1 bei der Betrachtung der Permutationsbedeutung negativ.

Charakteristisches Engineering

Grundfunktionen (gleitender Durchschnitt, max / min für einen bestimmten Zeitraum usw.) ** ・ Die Anzahl der Tage, die vergangen sind, seit der Preis des Produkts gestiegen oder gesunken ist ** ** ・ Der Tag, an dem die Verkäufe zum ersten Mal erfasst wurden ** Daten davor waren nicht in der Schulung enthalten. ** ・ Bestellte TS ** Es ist wie eine nicht leckbare Zielcodierung für Zeitreihendaten ** - Maximaler und minimaler Umsatz für einen bestimmten Zeitraum und die Anzahl der Tage, die seit der Aufzeichnung vergangen sind ** Ich habe das gemacht, weil ich dem Lernmodell das Konzept der Zeit beibringen wollte. ** - Verhältnis von 0 zu 10 in früheren Verkäufen ** Ich habe es erstellt, um die Wahrscheinlichkeitsverteilung der Verkäufe zu diesem Zeitpunkt auszudrücken. Wenn der Umsatz 0 beträgt, ist er nicht vorrätig? Ich habe es eingeführt, weil es plötzlich auftauchte, und ich dachte, es sei notwendig, Statistiken in Bezug auf 0 aufzunehmen.

Was ich beim Erstellen der Feature-Menge gedacht habe

Ich habe versucht, ein statistisch aussagekräftiges Merkmal einzufügen und dazu ・ Teamkollegen: Wenn Sie wissen, was mit Ihrer Kaufmotivation zusammenhängt, sollten Sie den Verkauf kennen. ・ Verfasser: Dinge im Zusammenhang mit der Zeit, um Informationen zu geben, die LGBM nicht kennt Ich habe darüber nach gedacht. Eigentlich habe ich verschiedene Dinge wie Rauschunterdrückung, Wellenformkomplexität und Merkmale im Fourierraum ausprobiert, aber es gab nicht viele, die ziemlich effektiv waren.

Lebenslaufpolitik

Wir haben die Daten der letzten 3 Monate verwendet. Ich habe darauf geachtet, diejenigen mit einigen spezifischen Verbesserungen im Lebenslauf nicht zu übernehmen, sondern sie robust zu machen. Ich habe nicht mit dunklerer Magie oder der öffentlichen Bestenliste gerechnet, weil ich Überkonformität vermutete.

Nachlassen vor dem Absenden

Iwamo 8:49 PM Ich lache, weil ich nicht zu hart gearbeitet habe Teamkollege 21.10 Uhr Ich bat um Bestätigung Iwamo 9:10 PM ** Es sieht in Ordnung aus ** </ font>

Und Tod

スクリーンショット 2020-07-07 21.37.39.png Wie oben erwähnt, befand es sich im selben Rang wie die Person, die nicht versehentlich einen Teil des Einreichungsformats eingereicht hat, dh niedrigste ...

Weltlinie, die gewesen sein kann

Ich werde die Partitur des Originalmodells veröffentlichen, da es nicht qualifiziert ist. スクリーンショット 2020-07-01 19.57.28.png

Schließlich

Meine Teamkollegen tun mir leid. Es wurde am Ende bestätigt ... Eigentlich lerne ich zum ersten Mal seit ungefähr einem halben Jahr Kaggle, aber ich glaube, ich habe viel gelernt. Ich bin wirklich enttäuscht, aber ich werde weiterhin mein Bestes geben.