Revue de compétitions Kaggle (2016)

Links: notebook, html, python, slides, GitHub

Les gagnants des compétitions Kaggle décrivent parfois leurs solutions sur le blog de Kaggle No Free Hunch. Il y a toujours de bonnes idées à glaner.

%matplotlib inline
from jyquickhelper import add_notebook_menu
add_notebook_menu()

Le blog Kaggle publie régulièrement des interviews des gagnants des compétitions. C’est l’occasion de découvrir la meilleur solution et les outils qui ont permis de la mettre en place. Certains sujets sont des compétitions académiques et les gagnants mettent parfois leur code à disposition sous Github.

The Allen AI Science Challenge

kaggle

  • Objectif : prédire la bonne réponse à un QCM

  • données : des QCM et leurs réponses

The Allen AI Science Challenge, Winner’s Interview: 3rd place, Alejandro Mosquera (lire aussi résumé des trois solutions

Type de features

  • ES_raw_lemma: IR scores by using ES and raw/lemmatized KB.

  • ES_lemma_regex: Regex scoring (number of characters matched) after IR results.

  • W2V_COSQA: Cosine similarity between question and answer embeddings.

  • CAT_A1: Is multiphrase question + short response?

  • CAT_A2: Is fill the _______ + no direct question + long response?

  • CAT_A3: Is multiphrase question + long response?

  • ANS_all_above: Is “all of the above” answer?

  • ANS_none_above: Is “none of the above” answer?

  • ANS_both: Is “both X and Y” answer?

  • ES_raw_lemmaLMJM: IR scores by using ES and raw/lemmatized KB with LMJM scoring.

  • ES_lemma_regexLMJM: Regex scoring (number of characters matched) after IR results using LMJM.

ES = Elastic search

Sur GitHub : amsqr/Allen_AI_Kaggle

Idées à récupérer

  • ajout de données provenant de sources exéterieures aux problèmes (voir la liste des ressources ajoutées par le vainqueur).

  • calcul de statistiques sur des corpus plus grand que les données du problème

  • Code disponible sur GitHub : des exemples à récupérer

  • Utilisation de BM25, version améliorée du TF-IDF

Predicting Red Hat Business Value

kaggle

  • Objectif : déterminer le potentiel d’un client, ce potentiel est déterminé par la réalisation d’un événement dans une fenêtre de temps

  • Données : les données contiennent des informations sur les utilisateurs et sur leurs actions

Red Hat Business Value Competition, 1st Place Winner’s Interview: Darius Barušauskas

Points essentiels

  • leakage (1) : il y avait un data leakage pour une partie de la base, le gagnant a choisi d’utiliser deux stratégies différentes sur ces deux parties

  • leakage (2) : le gagnant a utilisé cette fuite pour construire un modèle qui puisse servir pour les données qui ne bénéficiaient pas cette fuite

  • features agrégées : il fallait construire des statistiques agrégées par la compagnie du client de Red Hat (plusieurs clients pour une même compagnie)

TalkingData Mobile User Demographics

kaggle

  • Objectif : décrire une personne (sexe, âge) en fonction de l’utilisation de son téléphone

  • Données : décription des téléphones et des événements se rapportant à plusieurs personnes

TalkingData Mobile User Demographics Competition, Winners’ Interview: 3rd Place, Team utc(+1,-3) | Danijel & Matias

Idées intéressantes

  • TF-IDF : appliqué dans un cas non typique (marques, modèles de téléphones)

  • utilisation de keras

  • utilisation de matrice sparse

  • xgboost et les réseaux de neurones ont obtenu leurs meilleurs performances avec des features différentes

  • modélisation du problème : prédire d’abord le genre puis utiliser ce résultat comme feature pour prédire la classe d’âge P(A_i,F)=P(A_i|F)P(F)

Grupo Bimbo Inventory Demand

kaggle

  • Objectif : prédire la demande (limiter les stocks, limiter la surproduction)

  • Données : ventes passées

Grupo Bimbo Inventory Demand, Winners’ Interview: Clustifier & Alex & Andrey

faits notables

  • Truncated SVD on TF-IDF matrix of client and product names

  • Soin particulier apportés aux features :

  • utilisation de model FTRL, FFM : script : le modèle FTRL vient du domaine des publicités sur internet pour lesquels il faut prédire la probabilité d’un click. FTRL est un modèle de online training qui permet de mettre à jour le modèle au fur et à mesure que les données sont découvertes. Cela suppose que les données sont séquentielles dans le temps.

  • le gagnant a suivi le cours de Alexander D’yakonov qui a écrit Two Recommendation Algorithms Based on Deformed Linear Combinations

Facebook V: Predicting Check Ins

kaggle

  • Objectif : on connaît (x, y, location accuracy, timestamp) et il faut prédire un business id

Trois solutions :

Obstacles et solutions

  • multi-class : impossible d’utiliser un modèle multi-class, trop de choix, la performance est mauvaise

  • approche 1 : transformer le problème en un problème de ranking (approche moteur de recherche), des heuristiques produisent 20 candidats qu’un modèle viendra “scorer”

  • approche 2 : P(business id | x, y, accuracy, time) \propto P(x, y, accuracy, time |place) P(place)

Avito Duplicate Ads Detection

kaggle

Points intéressants

  • features calculées sur une grande variétés de supports (image, texte, titre, description, marques, prix, localisation) –> grande liste de features, weights of evidence

  • problème de préparation des données : les labels étaient données sous forme de paires pub i = pub j –> comment séparés en base d’apprentissage et de test pour éviter les problèmes d’overfitting

  • le gagnant a utilisé des modèles de deep learning préentraînés Full ImageNet Network, il n’a pas utilisé sa sortie mais le résultat d’une couche intermédiaire

Draper Satellite Image Chronology

kaggle

Points intéressants

Yelp Restaurant Photo Classification

kaggle

  • Objectifs : classer des photos de restaurants, particularité, une photo peut avoir plusieurs labels

  • Données : des images en entrées, des labels à prédire en sortie, 0: good_for_lunch 1: good_for_dinner 2: takes_reservations 3: outdoor_seating 4: restaurant_is_expensive 5: has_alcohol 6: has_table_service 7: ambience_is_classy 8: good_for_kids

Yelp Restaurant Photo Classification, Winner’s Interview: 1st Place, Dmitrii Tsybulevskii