NightClazz Spark / Machine Learning

Post on 16-Jan-2017

367 views 1 download

transcript

Démystifions le Machine Learning

Nightclazz Spark et ML10/03/16Hervé RIVIERE

Hervé RIVIERE

Développeur Big Data / NoSQLZenika

Démystifions le Machine LearningSommaire

Machine Learning ? 1

2

4

Fondamentaux

Algorithmes

3 Préparation des données

5 Outils

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

Use cases

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

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

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

Pourquoi ce titre ?

Machine Learning RegressionDeep LearningClusteringData Science Features engineering

(….)

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

Fondamentaux

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

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

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 !

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

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é

Voitures

?????

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

Préparation des données

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

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 ?

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

Visualiser…

Moyenne des X : 9Moyenne des Y : 7.5

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….

Algorithmes

Création du modèle

DWH

Open Data

Web crawling

Dataset d’entrainement Modèle

Prédiction

Hypothèses

AlgorithmesRégression

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

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)

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

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

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€

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

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

AlgorithmesClassification

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

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

Cas d’exempleDonnées issue d’un restaurant

Classificateur binaire

Ne fonctionne qu’avec 2 catégories uniquement !

Le client est-il un homme ou une femme ?

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

ClusteringClients d’un restaurant

ClusteringClients d’un restaurant

Midi Soir

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

Quels outils ?

Mathématiques !

Connaissances métier !

PrototypageVoir grand, commencer petit

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

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

Ressources

Big Data et machine learning: Manuel du data scientistDunod

MOOC Machine Learning, CourseraAndrew Ng