5. Type de compétition
Reward $$$, gloire
Recrutement Job (airbnb, Yelp)
Starting Getting started / education
• Plus ou moins 2 mois en général
• Données externes interdites (sauf contre
indications et publier sur le forum)
@arm_gilles
6. • Compétition d’analyse d’image qui avait pour but de
développer de nouvelles techniques et algorithmes
pour de mesurer les distortions des galaxies par la
matière noire
@arm_gilles
10. Le compétitif
I’m better than
you
Nop, my
algorithme
crush you
Check my new
neural network
!
STFU look at
my amazing
cluster !
Random
Forest tuned
for the win
Lol my
ensemble is
killing you bro !
@arm_gilles
11. Best practices
• Data Exploration & Feature Engineering
• Machine learning
• Cross Validation
• Tunning / Ensemble
@arm_gilles
14. Features Engineering &
exploration des données
• Connaître ses données pour connaitre le
problème.
• Transformer ces données
@arm_gilles
15. Transformer ces données
• Numérique : log, normalisation, range
@arm_gilles
• Catégorie : one hot encoding, Stemming,
stopword, bag-of-words, TF-IDF, word2vec…
16. Features Engineering &
exploration des données
• Connaître ses données pour connaitre le
problème.
• Transformer ces données
@arm_gilles
• Créer de la donnée (la golden feature) !
17. But : Prédire le CA journalier de plus 1k magasins
sur 6 semaines
Metric : Root Mean Square Percentage Error (RMSPE)
Data : • 2 ans et demi d’historique (800 k)
• Promotions
• Vacances
• Nombre de clients par jour
• Type de magasin
• Distance de compétition
• Données extérieures autorisées
18. • Clustering de magasins
• Features descriptives :
• Moyenne / médiane / Std / percentiles…
• Group by promo(0/1), vacance(0/1)
• Temporalité : trimestre / mois /
semaines / x derniers jours
@arm_gilles
19. • Golden feature du #2
@arm_gilles
99.99 % des personnes sont
passé à coté de cette feature
Supprimer les lignes ou les magasins sont fermés ainsi que
lorsque ceux-ci sont ouvert avec 0 Sales
20. @arm_gilles
Mettre un compteur du nombre de jour ouvert avec Sales à 0
permet de détecter un nombre de vente anormal.
Perspective d’un magasin (99.99% de Kaggle) Perspective d’un magasin par Nima #2
21. But : Prédire si un client va prendre ou non
une assurance habitation (probabilité)
Metric : Area Under the Curve (AUC)
Data : • Données par utilisateur
anonymisées
• shape : 260 753 * 299
• Pas d’explication métier
• Beaucoup valeurs à absentes
22. • Compter le nombre de valeurs null
(par ligne)
• Enlever les features avec peu de
variance
• Connaitre les features les plus
importantes (Xgboost / Random Forest)
• Combiner des features entres-elles !
27. @arm_gilles
Cross ValidationTrainData
Fold 1 Fold 2 Fold 3 Fold 4 Fold 5
Test
Train
Train
Test
Train
Train
Test
Train
Train
Test
Train
Train
Test
Test
Test
Test
Test
Test
CrossValidationprédiction
28. @arm_gilles
Tunning / Ensemble
• Un algorithme possède plusieurs
paramètres qui vont jouer sur le résultat
Comment déterminé le meilleur paramétrage ?
• GridSearchCV : va parcourir une liste de paramètres donnée
par l’utilisateur et garder en mémoire le résultat
• RandomizedSearchCV : va parcourir une liste de paramètre de
façon random X fois.
• De façon plus intelligente (BayesianOptimization)
29. @arm_gilles
Tunning / Ensemble
• Pour arriver au top, il faut aller plus loin…
Quand les algorithmes utilisent la démocratie !
Target : 1111111111
Model A 1111111100 80% accuracy
Model B 0111011101 70% accuracy
Model C 1000101111 60% accuracy
Vote 1111111101 90% accuracy
30. @arm_gilles
Tunning / EnsembleTestData
Model A
Pred A1
Pred A2
Pred A3
Pred A4
…
Pred A n-1
Pred A n
Model B
Pred B1
Pred B2
Pred B3
Pred B4
…
Pred B n-1
Pred B n
Model C
Pred C1
Pred C2
Pred C3
Pred C4
…
Pred C n-1
Pred C n
Model X
Pred X1
Pred X2
Pred X3
Pred X4
…
Pred X n-1
Pred X n
Super Model
Se servir des
prédictions des
models comme
features pour
nourrir un super
model
32. Liens utiles
• Forums Kaggle (une vrai mine d’or)
• Post blog Kaggle : http://blog.kaggle.com/
• Tuto Scikit Learn / Pandas (python) : http://blog.kaggle.com/tag/scikit-learn-tutorial-series/
• Python Machine Learning par Sebastian Raschka
• Post blog MLWave : http://mlwave.com/
• What has Kaggle learned from 2 M model : https://www.youtube.com/watch?v=8KzjARKIgTo&ab_channel=CarlMullins
• Winning Data Science Competitions: Jeong-Yoon Lee : https://www.youtube.com/watch?v=ClAZQI_B4t8&ab_channel=DataScience.LA
@arm_gilles
Question ?
Hinweis der Redaktion
Quelles sont vos idées ?
Encoder StoreType et Assortment / PromoInterval
Gérer l’absence de données
Transformé les dates (Année, mois, semaine, jour du mois, jours de la semaine…)
Depuis combien de temps le magasin est en compétition / promo2
Est ce que on est en promo (oui / non) par mois
- Nombre de jours depuis le versement salaire (vers le 28 ou le 4)
Quelles sont vos idées ?
Encoder StoreType et Assortment / PromoInterval
Gérer l’absence de données
Transformé les dates (Année, mois, semaine, jour du mois, jours de la semaine…)
Depuis combien de temps le magasin est en compétition / promo2
Est ce que on est en promo (oui / non) par mois
- Nombre de jours depuis le versement salaire (vers le 28 ou le 4)
Quelles sont vos idées ?
Encoder StoreType et Assortment / PromoInterval
Gérer l’absence de données
Transformé les dates (Année, mois, semaine, jour du mois, jours de la semaine…)
Depuis combien de temps le magasin est en compétition / promo2
Est ce que on est en promo (oui / non) par mois
- Nombre de jours depuis le versement salaire (vers le 28 ou le 4)
Quelles sont vos idées ?
Encoder StoreType et Assortment / PromoInterval
Gérer l’absence de données
Transformé les dates (Année, mois, semaine, jour du mois, jours de la semaine…)
Depuis combien de temps le magasin est en compétition / promo2
Est ce que on est en promo (oui / non) par mois
- Nombre de jours depuis le versement salaire (vers le 28 ou le 4)
Quelles sont vos idées ?
Encoder StoreType et Assortment / PromoInterval
Gérer l’absence de données
Transformé les dates (Année, mois, semaine, jour du mois, jours de la semaine…)
Depuis combien de temps le magasin est en compétition / promo2
Est ce que on est en promo (oui / non) par mois
- Nombre de jours depuis le versement salaire (vers le 28 ou le 4)
Quelles sont vos idées ?
Encoder StoreType et Assortment / PromoInterval
Gérer l’absence de données
Transformé les dates (Année, mois, semaine, jour du mois, jours de la semaine…)
Depuis combien de temps le magasin est en compétition / promo2
Est ce que on est en promo (oui / non) par mois
- Nombre de jours depuis le versement salaire (vers le 28 ou le 4)