La Data Science en 5 minutes

Quelques idées de Data Science … (Sous Python ou R)

L’objectif : Ce que l’on veut faire, pourquoi on travaille la donnée.

Souvent, l’objectif est d’utiliser différentes sources afin de les exploiter au sein d’un modèle.

Souvent, on est face à deux situations :

1) Apprentissage supervisé – Classification ou Régression . On a à notre disposition des données étiquetées et on veut les utiliser pour prédire notre cible.
Par exemple, imaginons qu’on ait à notre disposition l’ensemble des caractéristiques de différents thés et qu’on veuille prédire par exemple s’il s’agit de la marque Lipton ou Twinings.
Il s’agit là d’un cas de classification binaire 0 (pas Lipton) / 1 (Lipton).
De nombreux algorithmes de Machine Learning peuvent être appliqués à nos données.
On divise nos données étiquetées en deux, voire trois, ensembles (ensemble d’apprentissage, ensemble de test et ensemble de validation).

On leur fournit :
– nos données d’apprentissage, c’est à dire les caractéristiques des différents thés.
– notre variable cible, c’est à dire les différentes marques.

On peut utiliser une approche de cross-validation en réservant une partie de l’apprentissage afin d’évaluer la performance en test. En découpant ainsi l’ensemble d’apprentissage en 5 blocs d’exemples sélectionnés de manière aléatoire, on obtient 5 valeurs témoignant de la performance en test.
On utilise ensuite les données n’ayant pas servi à l’apprentissage afin de vérifier la capacité de généralisation de notre modèle, c’est à dire avoir une idée de son comportement sur des cas non encore rencontrés.

Les cas qu’on cherche à éviter :
– On apprend pas assez (sous-apprentissage) – La performance en apprentissage n’est pas suffisamment bonne et la prédiction sur l’ensemble de test est similaire.
– On apprend trop bien (sur-apprentissage) – On est capable d’avoir une prédiction parfaite sur l’ensemble d’apprentissage mais le modèle ne généralise pas bien, c’est-à-dire est mauvais en test.

On peut regarder plusieurs métriques pour évaluer la performance, par exemple :
– la précision
– le rappel

Il s’agissait là d’un exemple de classification avec deux classes.
On peut prédire d’autres cas :
– multiclasse = plus de deux classes
– une valeur continue = il s’agit alors d’une régression ; prédire par exemple le temps d’infusion du sachet en fonction des caractéristiques.

Beaucoup de modèles peuvent être testés : Logistique régression, Random Forest, …

2) Dans le deuxième cas, on ne cherche pas à prédire une variable cible mais on attend de l’algorithme utilisé qu’il sépare nos données en un nombre donné de groupes.
L’idée est de segmenter et d’extraire de la connaissance.
On pourra par exemple avoir un ou plusieurs groupes / clusters représentant les exemples se distinguant nettement des autres, les « outliers ».
Il peut s’agir également de distinguer plusieurs types de clients, etc.

Des exemples de modèles : K-means, clustering hiérarchique.

Des prérequis :
Les modèles ne peuvent pas être appliqués directement.
En effet, les données ne sont pas directement exploitables.
Souvent, il s’agit de données provenant de la fusion de fichiers CSV, issues d’appels à des APIs web (format JSON ou XML), de crawling ou même de PDFs (sans oublier les données du Datawarehouse ou des formats propriétaires).
Question supplémentaire, comment fusionner ces différentes source en un DataFrame (en un nombre de lignes et de colonnes) ?
Ensuite, il faut gérer les valeurs manquantes ou mal remplies.
Si les données sont « propres », le feature engineering peut commencer.
Les modèles testés seront d’autant meilleurs que des features (nouvelles colonnes) intéressantes auront été créées.
Comment créer de nouvelles features ? C’est là que commence le travail exploratoire.
Il faut comprendre les données, acquérir une connaissance métier sur les données que l’on veut exploiter. On peut, pendant l’exploration, d’ajouter des features temporelles (combien de temps depuis la récolte ?) ou spatiales (une région particulière ? distance ?) par exemple.

@ Bientôt sur DataSciencePost