61
@xebiconfr #xebiconfr Data Science & Craftsmanship: Je t’aime, moi non plus Sylvain Lequeux Yoann Benoit

XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

Embed Size (px)

Citation preview

Page 1: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Data Science & Craftsmanship:

Je t’aime, moi non plus

SylvainLequeux

YoannBenoit

Page 2: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Raconte moi une histoire

2

0

Page 3: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Raconte moi une histoire

3

0

Page 4: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

@YoannBENOIT

Yoann BenoitSylvain Lequeux

4

@slequeux

Page 5: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Deux mondes que tout sépare

1

5

Page 6: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Des formations différentes

6

1a

Page 7: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Des objectifs personnels différents

7

1b

Page 8: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Des équipes différentes

8

1c

Plusieurs équipesUn objectif commun : délivrer de la valeur

Page 9: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Des outils différents

9

1d

Page 10: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Choix du langage

10

1e

Popularité Data Scientists

Popularité Data Engineers

Disponibilité algos

Scalabilité algos

Outillage (IDE, Notebooks, Build)

Page 11: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Et le Craftsmanship dans tout ça ?

11

1f

Page 12: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Les contraintes du craftsmanship

2

12

Page 13: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Retour à l’essentiel

13

2a

https://essentials.xebia.com

Page 14: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr 14

2b

Page 15: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Make it work, make it right, make it fast ...

15

2b

Page 16: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr 16

2c

Page 17: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

… and integrate early

17

2c

Packager et intégrer le code dès que possible

● Au début, les fonctions fréquemment utilisées

● Puis toutes les phases○ Feature Engineering○ Modélisation○ ...

Page 18: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr 18

2d

Page 19: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Quels outils pour automatiser le build ?

19

2d

TOX MavenSBT

Page 20: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Quels outils pour construire en continu ?

20

2d

Page 21: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr 21

2e

Page 22: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Contraintes pour les tests

22

2e

Pas de changement sans test préalable

Les tests doivent être rapides

Page 23: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

En résumé

23

2f

Page 24: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Comment résoudre ces contraintes en pratique ?

3

24

Page 25: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

25

3a

Notebook

Page 26: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

26

3b

Notebook

CodeTemplate

Page 27: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

27

3c

Notebook

CodeTemplate

Big FatMethod

Page 28: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

28

3d

Notebook

CodeTemplate

IntegrationTest

Big FatMethod

Page 29: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

29

3e

Notebook

CodeTemplate

IntegrationTest

UnitTests

Refactor

Big FatMethod

Page 30: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

30

3f

Notebook

CodeTemplate

IntegrationTest

UnitTests

Refactor

Big FatMethod

Binary

Page 31: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

31

3g

Notebook

CodeTemplate

IntegrationTest

UnitTests

Refactor

ImportPackage

Big FatMethod

Binary

Page 32: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Du notebook au code packagé

32

3h

Notebook

CodeTemplate

IntegrationTest

UnitTests

Refactor

ImportPackage

Big FatMethod

Binary

Page 33: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Focus sur les tests

4

33

Page 34: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Quels outils ?

34

4a

Page 35: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Test du Feature Engineering

35

4b

Standard Scaling

Suppression des

doublons

Gestion des valeurs

manquantes

Gestion des dates ...

● Le Feature Engineering peut très souvent être décomposé en une suite de transformations élémentaires

● Chacune de ces transformations peut être testée indépendamment

Page 36: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Test de modèles de Machine Learning

36

4c

Features

Algorithmede Machine

Learning

● Le test de modèles est particulièrement compliqué○ L'entraînement de modèle implique d’inclure de l’aléatoire

● Rappel : on souhaite tester la performance du modèle sur un jeu de données, pas le comportement du modèle lui-même○ Vérifier que certaines catégories sont correctement prédites○ Définir un seuil minimal d'acceptation.

Modèle

Page 37: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Performances dans le temps

37

4d

● Votre modèle part en production ? Ce n’est pas encore la fin○ “You build it, you run it” + “You maintain it”

● Il est important de monitorer la performance du modèle dans le temps. Si on observe une baisse de performance :○ Réentrainement sur de nouvelles données○ Ajout de nouvelles features○ Changement complet de modèle

Page 38: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Agilité et Data Science

5

38

Page 39: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Scrum ?

39

5a

Scrum ? Nope !Ce n’est pas pour moi

Page 40: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Workflow typique de développement

40

5b

Ecriture de US

ImplémentationDémo

Déploiement prod Déploiement

Page 41: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Workflow typique de data science

41

5c

Exploration

Feature engineering

Modélisation

Validation / review

Page 42: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Comparons ces deux workflows

42

5d

~1 sprint

Exploration

Feature engineering

Modélisation

Validation

Spécification

ImplémentationValidation

Page 43: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Qu’en est-il de la phase d’exploration ?

43

5e

● Une phase d’exploration peut durer plusieurs sprints

● La sortie de cette phase est incertaine

● Mais l’exploration permet de définir les prochaines étapes et les User Stories associées

Page 44: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Nos essentials sur l’agilité dans la Data Science

44

5f

Inclure les résultats de la phase d’exploration dans

chaque sprint review

Page 45: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Nos essentials sur l’agilité dans la Data Science

45

5f

Accepter l’incertitude

Page 46: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Nos essentials sur l’agilité dans la Data Science

46

5f

Accepter l’imperfection

Page 47: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Nos essentials sur l’agilité dans la Data Science

47

5f

Time boxer l’exploration

Page 48: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Nos essentials sur l’agilité dans la Data Science

48

5f

Il n’y a pas que Scrum dans la vie #Kanban

Page 49: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Une question d’organisation

6

49

Page 50: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Organisation traditionnelle d’un projet

50

6a

Page 51: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Organisation recommandée pour un projet data

51

6b

Page 52: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Feature Team

52

6c

Page 53: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Inclure des devops dans l’équipe

53

6d

Page 54: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Pair Programming

54

6e

Page 55: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Take away

7

55

Page 56: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Les conseils fournis

56

7a

Tester votre code

Page 57: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Les conseils fournis

57

7b

Tester votre code

Automatiser le build et déploiement au plus tôt

Page 58: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Les conseils fournis

58

7c

Tester votre code

Automatiser le build et déploiement au plus tôt

Utiliser du code packagé dans votre notebook

Page 59: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Les conseils fournis

59

7d

Tester votre code

Automatiser le build et déploiement au plus tôt

Utiliser du code packagé dans votre notebook

La Data Science peut fonctionner dans un environnement agile

Page 60: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Les conseils fournis

60

7e

Tester votre code

Automatiser le build et déploiement au plus tôt

Utiliser du code packagé dans votre notebook

La Data Science peut fonctionner dans un environnement agile

Travailler en Feature Teams

Page 61: XebiCon'16 : Data Science & Craftsmanship : Je t'aime, moi non plus. Par Yoann Benoit et Sylvain Lequeux

@xebiconfr #xebiconfr

Merci !

61