Kaggle Tradeshift Challenge

Preview:

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

Recommended