a la découverte de kaggle

32
Bordeaux Machine Learning Meetup A la découverte de @arm_gilles

Upload: armand-gilles

Post on 23-Jan-2018

675 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: A la découverte de Kaggle

Bordeaux Machine

Learning Meetup

A la découverte de

@arm_gilles

Page 2: A la découverte de Kaggle

Kaggle en quelques chiffres

• Crée en Avril 2010

• + de 230 compétitions

• 450 k Data Scientist

• 3 Millions de reward

@arm_gilles

Page 3: A la découverte de Kaggle

Age Revenu Défaut

53 45 000 True

35 38 000 False

22 17 000 True

76 25 000 False

Age Revenu Défaut

18 17 500

42 27 000

22 39 200

59 28 000

Training Data Testing Data

@arm_gilles

Page 4: A la découverte de Kaggle

Features Label

Train Data

Test Data

Submission Public Private

Structure d’une compétition

@arm_gilles

Page 5: A la découverte de Kaggle

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

Page 6: A la découverte de Kaggle

• 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

Page 7: A la découverte de Kaggle

http://arxiv.org/pdf/1204.4096.pdf @arm_gilles

Page 8: A la découverte de Kaggle

https://www.whitehouse.gov/blog/2011/06/27/competition-shines-light-dark-matter@arm_gilles

Page 9: A la découverte de Kaggle

http://arxiv.org/pdf/1204.4096.pdf @arm_gilles

Page 10: A la découverte de Kaggle

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

Page 11: A la découverte de Kaggle

Best practices

• Data Exploration & Feature Engineering

• Machine learning

• Cross Validation

• Tunning / Ensemble

@arm_gilles

Page 12: A la découverte de Kaggle

Features Engineering &

exploration des données

• Connaître ses données pour comprendre le

problème.

@arm_gilles

Page 13: A la découverte de Kaggle

@arm_gilles

• Utilisation de graphiques

Connaître ses données

Page 14: A la découverte de Kaggle

Features Engineering &

exploration des données

• Connaître ses données pour connaitre le

problème.

• Transformer ces données

@arm_gilles

Page 15: A la découverte de Kaggle

Transformer ces données

• Numérique : log, normalisation, range

@arm_gilles

• Catégorie : one hot encoding, Stemming,

stopword, bag-of-words, TF-IDF, word2vec…

Page 16: A la découverte de Kaggle

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) !

Page 17: A la découverte de Kaggle

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

Page 18: A la découverte de Kaggle

• 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

Page 19: A la découverte de Kaggle

• 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

Page 20: A la découverte de Kaggle

@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

Page 21: A la découverte de Kaggle

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

Page 22: A la découverte de Kaggle

• 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 !

Page 23: A la découverte de Kaggle

@arm_gilles

Machine Learning

Algorithmes Tools Commentaires

Gradient Boosting

MachineXgboost Hype

Random Forest Scikit Learn L’ancien Hype

Neural NetworkTensorflow, Lasage,

KerasAnalyse d’image ++

Regression Scikit Learn

Support Vector Machine Scikit Learn

Page 24: A la découverte de Kaggle

@arm_gilles

Cross Validation

• Comment connaitre la performance de son

modèle ?

Tra

in D

ata

Phase

d'apprentissageTest

Précision de

votre algorithme

Page 25: A la découverte de Kaggle

@arm_gilles

Cross Validation

• Comment connaitre la performance de son

modèle ?

Underfitting

GOOD

Overfitting

Page 26: A la découverte de Kaggle

@arm_gilles

Cross Validation

• Comment connaitre la performance de son

modèle ?

Tra

in D

ata

Phase

d'apprentissage

Test

QPrécision de

votre algorithme

Page 27: A la découverte de Kaggle

@arm_gilles

Cross ValidationT

rain

Da

ta

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

Cro

ss V

alid

atio

n p

réd

ictio

n

Page 28: A la découverte de Kaggle

@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)

Page 29: A la découverte de Kaggle

@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

Page 30: A la découverte de Kaggle

@arm_gilles

Tunning / EnsembleT

es

t D

ata

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

Page 31: A la découverte de Kaggle

http://blog.kaggle.com/2015/12/03/dato-winners-interview-1st-place-mad-professors/@arm_gilles

Page 32: A la découverte de Kaggle

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 ?