s’attaquer À une compÉtition de machine learning · régression linéaire réseau de neurones...

41
S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING Méthodologie et exemples pratiques

Upload: others

Post on 26-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

S’ATTAQUER À UNE

COMPÉTITION DE MACHINE

LEARNINGMéthodologie et exemples

pratiques

Page 2: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

INTRODUCTION

Page 3: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

PLAN

➤ Qu’est ce qu’une compétition de machine learning ?

➤ Connaissances requises

➤ Méthodologie

Page 4: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

MACHINE LEARNING

InformatiqueMathématiques

StatistiquesMachine

Learning

Page 5: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

QU’EST CE QU’UNE COMPÉTITION DE MACHINE LEARNING

ANIMAL

CHAT

CHAT

CHIEN

CHIEN

CHANT DES BALEINES

NON

OUI

NON

OUI

OBSCENE INSULTE MENACE

X X

X

X X

X

PRIX

520000

145000

345000

87090

SURFACE CHAMBRES PIECES

145 3 5

65 1 2

210 4 8

31 1 3

Page 6: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

QU’EST CE QU’UNE COMPÉTITION DE MACHINE LEARNING

Apprentissage supervisé

X = Y =

➤ Matrice des variables explicatives ➤ Variable à prédire (cible) contenant les labels (réponses) correspondant à chacune des observations

Page 7: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

QU’EST CE QU’UNE COMPÉTITION DE MACHINE LEARNING

X entraînement X test

Y entraînement Y test (public) Y test (privé)

Données disponibles pour entraîner votre modèle M

Ŷ prédit

Prédiction M(X test)

Labels utilisés pour le calcul du score à chaque soumission

Labels utilisés pour calcul du score final

Page 8: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES

➤ Régression linéaire

➤ Perceptron multicouche

➤ Arbres décisionnels (RandomForest)

➤ Boosting (Extreme Gradient Boosting Trees)

➤ Réseaux de neurones à convolution

➤ Réseaux de neurones récurrents

Page 9: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES

➤ Pourquoi est-ce important ?

➤ Parce que c’est passionnant !

➤ Savoir les paramétrer efficacement

➤ Connaître leurs limites

➤ Pour mieux les comprendre :

➤ Implémenter une version simplifiée

➤ Les manipuler sur des données synthétiques

Page 10: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES

Volume_eau > (d x 0.5 - e ) x 3.14 x h2

2

Page 11: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES

➤ Pourquoi est-ce important ?

➤ Parce que c’est passionnant !

➤ Savoir les paramétrer efficacement

➤ Connaître leurs limites

➤ Pour mieux les comprendre :

➤ Implémenter une version simplifiée

➤ Les manipuler sur des données synthétiques

Page 12: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES

➤ Langage de programmation

➤ Bibliothèques utiles (Python)

➤ Scikit-learn

➤ Keras

➤ Pandas

➤ Structures de données

➤ Complexité algorithmique

➤ Gestion de la mémoire

Page 13: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES

➤ Pourquoi est-ce important ?

➤ Ecrire du code rapidement

➤ Ecrire du code optimisé

➤ Ecrire du code structuré

Page 14: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

CONNAISSANCES REQUISES➤ Apprentissage supervisé

➤ Régression linéaire

➤ Réseau de neurones (MLP)

➤ Random forest

➤ Boosting

➤ Bibliothèques utiles (Python)

➤ Scikit-learn

➤ Keras

➤ Pandas

➤ Numpy

➤ Apprentissage non-supervisé

➤ Analyse en composante principale

➤ K-Means

➤ Notions

➤ Sur-apprentissage/Sous-apprentissage

➤ Variables numériques/Catégorielles

➤ Validation croisée

➤ Algorithmique

➤ Calcul de complexité

➤ Méthode de tri

➤ Structure de données

➤ Table de hachage

➤ Arbre binaire

➤ Liste et vecteur

Page 15: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE

➤ Passage en revue de l’état de l’art (5 %)

➤ Exploration des données (20 %)

➤ Features engineering (50 %)

➤ Mise en place d’une procédure d’évaluation (10 %)

➤ Création du modèle (15 %)

Page 16: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : EXPLORATION DES DONNEES

➤ Compréhension de ce que représente chaque variable

➤ Analyse de la variable cible (données équilibrées ?)

➤ Type des variables explicatives : Catégorielles, Ordinales, Continues

➤ Analyse des variables explicatives

➤ Valeurs manquantes

➤ Corrélation entre les variables

➤ Se familiariser avec le jeu de données

Page 17: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : EXPLORATION DES DONNEES

Page 18: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : EXPLORATION DES DONNEES

62 %

38 %

Survivants Non survivants Valeurs manquantes

Page 19: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : EXPLORATION DES DONNEES

Survived Died

Survived Died

Survived Died

Survived Died

Survived Died

Page 20: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : EXPLORATION DES DONNEES

Page 21: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

➤ Transformation de la donnée pour être exploitée au mieux par les algorithmes d’apprentissage

➤ Extraction des informations pertinentes et informatives cachées dans les données

➤ Sélection de variables explicatives

«  Feature engineering is the process of using domain knowledge of the data to create features that make machine learning algorithms work. Feature engineering is fundamental to the application of machine learning, and is both difficult and expensive. Coming up with features is difficult, time-consuming, requires expert knowledge. "Applied machine learning" is basically feature engineering. »

Andrew Ng

Page 22: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 23: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 24: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 25: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 26: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 27: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 28: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 29: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 30: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 31: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : FEATURE ENGINEERING

Page 32: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : PROCEDURE D’EVALUATION

➤ Découpage aléatoire entraînement / validation (50% / 50%)

➤ Entraînement sur E puis évaluation du modèle sur V

➤ Inconvénients :

➤ Surévaluation ou sous-évaluation du modèle

➤ Utilisation d’un sous-ensemble des données pour l’entraînement

Jeu de données

E V SCORE

Page 33: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : PROCEDURE D’EVALUATION

➤ Validation croisée : découpage en k parties (k-fold)

➤ Pour chacune des k parties, validation sur k et entrainement du modèle sur les k-1 parties restantes

Jeu de données

V E E E

E V E E

E E V E

VE E E

SCORE 1

SCORE 2

SCORE 3

SCORE 4

Page 34: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : CREATION DES MODELES

Modèle Score en VC

RandomForest 82.3

ExtraTrees 82.7

Xgboost 83.6

k-NN 81.2

SVC 79.12

MLP 81.6

RL 78.4

➤ Ajuster les hyper-paramètres :

➤ Manuellement

➤ Automatiquement

➤ Hyperopt

➤ Grid search

➤ Entraînement et évaluation d’un modèle :

Page 35: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : CREATION DES MODELES

Modèle Score en VC

RandomForest 82.3

ExtraTrees 82.7

Xgboost 83.6

k-NN 81.2

SVC 79.12

MLP 81.6

RL 78.4

SELECTION DU MEILLEUR

MODELE83.6

Page 36: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : CREATION DES MODELES

Modèle Score en VC

RandomForest 82.3

ExtraTrees 82.7

Xgboost 83.6

k-NN 81.2

SVC 79.12

MLP 81.6

RL 78.4

MOYENNE DES

PREDICTIONS84.3

Page 37: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : CREATION DES MODELES

Modèle Score en VC

RandomForest 82.3

ExtraTrees 82.7

Xgboost 83.6

k-NN 81.2

SVC 79.12

MLP 81.6

RL 78.4

84.3

w1

w2

w3

w4

w5

w6

w7

Entraînement d’un nouveau classifieur pour combiner les prédictions des algorithmes

Page 38: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

METHODOLOGIE : DEMARCHE EXPERIMENTALE

Exploration des données Feature

Transformation de la donnée

Sélection des features

Extraction de nouvelles features

Features engineering

Création du modèle

Evaluation du modèle

Résultat attendu ?

Formuler une nouvelle

hypothèse

OUI

Investiguer

NO

N

Page 39: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

COMPETITION TITANIC : PREDICTION DES SURVIVANTS

Page 40: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

COMPETITION AXA : PREDICTION DU CONDUCTEUR

Page 41: S’ATTAQUER À UNE COMPÉTITION DE MACHINE LEARNING · Régression linéaire Réseau de neurones (MLP) ... Sélection de variables explicatives ... du modèle sur les k-1 parties

QUESTIONS

QUESTIONS ???