Upload
matthieu-scordia
View
254
Download
7
Tags:
Embed Size (px)
Citation preview
1
Kaggle Tradeshift ChallengeParis ML Meetup
12 novembre 2014
Romain Ayres - OCTOEric Biernat - OCTO
Matthieu Scordia - Dataiku
2
3
Le challenge en 2 mots
4
Les données à disposition
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
Le log-loss
Zone de
texte
label
6
1. Online learning
1. Two-stage learning
1. Vowpal Wabbit
Modélisation
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
8
● Random Forest (librairie sklearn)
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.
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
id x1 ... x145
0 3.7 ... 204
1 -5.0 ... 4
2 12 ... 35
3 0.1 ... 83
4 -2.3 ... 56
Online learning - ajout non linéarité
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
Online learning - problème
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
11
Vowpal Wabbit
12
[Label] [Importance [Tag]]|Namespace Features |Namespace
Features ... |Namespace Features
Focus sur une dizaine de labels seulement
Un peu différent de sklearn
rf.fit(X_train, y_train)
13
Eviter de switcher entre le notebook et le terminal
14
Un peu de cuisine pour la fin
vw
Log_loss
0.0043350
15
Evolution du leaderboard
16
14 minutes avant la fin…
17
Et à une heure du mat’
18
Et parce qu’on aime se faire du mal…
19
Merci de votre attention!
Romain Ayres - OCTO
Eric Biernat - OCTO
Matthieu Scordia - Dataiku