Machine Learning - Spark / MLlib

39
MACHINE LEARNING INTRODUCTION À MLLIB Hayssam Saleh

Transcript of Machine Learning - Spark / MLlib

Page 1: Machine Learning - Spark / MLlib

MACHINE  LEARNING  INTRODUCTION  À  MLLIB  Hayssam  Saleh  

Page 2: Machine Learning - Spark / MLlib

ANALYTICS  ¢  La  découverte  de  pa5erns  dans  les  données  ¢  S’appuie  sur  l’analyse  et  l’agréga=on  de  datasets  conséquents  

¢  Pour  extraire  des  faits  du  passé  ¢  Prédire  des  tendances  

¢  En  u=lisant  le  machine  learning  

Page 3: Machine Learning - Spark / MLlib

CAS  D’UTILISATION  

¢  Recommanda=on  ¢  Classifica=on  de  contenu  en  groupes  prédéfinis  ¢  Regroupement  de  contenus  similaires  ¢  Iden=fica=on  de  topics  clefs  ¢ Détec=on  de  fraude  et  d’anomalies  ¢  Ranking  

Page 4: Machine Learning - Spark / MLlib

DE  LA  DONNÉE  À  LA  CONNAISSANCE  

¢ De  la  donnée  à    ¢  la  connaissance  

�  Dois-­‐je  accorder  ce  crédit  à  ce  client  sur  la  base  de  ses  bilans  ?  

�  Ce  film  est-­‐il  un  film  d’humour  ?  �  Ce  mail  est-­‐il  un  spam  ?  

Données   Hypothèses  

ML  

Connaissance  

Page 5: Machine Learning - Spark / MLlib

TYPES  D’APPRENTISSAGE  

¢  Appren=ssage  Supervisé  �  Classifica=on  

¢  Le  résultat  est  un  valeur  parmi  N  sans  ordre  quelconque  et  dans  un  ensemble  prédéfini  ¢  Exemple  :  Ce  film  est-­‐il  un  film  d’horreur  ou  un  film  d’ac=ons  ou  un  film  roman=que  

¢  Prédire  le  label  de  nouvelles  données  à  par=r  des  labels  des  données  existantes  

�  Régression  ¢  Le  résultat  est  une  valeur  dans  un  ensemble  de  valeurs  con=nues  

¢  Exemple  :  Quel  est  le  prix  prévisionnel  de  cet  appartement  dans  les  6  prochains  mois  ?  

¢  Appren=ssage  non  supervisé  �  Clustering    

¢  Les  données  en  entrée  de  l’algorithme  d’appren=ssage  ne  sont  pas  labellisées  

¢  Grouper  les  données  en  fonc=on  de  leur  similarité  

Page 6: Machine Learning - Spark / MLlib

APPRENTISSAGE  SUPERVISÉ  ¢  Prédire  les  labels  de  données  futures  à  par=r  de  labels  de  données  existantes  

Salaire   Statut   Propriétaire   OK/KO  

100   Célibataire   Oui   OK  

120   Marié   Non   OK  

100   Divorcé   Non   KO  

80   Célibataire   Non   KO  

70   Marié   Non   KO  

100   Célibataire   Oui   OK  

x   y  

Con=nue   Catégorie   Binaire   Label  

x1   x2   x3  

Page 7: Machine Learning - Spark / MLlib

DÉMARCHE  Echan=llon  labélisé  

Sous-­‐Echan=llon  labélisé  

Sous-­‐Echan=llon  dont  le  label  a  été  occulté  

Algorithme  d’appren=ssage  

Modèle  

Performance  

¢  Le  modèle  génère  les  prédic=ons  ¢  Le  modèle  est  corrigé  lorsque  les  prédic=ons  sont  erronées  ¢  Le  modèle  est  considéré  sa=sfaisant  lorsque  le  niveau  de  précision  est  considéré  comme  

étant  sa=sfaisant  

80%   20%  

Training  set   Test  set  

Page 8: Machine Learning - Spark / MLlib

ARBRE  DE  DÉCISION  

Page 9: Machine Learning - Spark / MLlib
Page 10: Machine Learning - Spark / MLlib

LE  MEILLEUR  ARBRE  DE  DÉCISION  

OK   3  

KO   3  

Impureté  =  0,5  

Statut  

Statut  ?   Marié   Célibataire  /  Divorcé  

OK   1   2  

KO   1   2  

Gini  (marié)  =  1-­‐  ((1/2)2  +  (1/2)2)  =  0,5  Gini(Cél/Div)  =  1-­‐((2/4)2  +  (2/4)2)  =  0,5  Impureté    =  ((1+1)/6)  *  Gini(marié)  +  ((2+2)/6)  *  Gini(Cél/Div)  =  0,5  

1  

1  

2  

2  

Marié   Célibataire  /  Divorcé  

U=lisa=on  de  l’index  Gini  

OK  

KO  

OK  

KO  

Page 11: Machine Learning - Spark / MLlib

LE  MEILLEUR  ARBRE  DE  DÉCISION  

Propriétaire  ?   Oui   Non  

OK   2   1  

KO   0   3  

Gini  (Oui)  =  1-­‐  ((2/2)2  +  (0/2)2)  =  0  Gini(Non)  =  1-­‐((1/4)2  +  (3/4)2)  =  0,375  Impureté    =  ((2+0)/6)  *  Gini(Oui)  +  ((1+3)/6)  *  Gini(Non)  =  0,25  

Marge  d’erreur   1  -­‐  max(2/2,  0/2)  =  0   1  –  max(1/4,  3/4)  =  0,25  

OK   3  

KO   3  

Impureté  =  0,5  

Propriétaire  

2  

0  

1  

3  

Oui   Non  

U=lisa=on  de  l’index  Gini  

Page 12: Machine Learning - Spark / MLlib

LE  MEILLEUR  ARBRE  DE  DÉCISION    

Propriétaire  ?   Oui   Non  

OK   2   1  

KO   0   3  

Entropie(Oui)  =  -­‐(2/2)log2  (2/2)  –  (0/2)log2(0/2)  =  0  Entropie(Non)  =  -­‐(1/4)log2(1/4)  –  (3/4)log2(3/4)  =  0,5  +  0,31  =  0,81  Gain=  ((2+0)/6)  *  Entropie(Oui)  +  ((1+3)/6)  *  Entropie(Non)  =  0,4  

Marge  d’erreur   1  -­‐  max(2/2,  0/2)  =  0   1  –  max(1/4,  3/4)  =  0,25  

OK   3  

KO   3  

Impureté  =  0,5  

Propriétaire  

2  

0  

1  

3  

Oui   Non  

U=lisa=on  de  l’entropie  

Page 13: Machine Learning - Spark / MLlib

ARBRE  DE  DÉCISION  ¢  Comment  est  construit  l’arbre  de  décision  

�  Recherche  de  la  meilleure  condi=on  de  segmenta=on  ¢  En  s’appuyant  sur  l’impureté  

�  Qu’est  ce  que  la  mesure  d’impureté  ¢  Mesure  la  qualité  de  la  sépara=on  

¢  La  segmenta=on  s’arrête  lorsque  :  �  Tous  les  échan=llons  d’un  nœud  appar=ennent  à  la  même  classe  �  Il  n’y  a  plus  de  nouveaux  a5ributs  

¢  Classifica=on  à  la  majorité  �  Il  n’y  a  plus  d’échan=llons  à  classer    

¢  Quelle  technique  Gini  ou  Entropie  ?  �  La  li5érature  :  

¢  Gini  pour  les  a5ributs  con=nus,  l’entropie  pour  les  catégories  ¢  L’entropie  moins  performante  ?  

�  Mon  avis  :  ¢  Essayer  les  deux  et  choisir  celle  qui  fonc=onne  le  mieux.  

Page 14: Machine Learning - Spark / MLlib
Page 15: Machine Learning - Spark / MLlib

CLASSIFICATION  NAÏVE  BAYÉSIENNE  

¢  Théorème  de  Bayes  �  p(y|x)  =      p(x|y)  p(y)  �                                                         p(x)  

¢  p(y|x)    �  Probabilité  que  x  soit  de  la  classe  y  

¢  p(x|y)  �  Quelle  est  dans  l’échan=llon  labellisé,  la  probabilité  que  x  soit  dans  la  classe  y  

¢  p(y)  ¢ Quelle  est  dans  l’échan=llon  labellisé,  la  probabilité  d’occurrence  de  la  classe  y  

¢  p(x)  =    ¢ quelle  est  dans  l’échan=llon  labellisé,  la  probabilité  d’occurrence  de  x  

Page 16: Machine Learning - Spark / MLlib
Page 17: Machine Learning - Spark / MLlib

CLASSIFICATION  NAÏVE  BAYÉSIENNE  

Statut   OK/KO  

Célibataire   OK  

Marié   OK  

Divorcé   KO  

Célibataire   KO  

Marié   KO  

Célibataire   OK  

P(OK|Célibataire)  =    p(Célibataire|OK)  p(OK)                p(Célibataire)  

P(OK|oui)  =    2/3  *  3/6    =  0,67              3/6  

Page 18: Machine Learning - Spark / MLlib

CLASSIFICATION  NAÏVE  BAYÉSIENNE  

Client   Salaire   Statut   Propriétaire   OK/KO  

C1   100  =  2   Célibataire   Oui   OK  

C2   120  =  2   Marié   Non   OK  

C3   100  =  2   Divorcé   Non   KO  

C4   80  =  1   Célibataire   Non   KO  

C5   70  =  1   Marié   Non   KO  

C6   100  =  2   Célibataire   Oui   OK  

C7   90  =  1   Marié   Non  

p(x|y)  =  p(x1|y)  p(x2|y)  p(x3|y)  

p(C7|OK)  =  p(1|OK)  p(Marié|OK)  p(Non|OK)  =  0  *    0.5  *  0.25    

Page 19: Machine Learning - Spark / MLlib
Page 20: Machine Learning - Spark / MLlib

RÉGRESSION  LOGISTIQUE  

¢  Consiste  à  donner  un  poids  à  chaque  prédicteur.    ¢  Pour  obtenir  un  rapport  de  chances.  

ln  P(y  =  1  |  x)  

P(y  =  0  |  x)  =   a0  +  a1  x1  +  a2  x2  +  a3  x3  

ln  pi(x)  

1  –  pi(x)  =   a0  +  a1  x1  +  a2  x2  +  a3  x3  

pi(x)  =    e(a0  +  a1  x1  +  a2  x2  +  a3  x3)  

1  -­‐  e(a0  +  a1  x1  +  a2  x2  +  a3  x3)  e(a0  +  a1  x1  +  a2  x2  +  a3  x3)  

Page 21: Machine Learning - Spark / MLlib
Page 22: Machine Learning - Spark / MLlib

RÉGRESSION  LOGISTIQUE  

Client   Salaire   Statut   Propriétaire   OK/KO   C(X)     PI  (Score)  

C1   100   Célibataire   Oui   OK   1,99   0,87  

C2   120   Marié   Non   OK   1,3   0,55  

C3   100   Divorcé   Non   KO   -­‐2,7   0,12  

C4   80   Célibataire   Non   KO   -­‐1,5   0,01  

C5   70   Marié   Non   KO   -­‐0,38   0,42  

C6   100   Célibataire   Oui   OK   -­‐0,49   0,21  

Page 23: Machine Learning - Spark / MLlib

RÉGRESSION  LOGISTIQUE  –  LA  COURBE  ROC  Client   Salaire   Statut   Propriét

aire  OK/KO   C(X)     PI  (Score)   TVP   TFP  

C1   100   Célib.   Oui   OK   1,99   0,87   1/3  =  0,33   0/3  =  0  

C2   120   Marié   Non   OK   1,3   0,55   2/3  =  0,66   0/3  =  0  

C5   70   Marié   Non   KO   -­‐0,38   0,42   2/3  =  0,66   1/3  =  0,33  

C6   100   Célib.   Oui   OK   -­‐0,49   0,21   3/3  =  1   1/3  =  0,  33  

C3   100   Divorcé  

Non   KO   -­‐2,7   0,12   3/3  =  1   2/3  =  0,66  

C4   80   Célib.   Non   KO   -­‐1,5   0,01   3/3  =  1   3/3  =  1  

AUC  >  0.9  

AUC  

AUC  =  0.5   Pas  de  discrimina=on  

0.7  <  AUC  <  0.8   Discrimina=on  acceptable  

0.8  <  AUC  <  0.9   Discrimina=on  excellente  

AUC  >=  0.9   Discrimina=on  excellente  

0,33  

0,66  

1  

0,33   0,66   1  

TVP  

TFP  

Page 24: Machine Learning - Spark / MLlib

RÉGRESSION  LOGISTIQUE  –  COURBE  RAPPEL  -­‐  PRÉCISION  

Client   Salaire  

Statut   Propriétaire  

OK/KO   C(X)     PI  (Score)   Rappel   Précision  

C1   100   Célib.   Oui   OK   1,99   0,87   1/3  =  0,33   1/1  =  1  

C2   120   Marié   Non   OK   1,3   0,55   2/3  =  0,66   2/2  =  1  

C5   70   Marié   Non   KO   -­‐0,38   0,42   2/3  =  0,66   2/3  =  0.66  

C6   100   Célib.   Oui   OK   -­‐0,49   0,21   3/3  =  1   3  /  4  =  0.75  

C3   100   Divorcé   Non   KO   -­‐2,7   0,12   3/3  =  1   3  /  5  =  0.6  

C4   80   Célib.   Non   KO   -­‐1,5   0,01   3/3  =  1   3  /  6  =    0.5  

0,33  

0,66  

1  

0,33   0,66   1  

Précision

 

Rappel  

¢  PR  versus  ROC  �  PR  plus  adaptée  lorsque  les  classes  

sont  très  déséquilibrées  ?  

Page 25: Machine Learning - Spark / MLlib
Page 26: Machine Learning - Spark / MLlib

MACHINE  À  VECTEUR  DE  SUPPORT  

m  

f(x)  =  y  =    a0  +  a1  x1  +  a2  x2  +  a3  x3  

Page 27: Machine Learning - Spark / MLlib

RÉGRESSION  LINÉAIRE  ¢  Classifica=on  

�  La  classe  est  une  variable  discrète  ¢  La  régression  

�  La  classe  est  une  valeur  con=nue  ¢  Dans  les  deux  cas  nous  sommes  toujours  dans  l’appren=ssage  

supervisé.  

¢  Exemple  �  Quelle  sera  la  fréquenta=on  du  Stade  de  France  lors  de  la  prochaine  

coupe  d’Europe  

Page 28: Machine Learning - Spark / MLlib
Page 29: Machine Learning - Spark / MLlib

APPRENTISSAGE  NON  SUPERVISÉ  CLUSTERING  –  PLUS  PROCHES  VOISINS  ¢  Les  données  en  entrée  ne  sont  pas  labélisées  ¢  Le  clustering  

�  va  perme5re  de  regrouper  les  données  similaires  en  cluster  

¢ Objec=fs  �  Réduire  la  distance  entre  deux  points  du  clusters  �  Méthode  de  distance  u=lisée  :  Distance  euclidienne  

UQlisateur   Age   Enfants  

U1   38   2  

U2   25   0  

U3   45   3  

U4   28   0  

Distance  entre  U1  et  U2  =  racine2(  (38-­‐25)2  +  (2-­‐0)2)  =  13  Distance  entre  U1  et  U3  =  7    

Page 30: Machine Learning - Spark / MLlib

APPRENTISSAGE  NON  SUPERVISÉ  CLUSTERING  –  PLUS  PROCHES  VOISINS  

Page 31: Machine Learning - Spark / MLlib

CLUSTERING  :  APPRENTISSAGE  NON  SUPERVISÉ  

Feature/Item   P1   P2   P3   P4  

CPU   3.2   2.7   1.4   2.9  

SSD   1   1   0   0  

Disque   1To   512G   512G   1To  

RAM   32Go   16Go   8Go   64G  

¢  Objec=f  �  Calculer  la  distance  entre  les  items  en  pondérant  les  valeurs  des  features  �  Distance  entre  deux  documents  permet  d’iden=fier  des  plagiats  par  exemple  

Page 32: Machine Learning - Spark / MLlib
Page 33: Machine Learning - Spark / MLlib

COLLABORATIVE  FILTERING  ALTERNATING  LEAST  SQUARES  

SW1   SW2   V1   V2  

U1   4   4  

U2   5   5  

U3   1  

U1000   4   1  

¢ Objec=f  �  Bâ=r  une  matrice  de  rang  inférieur  qui  perme5e  de  faire  de  

la  recommanda=on    

Page 34: Machine Learning - Spark / MLlib
Page 35: Machine Learning - Spark / MLlib

COLLABORATIVE  FILTERING  ALTERNATING  LEAST  SQUARES  

Page 36: Machine Learning - Spark / MLlib

COLLABORATIVE  FILTERING  ALS  Référence  :  Am

plab  

Page 37: Machine Learning - Spark / MLlib
Page 38: Machine Learning - Spark / MLlib

DÉMARCHE  

¢  Choix  des  données  �  Le  choix  des  données  de  training  et  de  tests  s’appuie  sur  la  

connaissance  mé=er  

¢  Choix  des  critères  �  Le  choix  des  critères  implique  également  de  la  connaissance  mé=er  

¢  Choix  des  algorithmes  �  Classifica=on  ?  Régression  ?  �  Label  ou  non  ou  mixte  ?  �  Propor=on  de  classes  fortement  asymétriques  �  L’objec=f  est  de  prédire  une  probabilité  ?  topN  ?  

¢  Tuning  des  paramètres  des  algorithmes  en  testant  ¢  Tout  automa=ser  pour  avoir  un  historique  précis  des  résultats  obtenus  

Page 39: Machine Learning - Spark / MLlib

SYNTHÈSE  

¢  Appren=ssage  supervisé  �  Classifica=on  

¢  Arbre  de  décision  ¢  Classifica=on  Bayésienne  naïve  ¢  Régression  logis=que  ¢  Support  à  vecteur  de  machine  

�  Régression  ¢  Régression  linéaire  

�  Collabora=ve  Filtering  ¢  Alterna=ng  Least  Squares  

¢  Appren=ssage  non  supervisé  �  Clustering  

¢  K-­‐plus  proches  voisins