[PYTHON] Gagnez avec Kaggle en pratiquant "La technologie d'analyse des données qui gagne avec kaggle" --Kaggle M5 Forecasting Accuracy 59e (sur 5558) Résumé de la solution

introduction

Résumé des solutions pour Kaggle M5 Forecasting --Accuracy Competition 59e (sur 5558).

Mon environnement d'apprentissage est un environnement PC normal avec un peu de mémoire uniquement Mémoire 16G, processeur uniquement (intel i5-3470 3,2 GHz) Le modèle est un modèle unique de LGBM, et il n'y a pas d'ensemble. Je n'ai pas non plus réglé les paramètres. Je n'ai rien fait de spécial, j'ai juste fait ce qu'il dit dans "Kaggle Winning Data Analysis Techniques". Je suis surpris de gagner le premier prix de la compétition de table à cause de cela.

KaggleExpert2020.PNG

C'est un modèle très simple, donc j'ai pensé qu'il valait la peine d'être partagé et de partager ce que j'ai fait dans cette compétition Je garderai une trace de ce que j'ai pensé et fait réellement pour aider ceux qui vont participer à des concours d'analyse de données comme Kaggle.

Aperçu de la compétition

Nous prévoyons les ventes de produits Walmart jusqu'à 28 jours à l'avance. Les magasins cibles sont la Californie (CA), le Texas (TX) et le Wisconsin (WI), pour un total de 10 magasins. La métrique utilise une métrique spéciale appelée WRMSSE, plutôt qu'un simple RMSE réel des ventes et des prévisions.

Caractéristiques de WRMSSE

――Si le changement quotidien des ventes est drastique, l'erreur de prédiction sera faible, et s'il n'y a pas beaucoup de changement, l'erreur de prédiction sera grande.

Caractéristiques des données

Comme mentionné ci-dessus, il y a 10 magasins, des produits dans 3 catégories d'aliments, de loisirs et de ménage, le nombre de produits est de 3049, et les données de ventes passées sont données pour environ 5 ans. Les quantités caractéristiques sont données sous forme de date, jour de la journée, date de l'événement, prix de vente des marchandises et si un coupon alimentaire appelé SNAP, qui est local aux États-Unis, peut être utilisé. Je ne sais pas quel est le nom du produit (la dinde peut être vendue à Thanksgiving, ou une correction précise ne peut pas être faite simplement) Personnellement, je pensais qu'il n'y avait pas beaucoup de données sur la quantité de fonctionnalités ... (N'est-ce pas un peu impossible à prédire avec cela? Vous ne pouvez comprendre que les fonctionnalités périodiques?)

Cahier public qui était utile

Back to (predict) the future - Interactive M5 EDA Pour avoir un aperçu des données, j'ai commencé par lire ce cahier.

M5 - custom validation J'ai commencé Study en déplaçant le prochain modèle abordable accessible au public. Ce modèle a été le premier à bouger. Je pense que c'est un modèle relativement léger, mais j'ai été déçu car il m'a fallu huit heures pour apprendre tous les produits avec ce modèle sur mon PC.

M5 - Simple FE Étant donné que les données d'origine seraient des données de taille assez grande telles quelles, un ensemble de données compressées facile à utiliser au format pickle a été publié. De base, j'ai ajouté un montant de fonctionnalités personnalisé par moi-même basé sur ce format de cornichon.

M5 - WRMSSE Evaluation Dashboard Cela a été d'une grande aide pour comprendre WRMSSE. Sur la base de ce cahier, j'ai calculé le WRMSSE des données de prédiction de mon modèle et l'ai confirmé, et j'ai visualisé et confirmé les ventes des données (évaluation) à soumettre avec une légère modification. Cependant, en dehors de ce cahier, la méthode de calcul officielle du WRMSSE PDF est affichée sur le site du concours, donc je pense qu'il était nécessaire de la lire attentivement.

De plus, des bénévoles ont publié un cahier décrivant le concours en japonais, ce qui m'a aidé à le lire et à le comprendre. Merci beaucoup.

Stratégie et jalon

Tout d'abord, à titre personnel, j'avais pour objectif approximatif de devenir un expert Kaggle en 2019. Cependant, en réalité, ceux qui ont participé au concours sur une base ad hoc et ont soumis un modèle qui était sur le point de gagner avec un peu d'ingéniosité étaient tous hors de la fourchette gagnante en raison de la punition, donc à titre de réflexion, cette année ce n'est pas le classement, mais le premier Participer à des compétitions environ trois fois par an et travailler plus dur comme une activité régulière, où il est habituel d'apprendre des compétitions, ce n'est pas un objectif de classement, mais le nombre de fois où j'ai participé correctement et quelque chose qui en découle Le but était d'en faire une chose.

En tant que plan stratégique pour ce concours, j'ai d'abord considéré les stratégies suivantes.

Sur la base de cette stratégie, nous avons fixé les jalons suivants. (En fait, tous n'ont pas été faits, seulement environ la moitié d'entre eux l'ont été)

--Golden Week Short-term intensive Handson (Déterminez le temps à passer, la compréhension des données, la création d'un jeu de données minimal, la sélection de la quantité d'entités, la création de la ligne de base d'évaluation de la quantité d'entités, la création de modèles, la création de la première soumission, la mise en œuvre rétrospective)

--Faire un modèle simple et performant par lui-même

――Il y a un mois Enquête de référence (principalement en regardant les domaines qui pourraient être améliorés) ――Il y a une semaine Enquête de base (principalement en regardant les domaines qui pourraient être améliorés)

Valeur de la fonctionnalité

M5 - Custom features Je n'ai pas utilisé cette fonctionnalité.

M5 - Simple FE Les fonctionnalités suivantes ont été ajoutées ici.

Je n'utilise pas log1p e? seulement ça? ···est.

Il est étrange que max soit efficace en tant que contribution du montant de la fonctionnalité.

feature_importance.png

Données et modèle

Pour la simple raison qu'elles ne tiennent pas en mémoire, seules les données de mars à juin et les données de 2016 sont utilisées comme données d'entraînement. Comme cela ne rentre pas non plus dans la mémoire, le modèle est formé en le divisant en données sur la nourriture, les loisirs et les ménages. De plus, 28x3 = 84 modèles sont créés pour 28 jours de dates de prévision, de nourriture, de loisirs et de ménage. En tant que données d'entraînement pour la soumission finale, nous utilisons toutes les données jusqu'à la dernière minute.

Aide à l'amélioration individuelle

Répondre à l'augmentation progressive des ventes

Il a été écrit qu'il serait préférable de multiplier la prévision finale par 1,02 à 1,05 dans certaines discussions car les ventes macro augmenteront petit à petit, probablement en raison de l'influence de l'augmentation de la surface de vente et de l'augmentation de la population. Étant donné que la quantité de fonctionnalités de mon modèle est principalement la quantité de fonctionnalités de décalage, cela ne semble pas avoir beaucoup de sens de le faire, donc juste au cas où, même si j'essaie de visualiser les prévisions de ventes réellement soumises en les connectant avec des données passées, la correction est particulièrement correcte. Je n'avais pas l'air d'en avoir besoin, alors je ne l'ai pas fait.

trend.png

Prévisions de ventes soumises predict.png

Informations d'inondation TX

Il y a eu une discussion sur les avantages et les inconvénients de l'ajout de données météorologiques en tant que quantité de caractéristiques. (Il existe une réglementation selon laquelle les données externes, y compris la période de prévision, ne doivent pas être utilisées) Il y a eu une inondation (tempêtes violentes et inondations) au Texas le 5 / 22-6 / 25, la période de prévision est 5 / 23-6 / 19, et vous pouvez utiliser les événements connus comme du 5/22. Quelqu'un a écrit l'histoire. Puisque des informations sur les inondations ont également été publiées sur le Texas le 4 / 17-5 / 1 (d1909-1923), après avoir appris en excluant les données du Texas le 4 / 17-5 / 1, 4 / 17-5 / 1 J'ai prédit les données Texas de Yahoo! N'a pas ajouté d'informations sur les inondations à la quantité d'entités, décidant qu'il s'agissait d'un bon emplacement sans rapport avec les inondations.

4 / 17-5 / 1 données Texas avec une grande erreur de prédiction flood_tx.png

Prévision de rupture de stock

Étant donné que les articles en rupture de stock sont en premier lieu à 0 vente, nous avons créé un processus basé sur des règles qui extrait les produits avec 0 vente à la veille de la prévision dans les 10 magasins ou 9 magasins. Cependant, comme caractéristique de WRMSSE, le poids est plus léger si les ventes continuent à être de 0, et même si les ventes 0 sont appliquées aveuglément, le score est abaissé et il n'est pas possible de prédire à quel point le produit est réellement en rupture de stock. , Je ne pouvais pas en faire un billet.

Certaines choses semblaient être en rupture de stock, mais j'ai décidé que FOODS_2_242 était en rupture de stock, alors j'ai rempli sales = 0 et créé une soumission. Après ce post-traitement, le score semble s'être légèrement amélioré à 0,58026-> 0,57987.

FOODS_2_242_lack.png

Rétrospective et impressions

C'est tout ce que j'ai vraiment fait. Comme je l'ai écrit au début, le modèle est un modèle unique de LGBM, et il n'y a pas d'ensemble. Je n'ai pas non plus réglé les paramètres. Je n'ai supprimé aucune valeur aberrante et je n'ai prétraité aucune autre donnée. La compétition d'apprentissage automatique a une certaine partie de jeu de chance et peut être comparée au mahjong, mais quand elle se présente, ce n'est pas une paire de trois mémorisations, mais bon, ce sont quatre mémorisations, et maintenant des amateurs !! Eh bien, j'ai fait quelques arrangements simples, n'est-ce pas? Pardon.

Bonne chose

«J'ai pris un jour de congé chez GW pendant deux jours, et je travaillais pour ma famille. En fait, j'ai passé deux jours à étudier l'ensemble du concours. L'objectif était de former le modèle à partir d'une analyse grossière des données et de passer par le processus jusqu'à la première soumission, mais il s'est avéré que la formation prendrait 8 heures, donc je ne pouvais pas passer à la première soumission. .. Cependant, j'ai réalisé l'importance de prendre le temps de comprendre la concurrence. GW, les vacances d'été et autour du Nouvel An sont des opportunités. Avec le recul, même lorsque j'ai remporté le premier prix il y a deux ans, j'avais beaucoup étudié GW sur mon PC. ――Dans le domaine de la prédiction de séries chronologiques, de l'analyse des données à la création d'ensembles de données faciles à utiliser, l'extraction d'ensembles de données minimaux et la création de lignes de base, l'apprentissage et la visualisation des prévisions, il y a quelques points faibles, mais vous devez accumuler vos propres connaissances. A été fait «Même si vous suivez" La technologie d'analyse de données qui gagne avec kaggle ", vous ne pouvez pas gagner car tout le monde le fait ... Avant que cela ne devienne, j'ai réussi à gagner un prix alors que l'effet du livre fonctionnait. De toute façon, vous êtes maintenant dans le ranch Kaggle Expert.

Ce que vous voulez améliorer / ce sur quoi vous voulez travailler ensuite

Autre

Si ce type de contenu vous convient, j'aimerais en parler quelque part dans LT pendant environ 10 minutes. Je n'ai pas parlé en dehors de l'entreprise, j'aimerais donc acquérir de l'expérience après la formation. J'aimerais me trouver une place, mais n'hésitez pas à me contacter s'il y a une demande ~ (^^ /

Recommended Posts

Gagnez avec Kaggle en pratiquant "La technologie d'analyse des données qui gagne avec kaggle" --Kaggle M5 Forecasting Accuracy 59e (sur 5558) Résumé de la solution
[Enquête] Kaggle - Résumé de la solution Quora 5e place
[Enquête] Kaggle - Résumé de la solution Quora 4e place