Paul Blondel
Data Scientist @Recast.AI
paul.blondel@recast.ai
@paulb_recast
Quel algorithme
machine learning (ML)
pour mon problème ?
@paulb_recast
Mais d’abord …
Quand et pourquoi utiliser du ML ?
@paulb_recast
- Créer des systèmes de décision
- Trouver une structure
- Détecter des anomalies
- Traiter des données complexes et/ou volumineuses
- Automatiser le traitement des données
Système de décision Découvrir une structure Trouver une anomalie
@paulb_recast
Quand et pourquoi utiliser du ML ?
“Machine Learning is the field of study that gives computers the ability to
learn without being explicitly programmed.” Arthur Samuel (1959)
Quand et pourquoi utiliser du ML ?
@paulb_recast
Détection de visages Systèmes de recommandation
Chat-bots
@paulb_recast
Le ML, la parfaite boîte noire pour
résoudre tous mes problèmes ?
Bien définir le problème à résoudre !
@paulb_recast
Que voulons-nous faire ?
● Prédire une catégorie ? (classification)
● Prédire une quantité ? (régression)
100m2, Orly, Garage …
● Détecter une anomalie ?
20 dollars retiré 5 fois à Las Vegas
● Trouver une structure dans les données ?
Chien ou chat ? Chat ...
230.000 euros
OuiFraude ?
Prix ?
Bien définir le problème à résoudre !
@paulb_recast
De quoi disposons-nous ?
● Avons-nous beaucoup de données ?
● Les données sont-elles labellisées ?
● Avons nous beaucoup de caractéristiques ?
● Combien de classes ai-je dans mes données ? (si données labellisées)
Images labelisées “kim”
Images labelisées “chat”Images non-labelisées
(en désordre)
Bien définir le problème à résoudre !
@paulb_recast
Quelles sont mes contraintes ?
● De quel espace de mémoire disposons nous pour notre modèle ?
● Avons-nous des contraintes de rapidité de prédiction ?
● Avons-nous des contraintes de rapidité d’apprentissage ?
Mais aussi …
● Ne pas oublier la maintenabilité !
● Ne pas négliger la communication !
Un peu de théorie ...
@paulb_recast
L’apprentissage ML revient à découvrir une structure latente dans les données. Trois
approches principales d’apprentissage :
● Supervisé :
Quand toutes les données que nous avons sont labellisées
● Non-supervisé :
Quand les données ne sont pas labellisées
On vient grouper les données “proches” / similaires
● Semi-supervisé:
Quand une partie des données seulement est labellisée
Cas couramment rencontré en pratique
Supervisé ...
Non-supervisé ...
Un peu de théorie ...
@paulb_recast
Deux choses importantes à garder à l’esprit : le bias et la variance.
● Le biais : erreur sur hypothèses d’apprentissage
Biais élevé = sous-apprentissage
Apprentissage
Apprentissage
Prédiction
Prédiction
● La variance : erreur due aux petites fluctuations des données d’apprentissage
Variance élevée = sur-apprentissage
Les algorithmes ML populaires
@paulb_recast
La régression linéaire (algo de régression …)
Apprentissage
Prédiction
Principe:
Trouver une relation linéaire
Supervisé.
Avantages :
- Très simple
- Comm++
- Faible place en mémoire
- Rapide
Désavantages :
- Hypothèse : linéarité !
- Instable si caractéristiques redondantes
Les algorithmes ML populaires
@paulb_recast
Arbre de décision (algo de classification et régression)
Principe:
Subdivise les données d'entraînement en régions ayant des
caractéristiques similaires. Supervisé.
Avantages :
- Plutôt simple
- Comm +++
- Maintenabilité ++
- Pratique quand caractéristiques catégorielles
- Peu de paramètres
- Prédiction rapide
Désavantages :
- Peut prendre beaucoup de mémoire
- Sur-apprendre énormément
- Ne supporte pas l’apprentissage incrémental.
Apprentissage
Prédiction
Les algorithmes ML populaires
@paulb_recast
Apprentissage
Prédiction
Principe:
Les données d’entraînement sont divisées en N sous-ensemble
aléatoire. Pour chaque sous-ensemble, un sous-ensemble de
caractéristiques est aléatoirement tiré. Supervisé.
À la prédiction: vote majoritaire.
Avantages :
- Robuste au sur-apprentissage
- Paramétrisation intuitive et aisée
- Performant quand grand nombre de données
- Supporte grand nombre de caractéristiques
Désavantages :
- Peut prendre beaucoup de mémoire …
- Ne supporte pas l’apprentissage incrémental
- Apprentissage lent
Forêts aléatoires (algo de classification et régression)
Les algorithmes ML populaires
@paulb_recast
Apprentissage
Prédiction
Principe:
Des prédicteurs “faibles” sont appris en série.
Après une itération : l’importance des données d’apprentissage est
ajustée.
Supervisé
Avantages :
- Paramétrisation simple
- Pas besoin d’avoir un prédicteur “faible” complexe
- Robuste au sur-apprentissage
- En série: temps prédiction optimisable !
- Performant quand grand nombre de données
Désavantages :
- Selon type prédicteur faible: beaucoup de mémoire
- Apprentissage lent
Algorithme de Boosting (algo de classification et régression)
Les algorithmes ML populaires
@paulb_recast
Machine à vecteurs de support (algo de classification …)
Principe:
Choisir la structure séparatrice qui sépare au maximum les données
des deux côtés (en se basant sur des “supports”)
Supervisé.
Avantages :
- Conçu pour réduire le sur-apprentissage
- Prédiction très rapide
- Gère très grand nombre de caractéristiques
- Gère grand volume de données d’apprentissage
- Prend très peu de place en mémoire
Désavantages :
- Comm --
- Maintenabilité --
- Apprentissage lent
- Paramétrisation peu intuitive
Apprentissage
Prédiction
Les algorithmes ML populaires
@paulb_recast
Réseaux de neurones (algo de classification et de regression …)
Principe:
Apprendre les poids des connections entre les neurones.
Les poids sont ajustés donnée après donnée.
Avantages :
- Deep: modélise cas complexes
- Gère grand volume de données d’apprentissage
- Pas d'ingénierie des caractéristiques (“boîte noire”)
- Grand nombre de structures (CNN, RNN, etc.)
Désavantages :
- Comm ----
- Maintenabilité ----
- Apprentissage lent
- Prend beaucoup de mémoire (surtout en deep)
- Deep: nécessite grande quantité de données.
- Paramétrisation très peu intuitive
Apprentissage
Prédiction
Les algorithmes ML populaires
@paulb_recast
L’algorithme des K-Moyennes (algo de clusterisation …)
Principe:
K centres sont sélectionnés aléatoirement.
À chaque itération les centres sont réestimés.
Non-supervisé.
Avantages :
- Paramétrisation intuitive
- Fonctionne bien avec beaucoup de données
Désavantages :
- Connaître à l’avance nombre de groupements
- Groupements différents à chaque lancement
Avantage ou désavantage :
- Algo de partitionnement !
Initialisation Première itération
Itération N
Les algorithmes ML populaires
@paulb_recast
L’algorithme One-class SVM (algo de détection d’anomalies …)
Principe:
Choisir la marge séparatrice qui sépare au maximum les données (en
se basant sur des “supports”) de l’origine.
Toutes les données appartiennent à une classe.
Avantages :
- Prédiction très rapide
- Gère très grand nombre de caractéristiques
- Gère grand volume de données d’apprentissage
- Prend très peu de place en mémoire
Désavantages :
- Comm --
- Maintenabilité --
- Apprentissage lent
- Paramétrisation peu intuitive
Apprentissage
Prédiction
Choisir son algo
@paulb_recast
Algo Type
Tolérance nombre
caractéristiques
Paramétrisation
Taille
mémoire
Quantité mini
de données
nécessaire
Comm
Tendance
sur-apprentissage
Difficulté Temps calcul
apprentissage
Temps calcul
prédiction
Régression linéaire R Faible Inexistante Faible Petite ++ Basse Faible Faible Faible
Régression logistique C Faible Simple Faible Petite ++ Basse Faible Faible Faible
Arbre de décision R et C Grande Simple / intuitive Grosse Petite +++ Très élevée Faible Faible Faible
Forêt aléatoire R et C Grande Simple / intuitive Très grosse Grosse ++ Moyenne Moyenne Coûteux Coûteux
Boosting R et C Grande Simple / intuitive Très grosse Grosse + Moyenne Moyenne Coûteux Faible
Naive Bayes C Faible Inexistante Faible Petite ++ Basse Faible Faible Faible
SVM C Très grande Peu intuitive Faible Grosse -- Moyenne Élevée Coûteux Faible
Rés Neurones (RN) C Très grande ** Peu intuitive Moyenne Grosse --- Moyenne Très élevée Coûteux Faible
RN Deep C Très grande ** Peu intuitive Très grosse Très grosse --- Élevée Très élevée Très coûteux Faible
K-Means G* Grande Simple / Intuitive Petite + Faible Faible
One class SVM A Très grande Peu intuitive Faible Grosse -- Moyenne Élevée Coûteux Faible
* Seul algo non-supervisé présenté
** Ne nécessite pas d'ingénierie des caractéristiques
Conseils pratiques
@paulb_recast
● Toujours jeter un oeil à la tête des données !
● Travail itératif : en premier, algos avec paramétrisation intuitive / simple
○ Assurance sur l’approche de résolution du problème
○ Peu de perte de temps en tuning de paramètres en POC
● Ingénierie des caractéristiques:
○ Peu de caractéristiques : peu de facets dispo pour voir les données,
○ Trop de caractéristiques : compenser avec plus de données ou réduire
● Passer en mode bac-à-sable avant implém (R / Matlab / Python)
○ Tester différents algos sur un échantillon de données
○ Et finalement implém ou utiliser le meilleur choix !
● Jauger la généralisation du modèle appris :
○ Cross-validation.
Quelques conseils
@paulb_recast
● Problèmes non-linéaires : éviter Naive Bayes, Régression linéaire et Logistique
● Performances:
○ Difficile de prédire lequel sera le plus performant …
○ Acquérir plus de données d’abord !
@paulb_recast
Alors, le ML, la parfaite boîte noire pour
résoudre tous mes problèmes ?
Conclusion
@paulb_recast
● Comment définir son problème :
○ Que voulons-nous faire ?
○ De quoi disposons-nous ?
○ Quelles sont mes contraintes ?
● Approches ML, le biais et la variance
● Les algos ML populaires
● Une comparaison de ces algos
● Quelques conseils pratiques ...
@paulb_recast
Merci !
Paul Blondel
Data Scientist @Recast.AI
paul.blondel@recast.ai

Quel algo ml_pour_mon_probleme

  • 1.
    Paul Blondel Data Scientist@Recast.AI paul.blondel@recast.ai @paulb_recast
  • 2.
    Quel algorithme machine learning(ML) pour mon problème ? @paulb_recast
  • 3.
    Mais d’abord … Quandet pourquoi utiliser du ML ? @paulb_recast - Créer des systèmes de décision - Trouver une structure - Détecter des anomalies - Traiter des données complexes et/ou volumineuses - Automatiser le traitement des données Système de décision Découvrir une structure Trouver une anomalie
  • 4.
    @paulb_recast Quand et pourquoiutiliser du ML ? “Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed.” Arthur Samuel (1959)
  • 5.
    Quand et pourquoiutiliser du ML ? @paulb_recast Détection de visages Systèmes de recommandation Chat-bots
  • 6.
    @paulb_recast Le ML, laparfaite boîte noire pour résoudre tous mes problèmes ?
  • 7.
    Bien définir leproblème à résoudre ! @paulb_recast Que voulons-nous faire ? ● Prédire une catégorie ? (classification) ● Prédire une quantité ? (régression) 100m2, Orly, Garage … ● Détecter une anomalie ? 20 dollars retiré 5 fois à Las Vegas ● Trouver une structure dans les données ? Chien ou chat ? Chat ... 230.000 euros OuiFraude ? Prix ?
  • 8.
    Bien définir leproblème à résoudre ! @paulb_recast De quoi disposons-nous ? ● Avons-nous beaucoup de données ? ● Les données sont-elles labellisées ? ● Avons nous beaucoup de caractéristiques ? ● Combien de classes ai-je dans mes données ? (si données labellisées) Images labelisées “kim” Images labelisées “chat”Images non-labelisées (en désordre)
  • 9.
    Bien définir leproblème à résoudre ! @paulb_recast Quelles sont mes contraintes ? ● De quel espace de mémoire disposons nous pour notre modèle ? ● Avons-nous des contraintes de rapidité de prédiction ? ● Avons-nous des contraintes de rapidité d’apprentissage ? Mais aussi … ● Ne pas oublier la maintenabilité ! ● Ne pas négliger la communication !
  • 10.
    Un peu dethéorie ... @paulb_recast L’apprentissage ML revient à découvrir une structure latente dans les données. Trois approches principales d’apprentissage : ● Supervisé : Quand toutes les données que nous avons sont labellisées ● Non-supervisé : Quand les données ne sont pas labellisées On vient grouper les données “proches” / similaires ● Semi-supervisé: Quand une partie des données seulement est labellisée Cas couramment rencontré en pratique Supervisé ... Non-supervisé ...
  • 11.
    Un peu dethéorie ... @paulb_recast Deux choses importantes à garder à l’esprit : le bias et la variance. ● Le biais : erreur sur hypothèses d’apprentissage Biais élevé = sous-apprentissage Apprentissage Apprentissage Prédiction Prédiction ● La variance : erreur due aux petites fluctuations des données d’apprentissage Variance élevée = sur-apprentissage
  • 12.
    Les algorithmes MLpopulaires @paulb_recast La régression linéaire (algo de régression …) Apprentissage Prédiction Principe: Trouver une relation linéaire Supervisé. Avantages : - Très simple - Comm++ - Faible place en mémoire - Rapide Désavantages : - Hypothèse : linéarité ! - Instable si caractéristiques redondantes
  • 13.
    Les algorithmes MLpopulaires @paulb_recast Arbre de décision (algo de classification et régression) Principe: Subdivise les données d'entraînement en régions ayant des caractéristiques similaires. Supervisé. Avantages : - Plutôt simple - Comm +++ - Maintenabilité ++ - Pratique quand caractéristiques catégorielles - Peu de paramètres - Prédiction rapide Désavantages : - Peut prendre beaucoup de mémoire - Sur-apprendre énormément - Ne supporte pas l’apprentissage incrémental. Apprentissage Prédiction
  • 14.
    Les algorithmes MLpopulaires @paulb_recast Apprentissage Prédiction Principe: Les données d’entraînement sont divisées en N sous-ensemble aléatoire. Pour chaque sous-ensemble, un sous-ensemble de caractéristiques est aléatoirement tiré. Supervisé. À la prédiction: vote majoritaire. Avantages : - Robuste au sur-apprentissage - Paramétrisation intuitive et aisée - Performant quand grand nombre de données - Supporte grand nombre de caractéristiques Désavantages : - Peut prendre beaucoup de mémoire … - Ne supporte pas l’apprentissage incrémental - Apprentissage lent Forêts aléatoires (algo de classification et régression)
  • 15.
    Les algorithmes MLpopulaires @paulb_recast Apprentissage Prédiction Principe: Des prédicteurs “faibles” sont appris en série. Après une itération : l’importance des données d’apprentissage est ajustée. Supervisé Avantages : - Paramétrisation simple - Pas besoin d’avoir un prédicteur “faible” complexe - Robuste au sur-apprentissage - En série: temps prédiction optimisable ! - Performant quand grand nombre de données Désavantages : - Selon type prédicteur faible: beaucoup de mémoire - Apprentissage lent Algorithme de Boosting (algo de classification et régression)
  • 16.
    Les algorithmes MLpopulaires @paulb_recast Machine à vecteurs de support (algo de classification …) Principe: Choisir la structure séparatrice qui sépare au maximum les données des deux côtés (en se basant sur des “supports”) Supervisé. Avantages : - Conçu pour réduire le sur-apprentissage - Prédiction très rapide - Gère très grand nombre de caractéristiques - Gère grand volume de données d’apprentissage - Prend très peu de place en mémoire Désavantages : - Comm -- - Maintenabilité -- - Apprentissage lent - Paramétrisation peu intuitive Apprentissage Prédiction
  • 17.
    Les algorithmes MLpopulaires @paulb_recast Réseaux de neurones (algo de classification et de regression …) Principe: Apprendre les poids des connections entre les neurones. Les poids sont ajustés donnée après donnée. Avantages : - Deep: modélise cas complexes - Gère grand volume de données d’apprentissage - Pas d'ingénierie des caractéristiques (“boîte noire”) - Grand nombre de structures (CNN, RNN, etc.) Désavantages : - Comm ---- - Maintenabilité ---- - Apprentissage lent - Prend beaucoup de mémoire (surtout en deep) - Deep: nécessite grande quantité de données. - Paramétrisation très peu intuitive Apprentissage Prédiction
  • 18.
    Les algorithmes MLpopulaires @paulb_recast L’algorithme des K-Moyennes (algo de clusterisation …) Principe: K centres sont sélectionnés aléatoirement. À chaque itération les centres sont réestimés. Non-supervisé. Avantages : - Paramétrisation intuitive - Fonctionne bien avec beaucoup de données Désavantages : - Connaître à l’avance nombre de groupements - Groupements différents à chaque lancement Avantage ou désavantage : - Algo de partitionnement ! Initialisation Première itération Itération N
  • 19.
    Les algorithmes MLpopulaires @paulb_recast L’algorithme One-class SVM (algo de détection d’anomalies …) Principe: Choisir la marge séparatrice qui sépare au maximum les données (en se basant sur des “supports”) de l’origine. Toutes les données appartiennent à une classe. Avantages : - Prédiction très rapide - Gère très grand nombre de caractéristiques - Gère grand volume de données d’apprentissage - Prend très peu de place en mémoire Désavantages : - Comm -- - Maintenabilité -- - Apprentissage lent - Paramétrisation peu intuitive Apprentissage Prédiction
  • 20.
    Choisir son algo @paulb_recast AlgoType Tolérance nombre caractéristiques Paramétrisation Taille mémoire Quantité mini de données nécessaire Comm Tendance sur-apprentissage Difficulté Temps calcul apprentissage Temps calcul prédiction Régression linéaire R Faible Inexistante Faible Petite ++ Basse Faible Faible Faible Régression logistique C Faible Simple Faible Petite ++ Basse Faible Faible Faible Arbre de décision R et C Grande Simple / intuitive Grosse Petite +++ Très élevée Faible Faible Faible Forêt aléatoire R et C Grande Simple / intuitive Très grosse Grosse ++ Moyenne Moyenne Coûteux Coûteux Boosting R et C Grande Simple / intuitive Très grosse Grosse + Moyenne Moyenne Coûteux Faible Naive Bayes C Faible Inexistante Faible Petite ++ Basse Faible Faible Faible SVM C Très grande Peu intuitive Faible Grosse -- Moyenne Élevée Coûteux Faible Rés Neurones (RN) C Très grande ** Peu intuitive Moyenne Grosse --- Moyenne Très élevée Coûteux Faible RN Deep C Très grande ** Peu intuitive Très grosse Très grosse --- Élevée Très élevée Très coûteux Faible K-Means G* Grande Simple / Intuitive Petite + Faible Faible One class SVM A Très grande Peu intuitive Faible Grosse -- Moyenne Élevée Coûteux Faible * Seul algo non-supervisé présenté ** Ne nécessite pas d'ingénierie des caractéristiques
  • 21.
    Conseils pratiques @paulb_recast ● Toujoursjeter un oeil à la tête des données ! ● Travail itératif : en premier, algos avec paramétrisation intuitive / simple ○ Assurance sur l’approche de résolution du problème ○ Peu de perte de temps en tuning de paramètres en POC ● Ingénierie des caractéristiques: ○ Peu de caractéristiques : peu de facets dispo pour voir les données, ○ Trop de caractéristiques : compenser avec plus de données ou réduire ● Passer en mode bac-à-sable avant implém (R / Matlab / Python) ○ Tester différents algos sur un échantillon de données ○ Et finalement implém ou utiliser le meilleur choix ! ● Jauger la généralisation du modèle appris : ○ Cross-validation.
  • 22.
    Quelques conseils @paulb_recast ● Problèmesnon-linéaires : éviter Naive Bayes, Régression linéaire et Logistique ● Performances: ○ Difficile de prédire lequel sera le plus performant … ○ Acquérir plus de données d’abord !
  • 23.
    @paulb_recast Alors, le ML,la parfaite boîte noire pour résoudre tous mes problèmes ?
  • 24.
    Conclusion @paulb_recast ● Comment définirson problème : ○ Que voulons-nous faire ? ○ De quoi disposons-nous ? ○ Quelles sont mes contraintes ? ● Approches ML, le biais et la variance ● Les algos ML populaires ● Une comparaison de ces algos ● Quelques conseils pratiques ...
  • 25.
    @paulb_recast Merci ! Paul Blondel DataScientist @Recast.AI paul.blondel@recast.ai