Si tu es en train d’apprendre la data-science et le machine-learning, alors Kaggle est le meilleur endroit pour toi.
D’abord qu’est-ce que Kaggle. C’est un site internet qui regroupe des problèmes de data-science. Ces problèmes sont proposés par les entreprises et sont mis sous forme de compétitions où les participants sont classés dans un tableau des scores (le leaderboard).
En général ces problèmes sont des apprentissages supervisées, c’est-à-dire qu’on donne aux participants des données d’entraînements avec une grandeur Y à prédire, et ils doivent prédire cette valeurs Y sur des données tests. Le but des participants est alors d’obtenir le meilleurs score sur les données test selon une métrique prédéfinie (par exemples : erreur au carrée, logloss, ROC AUC,…)
Lorsque j’ai commencé la data-science, j’ai été très actif sur ce site et ce qui m’a permis d’apprendre très vite à résoudre un problème de data-science. Ainsi dans cet article je donne 5 raisons pour faire des compétitions sur Kaggle.
1 – Une large base de données
Depuis sa création en 2010, Kaggle a hébergé plus de 400 compétions ce qui fait autant de bases de données sur lesquelles s’entraîner. De plus comme les problèmes sont très variées, cela permet de se familiariser avec les différents type de données ainsi que les différentes métriques. Voici un aperçu des différents problème que l’on peut trouver
- Zillow Prize: Zillow’s Home Value Prediction (Zestimate) : dans cette compétitions, il faut estimer le prix de vente d’un maison en fonction des ses caractéristiques et de sa position géographique.
- Predict Closed Questions on Stack Overflow : il faut prédire si une question sur stackoverflow va être fermée en fonction de son contenu.
- Diabetic Retinopathy Detection : à partir d’une image de la rétine, il faut détecter si le patient est atteint de rétinopathie diabétique.
- Segment salt deposits beneath the Earth’s surface : à partir d’une image de sédimentation, il faut localiser les zones qui contiennent du sel.
2 – Des exemples de codes à disposition
Kaggle est aussi une communauté de data-scientists qui s’entraident. Ainsi pour chaque compétitions des Kagglers (nom données aux participants) publient leurs solutions dans des notebooksb>, ce qui est des pistes lorsqu’on se trouve bloqué, par exemple dans la manière de construire le modèle et le paramétrer, de traiter les données en amont du modèle… Par ailleurs, les notebooks peuvent avoir des « upvote » (Pouce levé) par la communautéb>, ce qui permet de facilement repérer ceux qui ont contenu pertinent et de qualité.
3 – Apprendre à coder et les techniques de data-science
Les notebooks publiques sont aussi d’une part un bon moyen de connaître les librairies Pythons utiles à un data-scientist et aussi d’appendre à les utiliser. On peut par exemple citer :
- numpy, pandas, scipy : pour les traitements et analyses de données.
- seaborn : pour la visualiation de données.
- sklearn, xgboost, lightgbm : pour les modèles prédictifs.
- tensorflow, keras, torch : pour les réseaux de neurones.
Et d’autre part, on peut apprendre à appliquer les méthodes de data-science sur des exemples concrets, à savoir :
- Comment faire du nettoyage de données (data-cleaning). Cette étape consiste à rendre les données consistants en supprimant les valeurs aberrantes.
- Comment faire du feature engeneering, c’est-à-dire créer de nouvelles caractéristiques pertinentes.
- Comment transformer les données pour le faire manger au modèle prédictif (preprocessing). En effet certains modèles ne peuvent pas agir sur n’importe quel type de données. Par exemple les réseaux ne tolère pas la valeurs NaN (not a number), ni les valeurs qui ne sont pas en distributions autour de 0.
4 – La présence du tableau des scores
Une des difficulté pour trouver un bon modèle prédictif est de pouvoir quantifier objectivement sa qualité. Grâce au tableau des scores (leaderboard), on peut d’une part se situer pour savoir si notre score est bon et d’autre part voir quels sont les scores qui sont difficile à franchir. De cette manière on peut se rendre compte s’il y a encore moyen de progresser dans son travail.
5 – Se mettre à jour sur les nouvelles technologies
Il y a régulièrement de nouvelles compétitions qui attirent toujours du monde. Faire les compétitions et regarder les notebooks publiques permet de se tenir au courant des dernières tendances, comme par exemple les nouvelles architectures de réseaux de neurones.