25
Paul Blondel Data Scientist @Recast.AI [email protected] @paulb_recast

Quel algo ml_pour_mon_probleme

Embed Size (px)

Citation preview

Page 1: Quel algo ml_pour_mon_probleme

Paul BlondelData Scientist @Recast.AI

[email protected]

@paulb_recast

Page 2: Quel algo ml_pour_mon_probleme

Quel algorithme machine learning (ML) pour mon problème ?

@paulb_recast

Page 3: Quel algo ml_pour_mon_probleme

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

Page 4: Quel algo ml_pour_mon_probleme

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

Page 5: Quel algo ml_pour_mon_probleme

Quand et pourquoi utiliser du ML ?

@paulb_recast

Détection de visages Systèmes de recommandation

Chat-bots

Page 6: Quel algo ml_pour_mon_probleme

@paulb_recast

Le ML, la parfaite boîte noire pour résoudre tous mes problèmes ?

Page 7: Quel algo ml_pour_mon_probleme

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 ?

Page 8: Quel algo ml_pour_mon_probleme

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)

Page 9: Quel algo ml_pour_mon_probleme

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 !

Page 10: Quel algo ml_pour_mon_probleme

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

Page 11: Quel algo ml_pour_mon_probleme

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

Page 12: Quel algo ml_pour_mon_probleme

Les algorithmes ML populaires

@paulb_recast

La régression linéaire (algo de régression …)

Apprentissage

Prédiction

Principe:

Trouver une relation linéaireSupervisé.

Avantages :

- Très simple- Comm++- Faible place en mémoire- Rapide

Désavantages :

- Hypothèse : linéarité !- Instable si caractéristiques redondantes

Page 13: Quel algo ml_pour_mon_probleme

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

Page 14: Quel algo ml_pour_mon_probleme

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)

Page 15: Quel algo ml_pour_mon_probleme

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)

Page 16: Quel algo ml_pour_mon_probleme

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

Page 17: Quel algo ml_pour_mon_probleme

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

Page 18: Quel algo ml_pour_mon_probleme

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

Page 19: Quel algo ml_pour_mon_probleme

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

Page 20: Quel algo ml_pour_mon_probleme

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

Page 21: Quel algo ml_pour_mon_probleme

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.

Page 22: Quel algo ml_pour_mon_probleme

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 !

Page 23: Quel algo ml_pour_mon_probleme

@paulb_recast

Alors, le ML, la parfaite boîte noire pour résoudre tous mes problèmes ?

Page 24: Quel algo ml_pour_mon_probleme

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

Page 25: Quel algo ml_pour_mon_probleme

@paulb_recast

Merci !

Paul BlondelData Scientist @Recast.AI

[email protected]