Skip to content

Commit 8889034

Browse files
committed
Sur la récupération de données
1 parent 618c24a commit 8889034

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

content/annexes/evaluation.qmd

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: "Evaluation"
2+
title: "Évaluation"
33
description: |
4-
Résumé des attentes pour les projets de fin d'année
4+
Attentes pour les projets de fin d'année et exemples issus des projets passés
55
image: https://minio.lab.sspcloud.fr/lgaliana/generative-art/pythonds/kid.png
66
listing:
77
id: sample-listings
@@ -21,7 +21,7 @@ listing:
2121
- De la modélisation.
2222
* Les étudiants sont invités à proposer des sujets qui leur plaisent, à faire valider par le chargé de TD.
2323
* __Le projet doit utiliser `Git` et être disponible sous
24-
[`Github`](https://github.com/) <a href="https://github.com" class="github"><i class="fab fa-github"></i></a>__ (dépôt public ou dépôt privé à partager avec le chargé de TD) ;
24+
[`Github`](https://github.com/) {{< fa brands github >}}__ (dépôt public ou dépôt privé à partager avec le chargé de TD) ;
2525
* Le projet doit être __reproductible__ sous peine de sanction forte. Cela implique des morceaux de code reproductibles, une description des dépendances et des explications si nécessaire sur la récupération des données ;
2626
* La __date du rendu__ est fixée au : **29 décembre 2024 23h59**
2727
* Le **10 janvier 2025**, auront lieu des __soutenances__
@@ -45,6 +45,21 @@ Ces données peuvent être directement disponibles sous la forme de fichiers txt
4545

4646
Vous obtiendrez vraisemblablement des données qui ne sont pas « propres » du premier coup : mettez en place des protocoles de nettoyage pour obtenir à la fin de cette étape un ou des jeux de données fiable et robuste pour mener ensuite votre analyse. C’est également le moment de créer des variables plus appréhendables, mieux identifiées. N'oubliez pas de justifier les choix méthodologiques que vous avez pu faire car le chargé de TD ne connaît pas forcément la base de données en question.
4747

48+
::: {.important collapse=true}
49+
## Faire un code reproductible quand on fait du webscraping ou utilise des API est une gageure
50+
51+
Comme cela est expliqué dans le chapitre consacré au [_webscraping_](/content/manipulation/04_webscraping_TP.qmd), récupérer des données par ce biais est un moyen détourné peu fiable dans la durée car les sites évoluent continuellement ou mettent en oeuvre des solutions pour bloquer les robots aspirant leurs données. Vous n'êtes pas assuré que votre code qui fonctionne aujourd'hui pourra à nouveau tourner demain sans encombre. C'est un problème qui peut également être rencontré avec les API quoique ces dernières sont un moyen plus robuste d'accès aux données. Mais on n'est jamais à l'abri d'une mise à jour de celle-ci.
52+
53+
Une composante essentielle de l'évaluation des projets `Python` est la __reproductibilité__, i.e. la possibilité de retrouver les mêmes résultats à partir des mêmes données d'entrée et du même code. Dans la mesure du possible, il faut donc que votre rendu final parte des données brutes utilisées comme source dans votre projet. Si les fichiers de données source sont accessibles via une URL publique par exemple, il est idéal de les importer directement à partir de cette URL au début de votre projet (voir le [TP Pandas](/content/manipulation/02_pandas_suite.qmd) pour un exemple d'un tel import via `Pandas`).
54+
55+
Face à l'incertitude de ne pas retrouver demain les mêmes données qu'aujourd'hui, il est nécessaire de pouvoir stocker des données (ou des modèles). **Votre dépôt `Git` n'est pas le lieu adapté pour le stockage de fichiers volumineux**. Un projet `Python` bien construit est modulaire: il sépare le stockage du code (`Git`), d'éléments de configuration (par exemple des jetons d'API qui ne doivent pas être dans le code) et du stockage des données. Cette séparation conceptuelle entre code et données permet de meilleurs projets.
56+
57+
![](content/modern-ds/environment.png)
58+
59+
Là où `Git` est fait pour stocker du code, on utilise des solutions adaptées pour le stockage de fichiers. De nombreuses solutions existent pour ce faire. Sur le SSP Cloud, on propose `MinIO`, une implémentation open-source du stockage `S3`. Si vous êtes dans cette situation, vous pouvez consulter ce [guide pour partager vos données sur le sspcloud](https://pythonds.linogaliana.fr/content/modern-ds/s3.html#cas-pratique-stocker-les-donn%C3%A9es-de-son-projet-sur-le-ssp-cloud).
60+
61+
:::
62+
4863
## L’analyse descriptive et la représentation graphique
4964

5065
La présence de statistiques descriptives est indispensable dans le projet. De la description de la base aux premières grandes tendances des données, cette partie permet d’avoir une vision globale des données : le lien avec la problématique, comment elle permet d’y répondre, quels sont les premiers éléments de réponse… Chaque résultat doit être interprété : pas la peine de faire un `describe` et de ne pas le commenter.
@@ -125,7 +140,8 @@ Chaque étape (récupération et traitement des données, analyses descriptives,
125140
Le test à réaliser : faire tourner toutes les cellules de votre notebook et ne pas avoir d’erreur est une condition _sine qua non_ pour avoir la moyenne.
126141

127142

128-
# Projets menés par les étudiants 😍
129-
143+
# Projets passés faits par les étudiants 😍
130144

131145

146+
::: {#sample-listings}
147+
:::

content/modern-ds/s3.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1306,7 +1306,7 @@ Une composante essentielle de l'évaluation des projets `Python` est la __reprod
13061306

13071307
En pratique, cela n'est pas toujours possible. Peut-être que vos données ne sont pas directement publiquement accessibles, ou bien sont disponibles sous des formats complexes qui demandent des pré-traitements avant d'être exploitables dans un format de donnée standard. Peut-être que vos données résultent d'une phase de récupération automatisée via une [API](/content/manipulation/04c_API_TP.qmd) ou du [webscraping](/content/manipulation/04a_webscraping_TP.qmd), auquel cas l'étape de récupération peut prendre du temps à reproduire. Par ailleurs, les sites internet évoluent fréquemment dans le temps, il est donc préférable de "figer" les données une fois l'étape de récupération effectuée. De la même façon, même s'il ne s'agit pas de données source, vous pouvez vouloir entraîner des modèles et stocker leur version entraînée, car cette étape peut également être chronophage.
13081308

1309-
Dans toutes ces situations, il est nécessaire de pouvoir stocker des données (ou des modèles). **Votre dépôt `Git` n'est pas le lieu adapté pour le stockage de fichiers volumineux**. Un projet `Python` bien construit est modulaire: il sépare le stockage du code (`Git`), d'éléments de configuration (par exemple des jetons d'API qui ne doivent pas être dans le code) et du stockage des données. Ce principe
1309+
Dans toutes ces situations, il est nécessaire de pouvoir stocker des données (ou des modèles). **Votre dépôt `Git` n'est pas le lieu adapté pour le stockage de fichiers volumineux**. Un projet `Python` bien construit est modulaire: il sépare le stockage du code (`Git`), d'éléments de configuration (par exemple des jetons d'API qui ne doivent pas être dans le code) et du stockage des données. Cette séparation conceptuelle entre code et données permet de meilleurs projets.
13101310

13111311
![](environment.png)
13121312

0 commit comments

Comments
 (0)