.. _l-projinfo2a-plot: 2A - Partager un graphe via un module python ============================================ L'objectif de ce projet est de construire un module python pour partager soit une fonction qui représente des données avec :epkg:`matplotlib`, soit un nouveau modèle de machine learning qui suit l'API de :epkg:`scikit-learn`. .. contents:: :local: Ce projet doit être rendu le jour du dernier TD. Il doit être effectué par groupe de 3 à 5 personnes. **Rendu** Le projet doit être rendu sous la forme d'un fichier zip avec les sources accompagnées d'un exemple sous la forme d'un notebook. La documentation n'est pas indispensable. Le projet minimal doit ressembler à ce qui suit : :: zip +-- votre_module | +-- __init__.py | +-- fichier.py +-- tests | +-- test_strategy.py +-- setup.py | +-- example.ipynb Graphes +++++++ Il faut imaginer un graphe qui permet de comprendre l'évolution temporelle d'une valeur numérique entre deux années. :: def plot_geo_time_value(x, y, name, value, hue, year, ax=None, **kwargs): """ Visualise l'évolution temporelle d'une donnée numérique géolocalisée. :param x: longitudes (vecteur) :param y: latitudes (vecteur) :param name: nom des lieux (vecteur) :param value: valeur numérique à représenter (vecteur) :param hue: sens de la valeur numérique (:math:`CO_2`, Ammoniac, ...) :param year: année (vecteur) :param ax: axes :param kwargs: paramètres additionnels """ Le module peut implémenter plusieurs fonctions pour plusieurs graphes. C'est à vous de définir ce que vous souhaitez représenter. On peut choisir de représenter des pourcentages plutôt que des valeurs absolues, ce peut être un graphe sur des données agrégées plutôt qu'une carte. Les fonctions seront testées sur les deux jeux de données ci-dessous. Vous trouvez un exemple qui crée un module python pour une fonction qui crée un graphe avec :epkg:`matplotlib` sur *github* : `td2a_plotting `_. La documentation peut être compilée avec :epkg:`sphinx` et donne quelque chose comme ceci : `td2a_plotting: simple plotting module `_. Modèle de machine learning ++++++++++++++++++++++++++ Il s'agit d'implémenter un modèle de machine learning suivant l'API de :epkg:`scikit-learn` et de le partager sous la forme d'un module. Voici un exemple qui implémente la régression quantile : `QuantileLinearRegression `_ (`documentation de QuantileLinearRegression `_), et un exemple d'utilisation dans un `notebook sur la régression quantile `_. Le même exemple sur github `td2a_plotting `_ pourra être utilisé pour réaliser le module. Le modèle n'est pas nécessairement un nouveau modèle mais aussi un assemblage de modèles existants. Quelques exemples : `ClassifierAfterKMeans `_, `IntervalRegressor `_, `PiecewiseRegressor `_... Données suggérées +++++++++++++++++ **Jeu 1 :** projets vers financés par l'`ADEME `_ * `Deal flow des projets verts : projets notifiés et financés en 2018 `_ * `Deal flow des projets verts - Projets financés en 2019 et investissements envisagés en 2019 `_ Le notebook :ref:`dealflowespacevertrst` effectue les premiers pas avec de jeu de données. **Jeu 2 :** données sur les émissions polluantes * `Données sur les émissions polluantes (IREP) `_ (`lien pour les fichiers zippés `_) Ces données sont produites par le `BRGM `_. Le même lien permet de télécharger les données de plusieurs années. Ce lien est aussi accessible via `Registre Français des émissions polluantes `_. Les fichiers ZIP incluent plusieurs fichiers dont : ``emissions.csv`` :: Identifiant,Nom_Etablissement,Annee_Emission,Milieu,Polluant,quantite,unite 033.00469,"Solvay Operations France, tavaux",2017,Air,Composés organiques volatils non méthaniques (COVNM),45500,kg/an 033.00469,"Solvay Operations France, tavaux",2017,Air,Hydrochlorofluorocarbures (HCFC),3640,kg/an 033.00469,"Solvay Operations France, tavaux",2017,Air,Hydroflurocarbures (HFC),3910,kg/an 033.00469,"Solvay Operations France, tavaux",2017,Air,Oxydes de soufre (SOx/SO2),173000,kg/an ... ``Prelevements.csv`` :: Identifiant,Nom_Etablissement,Numero_SIRET,Adresse,Code_Postal,Commune,Departement,Region,Coordonnees_X,Coordonnees_Y,Code_APE,Libelle_APE,code_eprtr,libelle_eprtr 068.11539,Carrières BERNADETS - ISDI,54608016900115,,31420,AURIGNAC,HAUTE-GARONNE,OCCITANIE,481659,1802490,0812Z,"Exploitation de gravières et sablières, extraction d'argiles et de kaolin",, 061.10406,REVAGA,51058711600037,,69390,MILLERY,RHONE,AUVERGNE-RHONE-ALPES,790678,2073093,3811Z,Collecte des déchets non dangereux,, 124.00155,SATE,42976802100025,,90150,FONTAINE,TERRITOIRE-DE-BELFORT,BOURGOGNE-FRANCHE-COMTE,949818,2305514,2751Z,Fabrication d'appareils électroménagers,, ... Le notebook :ref:`dataireprst` effectue les premiers pas avec ce jeu de données, le notebook suivant, plus complet, a été préparé par Gabriel Romon : `Données de l'IREP et Devoir `_.