# Gestion de projets _data_ ### Étapes d'un projet _data_ > Glenn Y. Rolland > --- ## Vue d'ensemble ### Plusieurs méthodes spécifiques mais peu de maturité * Méthode CRISP (anciennement CRISP-DM) * développée par IBM dans les années 60 * pour des projets de DataMining * s'applique efficacement à la data-science * Egalement des façons de faire plus récentes (trop?) * Certains points fluctuent selon les méthodes --- ## Vue d'ensemble ### Méthode CRISP 1. Formaliser questions business 2. Collecte des données 3. Construction du Data Hub 4. Modélisation (et analyse) des données 5. Évaluation 6. Déploiement et industrialisation ---- ![bg right](images/bg_business_question.jpg) ## Étape 1 -
Formaliser les questions business ---- ## Étape 1 - Formaliser les questions business ### Objectifs * Périmétrer le projet * quels services ? * quels enjeux opérationnels ? * quels référentiels et réglementations à respecter ? * quel environnement ? * Formaliser * les objectifs * les lignes rouges à ne pas franchir --- ## Étape 1 - Formaliser les questions business ### Comment ? (1/2) * Définir les problématiques à résoudre parmi cinq types de questions : * Quelle quantité ? (régression) * Est-ce A ou B (ou C, D, E... ) ? (classification) * Comment les données sont-elles organisées? (clustering) * Est-ce étrange ? (détection d’anomalie) * Que devons-nous faire ensuite ? (apprentissage par renforcement) --- ## Étape 1 - Formaliser les questions business ### Comment ? (2/2) * Identifier les variables à prédire * Prévisions de ventes (régression) * Profil client (clustering) * « Qu’est-ce qui attire le plus les clients : un coupon de 5 € ou une remise de 25 % ? » (classification) --- ![bg right](images/bg_data_collection.jpg) ## Étape 2 -
Collecte des données --- ## Étape 2 - Collecte des données ### Objectif * Identifier les données utiles * Rendre leur accès possible * Les données sont rarement au même endroit * Identifier les sources où obtenir ces données * Savoir y accéder  
:warning: La collecte de données est consommatrice de temps et d’énergie --- ## Étape 2 - Collecte des données ### Cas idéal : bases de données existantes * Une partie des données sont regroupée dans une ou plusieurs bases de données (BDD) : * Il faut trouver les BDD dans son entreprise (ou chez les fournisseurs) * Les BDD sont accessibles, documentées et les données structurées (ex: data warehouse, BDD relationnelle). * Il faut récupérer des données peu structurées via des requêtes (requêtes SQL, etc.) --- ## Étape 2 - Collecte des données ### Cas fréquent : pas de base de données * Il faut extraire les données depuis d'autre supports * Reconnaissance de texte automatisée (_Optical Character Recognition_ ou _OCR_) * Recopie depuis des formulaires papier (_data entry_) * Extraction de données depuis des sites web (_web scraping_) * Extraction de données depuis des services web (_API REST_, _XML RPC_) ---- ## Étape 2 - Collecte des données ### Cas du _web scraping_ (1/2) * Il s'agit d'écrire un programme pour * télécharger une page d'un site web * la découper pour extraire les données, * les structurer et l'exporter au format souhaité * Méthode rarement utilisables en production * s’apparente à voler des données sur un site… * … sauf autorisation explicite contraire ! ---- ## Étape 2 - Collecte des données ### Cas du _web scraping_ (2/2) * Méthode chronophage et difficile : * À faire au cas, car tous les sites sont différents :cry: * Certaines parties des sites sont dynamiques :scream: * Les sites web évoluent et leur structure peut changer du jour au lendemain :sob: ---- ## Étape 2 - Collecte des données ### Cas des API (Application Programming Interface) * Fournies par des tiers (organisations, développeurs, etc.) * Implémentées par les développeurs dans un programme sur mesure * Permettent d'effectuer des actions sur un système extérieur * ex: [OpenWeatherMap API](https://openweathermap.org/api) * ex: [Covid-19 API](https://covid2019-api.herokuapp.com/) * ex: [SNCF API](https://www.digital.sncf.com/startup/api) :warning: Le nombre d'accès peut être limité dans le temps (ex: 100 connexions / heure) :blue_book: Le site [Programme Web](https://www.programmableweb.com/) référence les API publiques depuis 2005 --- ## Étape 3 -
Construction du
Data Hub ![bg right](images/bg_data_hub.jpg) --- ## Étape 3 - Construction du Data Hub ### Objectifs * Nettoyer les données * Mettre en forme les données * Rendre utilisable par les algorithmes qui seront choisis ### Enjeux * Éviter des erreurs dans les hypothèses * Limiter les biais dans les modèles prédictifs --- ## Étape 3 - Construction du Data Hub ### Contraintes * Phase la plus chronophage du projet * 50 à 80% du temps * Volumétrie des données (To, Po et +) * Aller-retours en data scientists et les équipes métiers * Des formats de données différents à convertir * CSV, JSON, XML, SQL, etc. --- ## Étape 3 - Construction du Data Hub ### Risque : données erronées * Erreurs de saisie * Incompatibilités entre la source de données et la base ### Risque : données incomplètes * ex: Les utilisateurs ne renseignent que les champs obligatoires * ex: Les utilisateurs ne renseignent que ceux qui les concernent dans leur activité (les autres données passent à la trappe) --- ## Étape 3 - Construction du Data Hub ### Risque : données non normées * Plusieurs utilisateurs renseignent une donnée identique sous des formats différents * ex: un individu de sexe masculin sera renseigné M., Mr ou Monsieur ⇒ Conséquence : impossible de comparer les données --- ## Étape 3 - Construction du Data Hub ### Risque : les doublons * Un donnée se retrouve plusieurs fois dans la base * Laquelle est la plus à jour ? * Laquelle est la source ? * Comment fusionner les données ? ⇒ Conséquence : sur-représentation d'une information --- ## Étape 3 - Construction du Data Hub ### Risque : les données obsolètes * ex: Une entreprise a fermé, a déménagé * ex: Un client s'est inscrit il y a 10 ans, mais n'a jamais utilisé le site depuis * ex: Mme X a remplacé Mr Y ⇒ Conséquence : la qualité et la pertinence de la base se détériore --- ## Étape 3 - Construction du Data Hub ### Outils * Pandas (Python) * Dplyr/Data.table (R) * SQL --- ## Étape 4 - Modélisation et analyse des données ![bg right](images/bg_data_analysis.jpg) --- ## Étape 4 - Modélisation et analyse des données ### Formulation des hypothèses - Objectifs * Établir des liens de corrélation entre les données * Croiser les différentes natures de données * Dégager des tendances Exemple : estimation d’un prix de vente d’un bien immobilier * jeu de données : localisation, superficie, rendement locatif, age et qualité de la construction, équipements * hypothèses: relation entre prix de vente (m$^2$) et localisation --- ## Étape 4 - Modélisation et analyse des données ### Formulation des hypothèses - Outils * Graphiques * Diagrammes de dispersion * Courbes de distributions * Histogrammes * Power BI * Qlickview * Jupyter Notebooks --- ## Étape 4 - Modélisation et analyse des données ### Formulation des hypothèses - Contraintes * Se fait en itérations avec l'étape de nettoyage * En fouillant les hypothèses on trouve des incohérences et vice versa --- ## Étape 4 - Modélisation et analyse des données ### Déterminations des variables synthétiques * Sélection des variables pertinentes (Feature selection) * Sélectionner les variables qui expliquent/ impactent le problème à résoudre * Retirer du jeu de données les variables à faibles intérêts sont * Modèle simple * Intuitif et compréhensible * Réduction de la phase d’apprentissage des modèles * Réduction de la dimensionnalité * Modèle complexe * Analyse fine et précise de la problématique donnée --- ## Étape 4 - Modélisation et analyse des données ### Déterminations des variables synthétiques * Transformation des variables (Feature construction) * créer de nouvelles variables à partir des variables brutes du jeu de données * Cette méthode s’applique très souvent aux variables continues (le nombre de possibilités est infini) * lorsque les experts métiers préconisent que le problème à prédire dépend d’une valeur seuil Exemple : pour une variable "age" * le data scientist pourrait fixer un seuil à 18 ans et ainsi créer deux nouvelles variables ("majeur" ou "mineur") --- ## Étape 4 - Modélisation et analyse des données ### Construction du modèle * Cette étape correspond à la phase de _machine learning_ à proprement parler * Choisir les différents modèles de machine learning * Permettre de modéliser au mieux la variable cible à expliquer (problématique métier) --- ## Étape 4 - Modélisation et analyse des données ### Modèle GLM (linéaire généralisé) * Logit en classification + régression linéaire * Simple * Interprétable * Souvent de bons proxys dans des cas simples --- ## Étape 4 - Modélisation et analyse des données ### Modèle Random Forest et Boosted Trees (xgboost, lightgbm) * Non paramétriques * S’adaptent très bien aux données « spontanément » * Des performances nettement meilleures que les modèles GLM dans la grande majorité des cas * Plus difficiles à calibrer (tuning d’hyper paramètres) * Moins stables dans le temps et moins interprétables * Peut représenter un frein à leur mise en production --- ## Étape 4 - Modélisation et analyse des données ### Modèle _Deep Learning_ * Spécifiquement adaptés lorsque les données sont du texte ou des images * Performent bien mieux que les méthodes citées précédemment --- ## Étape 4 - Modélisation et analyse des données ### Autres modèles ? * De nombreux autres modèles existent (SVM, Naïve Bayes) * Parfois plus performants dans des cas spécifiques * Assez peu utilisés --- ## Étape 4 - Modélisation et analyse des données ### Validation du modèle ? * Diviser le jeu de données retraité en plusieurs parties * 70% pour la conception + 30% pour le test * 50% pour la conception + 30% pour le test + 20% pour la validation * La division se fait aléatoirement * Attention à ce que les différentes "classes" de données soient équitablement réparties --- ## Étape 4 - Modélisation et analyse des données ### Présentation & communication * Restituer ses travaux de manière claire, pédagogue et dynamique * Tirer rapidement des informations * Représentations graphiques pertinentes et dynamiques (vs des données statistiques chiffrées) --- ## 5. Évaluation ![bg right](images/bg_data_evaluation.jpg) --- ## 5. Évaluation ### Enjeux * Vérifier que l'analyse répond bien aux questions posées * Robustesse ? * Précision * Évaluer le retour sur investissement de la démarche data * Décide du déploiement du modèle ou de son amélioration --- ## Étape 6 -
Déploiement et industrialisation ![bg right](images/bg_production_1.jpg) --- ## Étape 6 - Déploiement et industrialisation ### Objectifs * Mise en production * Génération d'un rapport * Mise en place d'une application * L'intégrer au processus de décision --- ## Étape 6 - Déploiement et industrialisation ### De nouvelles questions * Comment mettre à jour un modèle apprenant ? * Comment vérifier son bon fonctionnement ? --- ## Merci pour votre attention !