1 
Kaggle Tradeshift Challenge 
Paris ML Meetup 
12 novembre 2014 
Romain Ayres - OCTO 
Eric Biernat - OCTO 
Matthieu Scordia - Dataiku
2
Le challenge en 2 mots 
3
Les données à disposition 
4 
Train : 
1 700 000 lignes représentant des zones de textes 
33 labels à prédire (data, adresse, champs libres, nom, etc.) 
145 features : float, int, catégorielles hachées avec nombreuses modalitées 
(> 200 000) 
Test : 
540 000 lignes 
540 000 * 33 = 17 000 000 millions de prédictions
La métrique d’évaluation 
5 
Le log-loss 
Zone de 
texte 
label
Modélisation 
6 
1. Online learning 
1. Two-stage learning 
1. Vowpal Wabbit
Online learning 
7 
● Descente de gradient stochastique 
● Learning rate adaptatif : 
● Hashing trick 
● Gros avantage : passage à l’échelle (20min, <400MB) 
● Problème : modèle linéaire, ne capte pas les 
interactions entre les variables 
http://www.kaggle.com/c/tradeshift-text-classification/forums/t/10537/beat-the-benchmark-with-less-than-400mb-of-memory
Online learning - ajout non linéarité 
8 
● Random Forest (librairie sklearn) 
rf.fit(X,y) rf.apply(X) 
id tree_1 tree_2 
0 3 7 
1 2 3 
2 4 6 
3 4 8 
4 3 4 
Xinran He, Junfeng Pan, Ou Jin, Tianbing Xu, Bo Liu, Tao Xu, Yanxin Shi, Antoine Atallah, Ralf Herbrich, Stuart Bowers and Joaquin 
Quinonero Candela, Practical Lessons from Predicting Clicks on Ads at Facebook, ADKDD'14. 
id x1 ... x145 
0 3.7 ... 204 
1 -5.0 ... 4 
2 12 ... 35 
3 0.1 ... 83 
4 -2.3 ... 56
Online learning - problème 
9 
Le script construit 33 modèles disjoints alors que les labels 
à prédire ne sont pas indépendants 
Exemple : quand y33 == 1 alors y1,...,y32 == 0
10 
● Séparation du dataset en deux : 
● Apprentissage de 33 modèles sur X_base 
● P = prédictions de ces modèles sur X_meta 
● Concaténation de P et X_meta et 
apprentissage du meta modèle : 
X_base 
X_meta 
P X_meta 
Two-stage learning
Vowpal Wabbit 
11
Un peu différent de sklearn 
12 
[Label] [Importance [Tag]]|Namespace Features |Namespace 
Features ... |Namespace Features 
rf.fit(X_train, y_train) 
Focus sur une dizaine de labels seulement
Eviter de switcher entre le notebook et le terminal 
13
Un peu de cuisine pour la fin 
14 
vw 
Log_loss 
0.0043350
Evolution du leaderboard 
15
14 minutes avant la fin… 
16
Et à une heure du mat’ 
17
Et parce qu’on aime se faire du mal… 
18
19 
Merci de votre attention! 
Romain Ayres - OCTO 
Eric Biernat - OCTO 
Matthieu Scordia - Dataiku

Kaggle Tradeshift Challenge

  • 1.
    1 Kaggle TradeshiftChallenge Paris ML Meetup 12 novembre 2014 Romain Ayres - OCTO Eric Biernat - OCTO Matthieu Scordia - Dataiku
  • 2.
  • 3.
  • 4.
    Les données àdisposition 4 Train : 1 700 000 lignes représentant des zones de textes 33 labels à prédire (data, adresse, champs libres, nom, etc.) 145 features : float, int, catégorielles hachées avec nombreuses modalitées (> 200 000) Test : 540 000 lignes 540 000 * 33 = 17 000 000 millions de prédictions
  • 5.
    La métrique d’évaluation 5 Le log-loss Zone de texte label
  • 6.
    Modélisation 6 1.Online learning 1. Two-stage learning 1. Vowpal Wabbit
  • 7.
    Online learning 7 ● Descente de gradient stochastique ● Learning rate adaptatif : ● Hashing trick ● Gros avantage : passage à l’échelle (20min, <400MB) ● Problème : modèle linéaire, ne capte pas les interactions entre les variables http://www.kaggle.com/c/tradeshift-text-classification/forums/t/10537/beat-the-benchmark-with-less-than-400mb-of-memory
  • 8.
    Online learning -ajout non linéarité 8 ● Random Forest (librairie sklearn) rf.fit(X,y) rf.apply(X) id tree_1 tree_2 0 3 7 1 2 3 2 4 6 3 4 8 4 3 4 Xinran He, Junfeng Pan, Ou Jin, Tianbing Xu, Bo Liu, Tao Xu, Yanxin Shi, Antoine Atallah, Ralf Herbrich, Stuart Bowers and Joaquin Quinonero Candela, Practical Lessons from Predicting Clicks on Ads at Facebook, ADKDD'14. id x1 ... x145 0 3.7 ... 204 1 -5.0 ... 4 2 12 ... 35 3 0.1 ... 83 4 -2.3 ... 56
  • 9.
    Online learning -problème 9 Le script construit 33 modèles disjoints alors que les labels à prédire ne sont pas indépendants Exemple : quand y33 == 1 alors y1,...,y32 == 0
  • 10.
    10 ● Séparationdu dataset en deux : ● Apprentissage de 33 modèles sur X_base ● P = prédictions de ces modèles sur X_meta ● Concaténation de P et X_meta et apprentissage du meta modèle : X_base X_meta P X_meta Two-stage learning
  • 11.
  • 12.
    Un peu différentde sklearn 12 [Label] [Importance [Tag]]|Namespace Features |Namespace Features ... |Namespace Features rf.fit(X_train, y_train) Focus sur une dizaine de labels seulement
  • 13.
    Eviter de switcherentre le notebook et le terminal 13
  • 14.
    Un peu decuisine pour la fin 14 vw Log_loss 0.0043350
  • 15.
  • 16.
    14 minutes avantla fin… 16
  • 17.
    Et à uneheure du mat’ 17
  • 18.
    Et parce qu’onaime se faire du mal… 18
  • 19.
    19 Merci devotre attention! Romain Ayres - OCTO Eric Biernat - OCTO Matthieu Scordia - Dataiku

Notes de l'éditeur

  • #13 Ceux qui dans la xval qui devait donner les coefficients de pondération des modèles, donnait un poids plus fort pour Vowpal