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 matplotlib, soit un nouveau modèle de machine learning qui suit l’API de scikit-learn.

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 matplotlib sur github : td2a_plotting. La documentation peut être compilée avec 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 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

Le notebook Deal flow espaces verts 2018 - 2019 effectue les premiers pas avec de jeu de données.

Jeu 2 : données sur les émissions polluantes

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 IREP: registre des émissions polluantes 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.