[PYTHON] Processus de compétition Kaggle du point de vue de la transition des scores

Processus de compétition Kaggle du point de vue de la transition des scores

Cet article est le 6ème jour du calendrier de l'Avent de The Road to AI Dojo "Kaggle" by Nikkei xTECH Business AI ① Advent Calendar 2019 Ceci est un article.

Cet article s'adresse aux débutants de Kaggle qui ne savent pas comment travailler sur Kaggle **. J'écrirai un article sur ce que font les kagglers à un moment donné tout en regardant la transition de partition de la compétition. En ce qui concerne le niveau, Que faire ensuite après l'inscription avec Kaggle-Si vous faites cela, vous pouvez vous battre assez! Après avoir appris les bases de l'apprentissage automatique et de Kaggle autour du noyau d'introduction 10 du Titanic ~, essayez de défier la compétition qui se déroule actuellement. Il est destiné aux personnes qui y réfléchissent.

Transition de score

Tout d'abord, utilisez kaggle api pour extraire la transition de score du participant du classement.

classement des compétitions kaggle nom de la compétition--download

Avec la commande ci-dessus, la date de soumission et le score public lorsque chaque participant met à jour le score peuvent être téléchargés sous forme de fichier csv.

C'est ma transition de score de la compétition NFL qui s'est terminée l'autre jour. Malheureusement, mon processus dans ce concours, dont je n'ai rien remarqué, peut être divisé en quatre périodes. nfl_my_score.png

C'est la transition de score des 5 meilleures équipes publiques. Est-ce aussi le cas si vous divisez le processus par l'imagination? nfl_top5_score.png

Certaines équipes continuent d'améliorer leurs scores en permanence.

Période de construction de base

nfl_my_score_1.png

Il est temps de comprendre les données, d'effectuer légèrement EDA et de créer un modèle simple sans créer de fonctionnalités ou d'autres idées. Construisez la validation croisée appropriée ici (si possible). Je pense que beaucoup de gens ne soumettent pas ici, mais à titre de comparaison, je soumets toujours **. L'un des résultats est la différence entre le modèle simple et le modèle supérieur. Dans le cas d'une participation au milieu de la guerre, le noyau peut être utilisé comme base de référence.

L'âge d'or qui monte quoi qu'il arrive

nfl_my_score_2.png

Dans le cas d'un concours de table, la création de fonctionnalités commence à partir d'ici. C'est relativement facile à trouver ici, et je vais donner la priorité aux fonctionnalités qui, je pense, vont augmenter. Le premier réglage des paramètres se fait également ici (au fait, je suis une secte de réglage manuel chaleureux). De là, je vais le décrire séparément pour le tableau et l'image.

table

image

Je ne sais rien

nfl_my_score_3.png C'est un moment où rien ne va pas. Le moment où vous ne comprenez rien, comme le nombre de fonctionnalités qui, selon vous, ne fonctionne pas, cv augmente mais LB ne monte pas, cv ne monte pas mais LB augmente. Lorsqu'un certain nombre de fonctionnalités est créé, il a tendance à surajuster en créant des fonctionnalités qui ont déjà été prises en compte (je pense).

table

――Recherchez des indices en patrouillant dans le noyau et en discutant pour les presser.

image

Cela peut prendre beaucoup de temps pour apprendre une image une fois, et j'ai l'impression de remarquer quelque chose ou d'entrer dans la période d'ajustement finale avant la période où je ne comprends rien.

―― Recherchez des indices en patrouillant dans les noyaux et les discussions.

C'est difficile en ce moment car il est sorti sur le LeaderBoard. Dans Freesound Audio Tagging 2019, qui a remporté la médaille d'or, l'examen minutieux du noyau puclique a été une percée.

La période où j'ai remarqué quelque chose

nfl_top5_score_1.png (La flèche ci-dessus est une illusion)

Malheureusement, je n'ai pas eu cette fois dans la compétition NFL, mais quand je regarde le classement, il y a pas mal de gens qui sautent soudainement. Je pense qu'il y a plusieurs raisons, mais quand je lis les solutions, je pense que le plus commun est que je regarde souvent les données **.

--Découvrir la fuite

"Créer des fonctionnalités basées sur une connaissance approfondie" est généralement difficile à exprimer car il s'agit d'un concours, mais je pense que cet article sera très utile. (Référence: Différences entre les data scientists ordinaires et les data scientists de classe mondiale)

Ensemble et période d'ajustement final

nfl_my_score_4.png Dans cette compétition NFL, je n'avais pas d'autre choix que de commencer tôt l'ensemble et les derniers ajustements, mais il semble que beaucoup de gens le fassent habituellement il y a environ une semaine.

En gros, je sais que le score va augmenter, mais je pense que je le fais souvent en dernier pour des choses qui augmentent la quantité de calcul **. Le score de l'ensemble augmentera certainement, donc à moins que vous n'atteigniez la limite de temps dans une compétition de noyau, etc. Le deuxième réglage des paramètres est également ici. Dans le cas d'une table, un grand nombre de fonctionnalités sont généralement ajoutées, il convient donc de l'ajuster à nouveau ici. Cela diminue également le taux d'apprentissage. Si vous faites équipe et créez différents modèles, l'ensemble sera souvent très efficace.

table

image

Les images prennent beaucoup de temps à apprendre une fois, donc je pense qu'il est souvent plus rapide de commencer à s'entraîner pour un ensemble.

--Migrer vers un réseau plus lourd (ResNet-101, Densenet-121 ~, inceptionv3, ResNeXt-50-32x4d ~, Wide ResNet-50-2 ~) ――Ensemble avec diverses variantes de réseaux

C'est la fin du processus depuis le début du concours Kaggle jusqu'à la soumission finale. Bien sûr, je ne pense pas que tout le monde fasse ce processus, et l'ordre dans lequel ils travaillent dépend des défis de la compétition, mais je pense que le processus convergera dans une certaine mesure si vous rencontrez plusieurs compétitions. Je veux aussi connaître le processus de personnes plus fortes.

Enfin, c'est un bonus.

Meilleures pratiques pour ceux qui commencent Kaggle

À mon avis, cet itinéraire est recommandé pour ceux qui commencent Kaggle.

Que faire ensuite après vous être inscrit à Kaggle - Si vous faites cela, vous pouvez vous battre assez! Premiers pas avec Titanic 10 Kernel ~ Celui-ci devrait être publié par Kodansha en tant qu'introduction à Kaggle en mars 2020 (https://upura.hatenablog.com/entry/2019/12/04/220200). 20191203164651.png

(2) Copiez le noyau avec un grand nombre de votes lors de la dernière compétition / compétition actuelle Un bon noyau est un trésor de connaissances. Surtout pour les débutants, beaucoup de votes ont tendance à être attachés, alors choisissez-en un qui a beaucoup de votes et semble expliquer soigneusement dès le début. Si vous avez un score, vous pouvez apprendre le déroulement de la soumission. J'ai l'impression d'avoir commencé avec le concours de crédit immobilier Commencez ici: Une introduction douce. homecredit_kernel.png

Technologie d'analyse de données qui gagne avec Kaggle Inutile de dire, un livre de plaque de fer. Ce n'est pas du tout un livre pour les débutants, donc je pense qu'il vaut mieux suivre le processus ci-dessus. Le code est également inclus, donc si vous êtes dans une compétition de table, vous pouvez devenir plus fort en participant à la compétition actuelle avec cela dans une main.

418YjfYRlhL.jpg

À la fin

Je pense que c'est une excellente occasion de démarrer Kaggle car les informations dispersées dans différentes directions et implicitement connues dans Kaggler ont été rassemblées dans des livres. J'espère que cet article aidera tous ceux qui souhaitent se lancer dans Kaggle.

Recommended Posts

Processus de compétition Kaggle du point de vue de la transition des scores
Points Python du point de vue d'un programmeur en langage C
Existence du point de vue de Python
Traiter le résultat de% time,% timeit
Apprenez du concours code-Mercari gagnant
Comparaison de R, Python, SAS, SPSS du point de vue des data scientists européens
Tendances des langages de programmation du point de vue de GitHub (mises à jour semestrielles)
Défis de la compétition Titanic pour les débutants de Kaggle
Implémenter une partie du processus en C ++
Notes d'apprentissage depuis le début de Python 1
Omettre la nomenclature depuis le début de la chaîne
Définissez le nom du processus du programme Python
Notes d'apprentissage depuis le début de Python 2
Récupérer le contenu de git diff depuis python
Résumé de Kaggle: Planète, comprendre l'Amazonie depuis l'espace
Signate_ Revue du 1er Concours Limité Débutant
Modifiez le point décimal de la journalisation de, à.
Envoyer Gmail à la fin du processus [Python]
Trouver le début de l'avenomics à partir du grossissement NT 2
Extrait uniquement complet du résultat de Trinity
Trouver le début de l'avenomics à partir du grossissement NT 1
De l'introduction de pyethapp à l'exécution du contrat
Transition du baseball vue à partir des données
Histoire de passer de Pipenv à la poésie