Session des Journées SQL Server 2014 - Florian Eiden
---
Vous avez déjà investi lourdement dans votre datawarehouse, et n’avez construit que des rapports SSRS ou des tableaux croisés dynamiques dans Excel ? C’est bien dommage ! Après tout, un bon schéma en étoile est le point de départ idéal pour le Machine Learning.
Au cours de cette session nous ferons le point sur ce qu’est le Machine Learning, en termes compréhensible par des professionnels de la BI, et nous construirons une analyse avec Azure ML, le service de Machine Learning de Microsoft dans le cloud.
4. #JSS2014
> 100
billets de
blog / an
> 30
articles
de presse /
an
8 MVP
7 MCT
4 P-Sellers
> 12j / an
/pers. de
formation
Cabinet de conseil IT
et centre de formation
spécialisé dans les
technologies Microsoft
et méthodes Agiles.
Cloud &
Integration
Collaboration &
Content
Data & Analytics
Application
Development
ALM & Agilité
14. #JSS2014
• Je veux vendre mon appartement, comment
déterminer le prix en fonction de sa superficie?
Superficie (m2)
Prix (€)
Mon appart
Ma question
15. #JSS2014
Identifier un pattern!
• Des données existantes on peut identifier un motif qui
appliqué à mon cas me permettrait de trouver le prix du
marché
Superficie (m2)
Prix (€)
Mon appart
Prix du marché
16. #JSS2014
Identifier un pattern!
• Des données existantes on peut identifier un motif qui
appliqué à mon cas me permettrait de trouver le prix du
marché
Superficie (m2)
Prix (€)
Mon appart
Prix du marché
Boum, Machine
Learning!
18. #JSS2014
En pratique : La modélisation
Superficie (m2)
Prix (€)
Mon appart
Prix du marché
On devine une mesure connue
(prix) à partir d’un exemple :
Apprentissage supervisé
De valeurs discrètes (PAP) on
obtient un ensemble continue
(la courbe verte) : Régression
On est niveau chaton :
Régression Linéaire à 1 feature
(superficie)
y = ax + b
y : prix
x : superficie
19. #JSS2014
Ce qu’on m’a vendu!
Ma superficie
Une prédiction de bon
prix de vente pour
mon appart
La magie
du ML!
20. #JSS2014
x y
y = ax + b
1. Configuration
Superficie (m2)
Prix (€)
Mon appart
21. #JSS2014
x y
y = ax + b
1. Configuration
Superficie (m2)
Prix (€)
Mon appart
22. #JSS2014
x y
y = ax + b
2. Test
Superficie (m2)
Prix (€)
Mon appart
23. #JSS2014
x y
y = ax + b
Superficie (m2)
Prix (€)
Mon appart
Ma superficie
Une prédiction de bon
prix de vente pour
mon appart
3. Utilisation
24. #JSS2014
x y
y = ax + b
Superficie (m2)
Prix (€)
Mon appart
3. Utilisation
h
l’hypothèse
Input : x
Ma superficie
Output : y
Prédiction de
prix du marché
y = h(x)
25. #JSS2014
y = h(x)
h(x) = hθ(x) = θ0 + θ1x
x
y = h(x)
θ0
y = θ1x + θ0
h
l’hypothèse
Input : x
Ma superficie
Output : y
Prédiction de
prix du marché
26. #JSS2014
Savoirs s’ils sont bons ou pas? Pour choisir les
meilleurs?
Comment noter les paramètres?
x
y = h(x)
θ0
y = θ1x + θ0
Fonction-coût / Cost Function
27. #JSS2014
Savoirs s’ils sont bons ou pas? Pour choisir les
meilleurs?
Comment noter les paramètres?
x
y = h(x)
θ0
y = θ1x + θ0
J(θi)
Fonction-coût / Cost Function
Calcule la distance totale entre
mon modèle et tous les
exemples du training set
28. #JSS2014
2 exemples, même training set
x
y
x
y
θ0
Modèle 1
θ0 = 1
θ1 = 0
y = θ1x + θ0
Modèle 2
θ0 = 1
θ1 = 0,25
29. #JSS2014
2 exemples, même training set
x
y
x
y
θ0
Modèle 1
θ0 = 1
θ1 = 0
y = θ1x + θ0
Modèle 2
θ0 = 1
θ1 = 0,25
Prix du
marché
Prix du
marché
30. #JSS2014
Cost Function : J(θ0 ,θ1)
x
y
x
y
θ0
Modèle 1
θ0 = 1
θ1 = 0
Modèle 2
θ0 = 0,25
θ1 = 1
J(θ0 ,θ1) = 25 J(θ0 ,θ1) = 5
32. #JSS2014
On a les données training set
On a un modèle type h(x) = θ0 + θ1x
On sait le noter J(θ0 ,θ1)
La dernière pièce du puzzle
33. #JSS2014
On a les données training set
On a un modèle type h(x) = θ0 + θ1x
On sait le noter J(θ0 ,θ1)
Méthode d’optimisation Gradient Descent
La dernière pièce du puzzle
34. #JSS2014
Gradient Descent
1 – On essaye des premières
valeurs au hasard
2 – On fait varier les
paramètres simultanément
d’un delta basé sur leur
dérivée partielle de J
2.1 - Si J est meilleur on
continue
2.2 – Sinon on peut
s’arrêter
NB : oui GD ne trouve que les
minimums locaux, mais la LR est
convexe (pas d’optimum locaux)
35. #JSS2014
x y
y = ax + b
Superficie (m2)
Prix (€)
Mon appart
Vue globale
Input : x
Ma superficie
Output : y
Prédiction de
prix du marché
y = h(x)
Fonction-coût
Méthode d’optimisation
h
l’hypothèse
36. #JSS2014
x y
y = ax + b
Superficie (m2)
Prix (€)
Mon appart
Vue globale
Input : x
Ma superficie
Output : y
Prédiction de
prix du marché
y = h(x)
Fonction-coût
Méthode d’optimisation
h
l’hypothèse
39. #JSS2014
1. Plus de données!
2. Meilleures features
Régression polynomiale
3. Tester d’autres algorithmes
Aller plus loin?
40. #JSS2014
• Apprentissage supervisé
Je veux deviner la bonne réponse à partir d’exemples
– De valeurs discrètes à continue : Régression
– Ex : Prix des appartements
– De valeurs discrètes à une classe : Classification
– Ex : Aide au diagnostique médical (malade ou pas)
• Apprentissage non supervisé
Je veux trouver un pattern dans une donnée non classée
– Clustering / Segmentation
– Ex : Regrouper mes clients en sous-populations pour optimiser
mes e-mailings
Un pas de recul
Vrai merci
Le budget des JSS c’est plusieurs 10K€.
GUSS = Association, 0€ en banque
Chacun des sponsors c’est des vrais gens qui décident d’offrir un événement à la communauté, en échange d’un peu de visibilité
Au minimum lisez les plaquettes ;)
A max pensez à eux si besoin d’un coup de main sur vos projets, ou dans vos carrières
Parmi les sponsors Cellenza, ma boîte
5 pôles d’activités dont celui que je manage: Data & Analytics
En fait il est relativement récent ce pôle, Juin 2014, et au moment de le nommer on s’est posé la question: BI, Data, Data Insight (genre MS)…
On a choisit D&A, avec cette définition d’Analytics
Patterns : motifs
Ex : Saisonnalité des ventes, une population d’utilisateur spécifique de mon service – aux besoins spécifiques (hardcore gamer)
…
Et la BI est une sous-partie de ça, comme le Machine Learning…
BI : automatise le descriptive, permet le diagnostic à la main
ML : outillage pour le diagnostic / predictive, permet le prescriptive à la main
Un exemple simple de ça c’est en retail…
Ex: en retail on sait très bien construire des DWH pour suivre les ventes, gérer les inventaires, suivre la supply chain…
On sait savoir ce qu’il se passe
Par contre une chute ponctuelle dans les ventes, on ne sait pas forcément la diagnostiquer sans sortir les TCD et faire tous les croisements à la main
Avec ML, on va pouvoir quantifier les corrélations entre les événements, et ne rapporter que celles qui ont du sens. Et il reste l’humain au bout pour décider ce qui est bon, mais le gros du travail a été automatisé.
Autre exemple: dans mon usine de production, je sais faire de la BI et reporter sur ce qu’il se passe.
Avec ML, je vais pouvoir détecter les symptomes qui préfigurent une panne, à partir de mes données historiques dans le DWH, et comme ça prévoir de la maintenance avant l’éventuelle panne
Evidemment on peut construire un script complexe à base de IF/THEN/ELSE pour faire la même chose.
Mais autant laisser le PC faire la même chose!
Ce qui nous amène à une définition simple de ML…
Et dans une entreprise qui fonctionne bien les expériences elles sont stockées où? Dans le DWH.
Autant vous dire qu’au minimum on va récupérer une nouvelle catégorie de client qui va justifier nos tarifs indécents
Au maximum on va pouvoir ajouter ces services à nos offres et étendre la portée de nos métiers. Cool!
Et pour illustrer tout ça, on va partir d’un cas plus ou moins théorique
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Comment on apprend le machine learning? Un algorithme à la fois, une typologie de problème à la fois
Supervisé VS non supervisé
Régression VS classification
Toutes les variations sur les régressions, les SVM…
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
Pourquoi h est fonction de theta?
Les thetas sont les paramètres, qui seront evidemment fonction de mon problème.
Les theta des 2 pièces à Paris ne seront pas les mêmes que des studio à Albi
L’objectif maintenant est de déterminer quels sont les bons theta
Au final on peut essayer toutes les combinaisons de thetas possible, et juste choisir le meilleur
Mais comment les meilleurs?
Au final on peut essayer toutes les combinaisons de thetas possible, et juste choisir le meilleur
Mais comment les meilleurs?
Ce qui devient un problème mathématique à part entière, en dehors du scope.
Le Gradient Descent présente l’énorme avantage d’éviter de se taper la combinatoire de toutes
Quelle approche pour trouver θ0 ,θ1?
On essaye toutes les combinatoires?
Gradient Descent : algorithme de minimisation d’une fonction
Trop théorique, mathématique, si Coursera vous le ferez, sinon il suffit de savoir qu’il existe, et qu’il en existe plusieurs!
Je me fais les petites annonces, et j’ai un beau dataset : superficie x prix
Comment choisir les bons paramètres?
En fonction de chacun de ces choix, j’aurai un résultat différent
Cas 1 : trop timide, pas très précis
Cas 2 : trop aggressif, pas assez de données, ne généralisera pas