19
1 Kaggle Tradeshift Challenge Paris ML Meetup 12 novembre 2014 Romain Ayres - OCTO Eric Biernat - OCTO Matthieu Scordia - Dataiku

Kaggle Tradeshift Challenge

Embed Size (px)

Citation preview

Page 1: Kaggle Tradeshift Challenge

1

Kaggle Tradeshift ChallengeParis ML Meetup

12 novembre 2014

Romain Ayres - OCTOEric Biernat - OCTO

Matthieu Scordia - Dataiku

Page 2: Kaggle Tradeshift Challenge

2

Page 3: Kaggle Tradeshift Challenge

3

Le challenge en 2 mots

Page 4: Kaggle Tradeshift Challenge

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

Page 5: Kaggle Tradeshift Challenge

5

La métrique d’évaluation

Le log-loss

Zone de

texte

label

Page 6: Kaggle Tradeshift Challenge

6

1. Online learning

1. Two-stage learning

1. Vowpal Wabbit

Modélisation

Page 7: Kaggle Tradeshift Challenge

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

Page 8: Kaggle Tradeshift Challenge

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é

Page 9: Kaggle Tradeshift Challenge

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

Page 10: Kaggle Tradeshift Challenge

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

Page 11: Kaggle Tradeshift Challenge

11

Vowpal Wabbit

Page 12: Kaggle Tradeshift Challenge

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)

Page 13: Kaggle Tradeshift Challenge

13

Eviter de switcher entre le notebook et le terminal

Page 14: Kaggle Tradeshift Challenge

14

Un peu de cuisine pour la fin

vw

Log_loss

0.0043350

Page 15: Kaggle Tradeshift Challenge

15

Evolution du leaderboard

Page 16: Kaggle Tradeshift Challenge

16

14 minutes avant la fin…

Page 17: Kaggle Tradeshift Challenge

17

Et à une heure du mat’

Page 18: Kaggle Tradeshift Challenge

18

Et parce qu’on aime se faire du mal…

Page 19: Kaggle Tradeshift Challenge

19

Merci de votre attention!

Romain Ayres - OCTO

Eric Biernat - OCTO

Matthieu Scordia - Dataiku