Le 14 et 15 septembre dernier se tenait l’événement data de la rentrée : le Salon Big Data Paris. DataScientest y était et avait été sélectionné pour l’organisation d’un data challenge. Au programme : exploiter les données de plus de 400 000 stations météorologiques pour mettre au point le meilleur modèle de prédiction de la concentration en particules fines. Retour sur une journée passionnante entre compétition et entraide intellectuelle.
Chloe et Souhail, Data Scientist chez DataScientest ont pu encadrer les équipes lors du challenge, sous la supervision de Charles Sutton – CTO de DataScientest. Ils nous racontent leur expérience :
« Le Data Challenge organisé par DataScientest au salon BigDataParis était l’occasion de simuler un environnement compétitif sur le thème de la Data Science pour de courtes sessions de 2h. L’objectif était de résoudre un problème de Machine Learning avec des données directement disponibles sur la plateforme. Au programme du challenge : estimer le taux de NO² en utilisant les données des stations météorologiques. Le challenge récompensait le Data scientist présentant un modèle ayant l’erreur la plus faible (RMSE).
Les compétiteurs avaient tous un background de Data Science, mais des parcours et expériences différentes. De ce fait, chacun a abordé le challenge à sa manière.
Même si les performances étaient comptabilisées individuellement certains ont préféré travailler en groupe. Cette démarche permettant aux débutants de profiter de l’expérience des plus experts. Le tout dans un climat d’entraide et de stimulation liée au challenge.
Les 30 premières minutes sont globalement l’occasion de se familiariser avec le problème et d’appréhender la plateforme de challenge. En milieu de session, les compétiteurs explorent les données fournies et se mettent à construire leurs premiers modèles.
À mi-parcours, la pression commence à monter dès que des équipes réussissent à soumettre leur premiers résultats. En effet, un leaderboard est affiché sur un écran dans la salle de challenge et motive les équipes à soumettre leurs résultats pour améliorer leur classement.
Ce système de leaderboard et les enjeux du challenge (lots à gagner) provoquent une montée d’adrénaline vers le milieu/fin de de session.
Pour chaque session on a pu observer en moyenne 10 modèles soumis par participants dans la dernière heure du challenge.
Certains n’hésitent plus à poser plusieurs questions aux coach pour les aider à avancer, d’autres s’amusent à surveiller leur position sur le leaderboard et à soumettre plusieurs fois des résultats. On sent que les équipes prennent très au sérieux ce challenge ce qui améliore leur expérience.
A la fin de session, la pression retombe et les résultats finaux sont affichés. Quelque soit le classement final, tous s’accordent sur le fait que c’était une très bonne expérience et n’hésitent pas à nous parler de la procédure et méthodologie qu’ils ont suivi.
La courte durée du challenge a permis aux compétiteurs de travailler avec intensité et concentration et nul doute que cela leur servira beaucoup dans leur parcours en Data Science. »
Nous avons également demandé à certains des compétiteurs dont la performance leur a permis d’atteindre le podium de cette compétition de nous présenter leurs approches respectives :
1 ) Amed Coulibaly-Data Scientist chez Metro France
« Ma solution comporte trois parties importantes :
a) Feature engineering :
Les variables explicatives (données climatiques, position des stations …) étaient d’ordre temporel, il était donc important de créer des features comme ci-dessous.
- Les Lags (des fenêtres de valeurs décalées de chaque features).
- Rolling Means (des fenêtres de moyennes mobiles sur les lags) ce qui permet de capter la tendance des features.
b) Stratégie de CrossValidation :
Avec les séries temporelles il est souvent très important d’adapter sa stratégie de validation en fonction du jeu de test de telle sorte que le modèle soit assez généralisable. Pour ce faire, j’ai donc utilisé un groupkfold split en fonction des stations et du trimestre.
- Modeling :
J’ai utilisé un modèle de boosting (lightgbm).
- Blending :
Avec le ligthgbm en changeant ci-dessus la stratégie de validation ou les paramètres du lgbm on obtient différent prédicteurs. Mon idée était de combiner les décisions du plus grand nombre de prédicteurs possible.
Sur ce, en 2h j’ai pu faire 11 expérimentations de 5 folds chacune qui se résument en 55 prédicteurs. Mon modèle final est une combinaison de la décision de ces prédicteurs.
Si j’avais eu plus de temps, j’aurais certainement implémenté une iterative prédiction, qui consiste à prédire itérativement la target et non toutes les valeurs d’un seul coup. Cela permet au modèle d’avoir de l’information sur les valeurs précédemment prédites et d’améliorer ses prédictions suivantes. »
RMSE : 8,8092
2) Thomas Denimal - Data Scientist chez Lyreco Group
a) Modèle utilisé
« Dès le départ, je voulais utiliser la bibliothèque lightgbm: rapide, elle gère de nombreux cas d’utilisation différents et fournit d’excellents résultats. J’ai apporté des modifications aux paramètres du modèle (en augmentant num_leaves, num_iterations) avec des améliorations progressives.
b) Fonctionnalités utilisées
J’ai commencé le défi en utilisant uniquement la mesure de NO² de la station la plus proche et j’ai introduit les features de la 2e station la plus proche à la 5e, une à la fois. Une validation croisée à 10 folds a été utilisée pour valider le modèle. À la fin, j’ai également ajouté la valeur moyenne des mesures de NO² qui a été utilisée dans la méthode naïve avec des améliorations visibles de la validation croisée (RMSE moyen et std-standard deviation- du rmse moyen) et de mon classement 🙂
Le tracé du RMSE moyen et du std du RMSE moyen fournit des informations utiles pour détecter le sous-ajustement / le surajustement et les changements de paramètres.
J’ai essayé d’ajouter d’autres statistiques, comme les mesures min, max et std de NO², mais je n’ai pas remarqué d’améliorations. »
RMSE : 8,8560
3) Thierry GAMEIRO-MARTINS - Data Scientist au Ministère de l’Economie et des Finances publiques
« Ma méthode consistait à essayer quelques modèles sur l’ensemble des données puis de seulement sélectionner certaines variables. J’ai notamment utilisé un random forest, un xgboost et lightgbm.
Pour en savoir plus sur l’algorithme xgboost, découvrez cet article
J’ai ensuite tenté un peu de feature engineering par de la discrétisation de variables.
Enfin, j’ai voulu me tourner vers l’ajout de données – temporelle, et de localisation disponible grâce aux identifiants- mais sans pouvoir terminer. »
RMSE: 8,9429
Finalement, ce data challenge a permis de réunir des talents d’horizons différents autour d’une même problématique et de la résoudre à l’aide de la data science.