NightClazz Spark / Machine Learning

53
Démystifions le Machine Learning Nightclazz Spark et ML 10/03/16 Hervé RIVIERE

Transcript of NightClazz Spark / Machine Learning

Page 1: NightClazz Spark / Machine Learning

Démystifions le Machine Learning

Nightclazz Spark et ML10/03/16Hervé RIVIERE

Page 2: NightClazz Spark / Machine Learning

Hervé RIVIERE

Développeur Big Data / NoSQLZenika

Page 3: NightClazz Spark / Machine Learning

Démystifions le Machine LearningSommaire

Machine Learning ? 1

2

4

Fondamentaux

Algorithmes

3 Préparation des données

5 Outils

Page 4: NightClazz Spark / Machine Learning

Machine Learning ?

Page 5: NightClazz Spark / Machine Learning

Machine learning : ”Field of study that gives computers the ability to learn without being explicitly programmed.” Arthur Samuel

Solves tasks that people are good at, but traditional computation is bad at.

Programmes qui ecrivent de nouveaux programmes

Page 6: NightClazz Spark / Machine Learning

Use cases

Page 7: NightClazz Spark / Machine Learning

Use cases

ThyssenKrupp : 1.1 millions d’ascenseurs dans le monde

Capteurs IoT

Détecter les comportement conduisant à une panne

Remplacer les pièces avant les pannes

Page 8: NightClazz Spark / Machine Learning

Use cases

Remplacer des règles de gestion métier statiques par un algorithme auto-apprenant.

1- Mesure du risque (exemple : taux de prêt en fonction du dossier)

2- Recommandation (exemple : recommandation de films, pub)

3- Prédiction d’un comportement (exemple : prévision panne d’une machine en fonction des données capteurs / résiliation d’un abonné / diagnostic médical)

4- Prédiction de revenu

Page 9: NightClazz Spark / Machine Learning

Use cases

Mieux comprendre un jeu de données via les corrélations faites par les algorithmes ML

1 – Détecter / identifier des signaux faibles (ex : fraude, marketing…)

2 – Segmentation en différente catégories (exemple : campagne de publicité)

Page 10: NightClazz Spark / Machine Learning

Pourquoi ce titre ?

Machine Learning RegressionDeep LearningClusteringData Science Features engineering

(….)

Page 11: NightClazz Spark / Machine Learning
Page 12: NightClazz Spark / Machine Learning

Les algorithmes de ML ont été mis au points récemment ?1

2

3

Le machine Learning est une catégorie de l’Intelligence Artificielle?

Il n’est pas nécessaire de connaitre son jeu de données pour réaliser des prédictions performantes (les mathématiques n’ont pas besoin de connaitre les problématiques métier !) ?

QUIZZ

FAUX

VRAI

FAUX

Le ML étudie la causalité d’une prédiction 4

FAUX

Page 13: NightClazz Spark / Machine Learning

Fondamentaux

Page 14: NightClazz Spark / Machine Learning

Cas d’exempleCalcul du prix d’une maison

Variable cible numérique

Type Surface (m²) Nb de pièces Date de construction

Prix (€)

Appartement 120 4 2005 200 000

Maison 200 7 1964 250 000

Maison 450 15 1878 700 000Appartement 300 8 1986 ?????

Variables prédictives = Features

Prédire une valeur numérique : Algorithme de régression

Page 15: NightClazz Spark / Machine Learning

Variable cible textuelle= classe

Type Surface (m²) Nb de pièces Date de construction

Prix (€)

Appartement 120 4 2005 200 000

Maison 200 7 1964 250 000

Maison 450 15 1878 700 000???? 300 8 1986 600 000

Variables prédictives = Features

Prédire une valeur textuelle : Algorithme de classification

Cas d’exempleCalcul du prix d’une maison

Page 16: NightClazz Spark / Machine Learning

Prédictions…

0 5 10 15 20 250

100

200

300

400

500

600

Revenu réelFonction prédictive

Observations

Prix

(K€

) Bruit aléatoire

Prix réel = f(X) + a

a

a

af(X)

Modèle MLEcart imprévisible

Prédiction jamais exacte !

Page 17: NightClazz Spark / Machine Learning

Prédictions…

Si « a » trop important…

Modèle ML

Ecart imprévisiblePrédiction jamais exacte !

Prix réel = f(X) + a

Données non prédictible !

0 5 10 15 20 250

10

20

30

40

50

60

Revenu réelFonction prédictive

Observations

Prix

(K€

)

Bruit aléa-toire

Page 18: NightClazz Spark / Machine Learning

Workflow

DWH

Open Data

Web crawling

Dataset d’entrainem

entavec variables

prédictives et cible

Modèle

Prédiction

Variable cible

Hypothèses

Variables prédictives

….

Préparation Construction du modèle : Générer un programme (ie. le modèle)

Production : Utiliser le programme généré

Page 19: NightClazz Spark / Machine Learning

Voitures

?????

Page 20: NightClazz Spark / Machine Learning

• Prédiction de l’avenir proche en fonction du passé

• Approximation d’un pattern à partir d’exemple

• Copie d’un comportement en « boite noire » (juste input et output)

• Algorithmes qui s’adaptent

Résumons…

Page 21: NightClazz Spark / Machine Learning

Préparation des données

Page 22: NightClazz Spark / Machine Learning

Préparation des données

DWH

Open Data

Web crawling

Modèle

Prédiction

Hypothèses

Préparation

Dataset d’entraineme

ntavec variables

prédictives et cible

Page 23: NightClazz Spark / Machine Learning

Vérifier….

- Complétude: champs manquant ?

- Echelle: Revenues par pays et nombre d’achats par région !

- Exactitude : données réelles ?

- Fraicheur : Données du 19e siècle ?

Page 24: NightClazz Spark / Machine Learning

Transformer

- Format : CSV, images, JSON, BDD JSON

- Agréger

- Enrichir

A B C D E F G H

10 3 2 5 7 43 2 4

1 24 34 5 876 7 6 52

43 24 1 558 23 4 5 6

Algorithmes ML

Page 25: NightClazz Spark / Machine Learning

Visualiser…

Moyenne des X : 9Moyenne des Y : 7.5

Page 26: NightClazz Spark / Machine Learning

Préparation des données

• Une tache potentiellement (très…) longue

• Ingrat ?

• Influence directement le modèle

• Une bonne préparation des données est meilleure que des bon algorithmes !

Un mal nécessaire….

Page 27: NightClazz Spark / Machine Learning

Algorithmes

Page 28: NightClazz Spark / Machine Learning

Création du modèle

DWH

Open Data

Web crawling

Dataset d’entrainement Modèle

Prédiction

Hypothèses

Page 29: NightClazz Spark / Machine Learning

AlgorithmesRégression

Page 30: NightClazz Spark / Machine Learning

Cas d’exempleCalcul du prix d’une maison

Variable cible numérique

Type Surface (m²) Nb de pièces Date de construction

Prix (€)

Appartement 120 4 2005 200 000

Maison 200 7 1964 250 000

Maison 450 15 1878 700 000Appartement 300 8 1986 ?????

Variables prédictives = Features

Prédire une valeur numérique : Algorithme de régression

Page 31: NightClazz Spark / Machine Learning

RégressionsLinéaire et polynomiale

Illustration en 2D, majorité des modèles avec 5..10..1000 dimensions

0 5 10 15 20 2505

1015202530354045

Revenu réelFonction prédictive

Observations

Prix

(K€

)

Linéaire : f(X)=aX+b (avec « a » et « b » découverts automatiquement)

0 5 10 15 20 250

2000

4000

6000

8000

10000

Revenu réelFonction prédictive

Observations

Prix

(K€

)

Polynomiale : f(X)=aXy+bXz… (avec « a » et « b », « x », « y » découverts automatiquement)

Page 32: NightClazz Spark / Machine Learning

RégressionsLinéaire et logistique

Programme généré par l’algorithme après entrainement :Une formule mathématiques

Prix maison = 2*nbPieces + 3*surface

Page 33: NightClazz Spark / Machine Learning

RégressionsLinéaire et logistique

Essai successifs de l’algorithme pour trouver la courbe qui minimise l’erreur

Simple à visualiser / comprendreAlgorithme supervisé (nécessite un entrainement préalable)

Peut être utilisé à des fin prédictive ou descriptive

Très sensible à la préparation initiale (valeurs aberrantes…)

Suppose que les données peuvent être modélisées sous formes d’équations

Page 34: NightClazz Spark / Machine Learning

Tout n’est pas linéaire

Prix d’une maison : Si 10 + pièces…

Type

Pièce >10 Surface > 300

Etage <= 3 Ville = Paris

MaisonAppartement

Oui Non

Oui Oui NonNon

Oui Non

300 000€ 200 000€900 000€700 000€

400 000€600 000€

Page 35: NightClazz Spark / Machine Learning

RégressionsArbre de décision

Programme généré par l’algorithme après l’entrainement :Conditions

If(surface>10 && piece=3)if(type==maison) 250 000else if (type==appartement) 150

000Else 145 000

Page 36: NightClazz Spark / Machine Learning

Arbre de décision et random forest

Algorithme supervisé (nécessite un entrainement préalable)

Moins sensible à la qualité de préparation de données

Paramètre à définir : nombre d’arbres / profondeurs etc…

Plusieurs arbres entrainés avec des subsets variés peuvent être combinés Random Forest

Le random forest est un des algorithmes actuellement le plus performant

Page 37: NightClazz Spark / Machine Learning

AlgorithmesClassification

Page 38: NightClazz Spark / Machine Learning

Variable cible textuelle= classe

Type Surface (m²) Nb de pièces Date de construction

Prix (€)

Appartement 120 4 2005 200 000

Maison 200 7 1964 250 000

Maison 450 15 1878 700 000???? 300 8 1986 600 000

Variables prédictives = Features

Prédire une valeur textuelle : Algorithme de classification

Cas d’exempleCalcul du prix d’une maison

Page 39: NightClazz Spark / Machine Learning

Malade / Sain

Recommandation de film

Transformer un problème de régression (ex : prix d’une maison) en classification : « Cette maison va-t-elle se vendre plus cher que le prix moyen de la ville » Oui / Non

Minimiser l’erreur

Cas d’exempleAutres exemples

Page 40: NightClazz Spark / Machine Learning

Cas d’exempleDonnées issue d’un restaurant

Page 41: NightClazz Spark / Machine Learning

Classificateur binaire

Ne fonctionne qu’avec 2 catégories uniquement !

Le client est-il un homme ou une femme ?

Page 42: NightClazz Spark / Machine Learning

Tout n’est pas linéairePrédire l'âge…

Boisson = alcool

Prix > 30€ Steak haché

Boisson=vin

NonOui

Oui Non

Oui

Adulte

Non

Oui Non

AdolescentEnfant

Senior Adulte

Page 43: NightClazz Spark / Machine Learning

ClusteringClients d’un restaurant

Page 44: NightClazz Spark / Machine Learning

ClusteringClients d’un restaurant

Midi Soir

Page 45: NightClazz Spark / Machine Learning

Clustering

Algorithme non supervisé (pas d’entrainement)

Utilisé pour des algorithmes de recommandation (Netflix)

Le nombre de catégorie est définis par l’utilisateur ou dynamique

Le nom / description des catégorie est à définir par l’utilisateur

Page 46: NightClazz Spark / Machine Learning
Page 47: NightClazz Spark / Machine Learning

Quels outils ?

Page 48: NightClazz Spark / Machine Learning

Mathématiques !

Page 49: NightClazz Spark / Machine Learning

Connaissances métier !

Page 50: NightClazz Spark / Machine Learning

PrototypageVoir grand, commencer petit

Prototypage : tester rapidement et de façon autonome les hypothèses• R• SAS• Scikit-learn (Python)• Dataiku• Excel• Tableau • ….

Page 51: NightClazz Spark / Machine Learning

IndustrialisationScaling !

Industrialisation : Automatisation, performance, maintenabilité, important volume de données….

Important travail de réécriture de code !

• Brique ETL en amont• Construction du modèle :

• Volume de donnée « faible » : R / SAS / Python industrialisé• Volume de donnée « important » : Spark / Hadoop/Mahout (calcul distribué)• Solutions cloud (Azure ML / Amazon ML / Google prediction API)

• Distribution du modèle en aval :• Webservice• Embarqué dans une application • …

Page 52: NightClazz Spark / Machine Learning

Ressources

Big Data et machine learning: Manuel du data scientistDunod

MOOC Machine Learning, CourseraAndrew Ng

Page 53: NightClazz Spark / Machine Learning