Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@
"\n",
"### Prérequis\n",
"- Avoir complété le Lab 4 (nettoyage de données avec Pandas)\n",
"- Fichier `transactions.csv` généré dans le Lab 4\n",
"- Fichier `transactions.csv` fourni avec le Lab 4 (section « Données fournies » de son README)\n",
"- Notions de base en statistiques\n",
"\n",
"### Durée estimée : 40-50 minutes\n",
"\n",
"***"
"***\n"
]
},
{
Expand Down Expand Up @@ -671,7 +671,7 @@
"source": [
"### Exercice 1 : Prix moyen par catégorie et classification binaire\n",
"\n",
"À vous de pratiquer la visualisation et la classification binaire. La cellule ci-dessous contient les deux volets de l'exercice — complétez-la.\n"
"À vous de pratiquer la visualisation et la classification binaire. La cellule ci-dessous contient les deux volets de cet exercice — complétez-les. Ses deux blocs sont étiquetés `Exercice 1` (prix moyen par catégorie) et `Exercice 2` (classification binaire) **à l'intérieur du stub** : ce sont deux volets d'un même exercice, et l'Exercice 4 plus bas s'appuie sur le second.\n"
]
},
{
Expand Down Expand Up @@ -752,8 +752,8 @@
"\n",
"**Indices** :\n",
"- Utilisez `sns.histplot()` avec le paramètre `bins` pour l'histogramme\n",
"- Utilisez `sns.boxplot()` avec `x='catégorie'` et `y='prix_unitaire'` pour le boxplot\n",
"- Utilisez `plt.subplots(1, 2, figsize=(14, 5))` pour afficher les deux graphiques côte à côte"
"- Utilisez `sns.boxplot()` avec `x='categorie'` et `y='prix_unitaire'` pour le boxplot — la colonne du jeu s'écrit **sans accent** (`categorie`), la version accentuée lève un `KeyError`\n",
"- Utilisez `plt.subplots(1, 2, figsize=(14, 5))` pour afficher les deux graphiques côte à côte\n"
]
},
{
Expand Down Expand Up @@ -902,7 +902,7 @@
"source": [
"### Exercice 4 : Courbe ROC et évaluation visuelle du modèle\n",
"\n",
"L'accuracy et la matrice de confusion donnent une vision globale, mais la courbe ROC (Receiver Operating Characteristic) permet de visualiser le compromis entre le taux de vrais positifs et le taux de faux positifs à différents seuils de décision. Vous allez tracer la courbe ROC pour la classification binaire construite à l'Exercice 1 (teneur en alcool élevée vs. basse).\n",
"L'accuracy et la matrice de confusion donnent une vision globale, mais la courbe ROC (Receiver Operating Characteristic) permet de visualiser le compromis entre le taux de vrais positifs et le taux de faux positifs à différents seuils de décision. Vous allez tracer la courbe ROC pour la classification binaire construite au **second volet de l'Exercice 1** — le bloc étiqueté `Exercice 2` dans le stub (teneur en alcool élevée vs. basse).\n",
"\n",
"**Objectif** : construire une cible binaire (`alcool_eleve` = 1 si la teneur en alcool dépasse la médiane du jeu), entraîner un `LogisticRegression`, puis tracer la courbe ROC avec `sklearn.metrics.roc_curve`.\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,9 +310,9 @@
"tags": []
},
"source": [
"Voici la fonction clé : `create_pandas_dataframe_agent`. C'est un \"constructeur d'agent\" spécialisé. Au lieu de lui donner nos propres outils manuellement, cette fonction va analyser le DataFrame et fournir à l'agent une boîte à outils (`PythonREPLTool`) lui permettant d'écrire et d'exécuter du code Python (et donc Pandas) pour répondre à des questions.\n",
"Voici la fonction clé : `create_pandas_dataframe_agent`. C'est un \"constructeur d'agent\" spécialisé. Au lieu de lui donner nos propres outils manuellement, cette fonction va analyser le DataFrame et fournir à l'agent une boîte à outils (`PythonAstREPLTool`) lui permettant d'écrire et d'exécuter du code Python (et donc Pandas) pour répondre à des questions. Son nom d'outil apparaît en `python_repl_ast` dans les traces d'exécution plus bas.\n",
"\n",
"> **Référence — CodeAct.** Le mécanisme au cœur de cet agent — un LLM qui *écrit puis exécute lui-même du code* (ici via `PythonREPLTool`) pour agir et observer le résultat — est le paradigme **CodeAct** (*executable code actions*), formalisé par Wang et al. (2024) : utiliser du code exécutable comme espace d'action unifie raisonnement, appel d'outils et calcul dans une même boucle, plutôt que d'émettre des appels d'API figés. C'est précisément ce que fait l'agent pandas : il génère du code Pandas, l'exécute, lit la sortie, puis itère. Le paradigme ReAct (boucle Pensée→Action→Observation, Lab 6) sous-tend cette itération ; le prolongement data-science SOTA (DS-STAR) est au Lab 10."
"> **Référence — CodeAct.** Le mécanisme au cœur de cet agent — un LLM qui *écrit puis exécute lui-même du code* (ici via `PythonAstREPLTool`) pour agir et observer le résultat — est le paradigme **CodeAct** (*executable code actions*), formalisé par Wang et al. (2024) : utiliser du code exécutable comme espace d'action unifie raisonnement, appel d'outils et calcul dans une même boucle, plutôt que d'émettre des appels d'API figés. C'est précisément ce que fait l'agent pandas : il génère du code Pandas, l'exécute, lit la sortie, puis itère. Le paradigme ReAct (boucle Pensée→Action→Observation, Lab 6) sous-tend cette itération ; le prolongement data-science SOTA (DS-STAR) est au Lab 10.\n"
]
},
{
Expand Down Expand Up @@ -873,14 +873,14 @@
"source": [
"### Exercice 3 : Analyser un nouveau dataset avec l'agent\n",
"\n",
"Un analyste de données doit souvent travailler avec des sources de données nouvelles. Vous allez charger un dataset différent (les données des étudiants créées dans le notebook Pandas) et demander à l'agent de produire une analyse complète.\n",
"Un analyste de données doit souvent travailler avec des sources de données nouvelles. Vous allez construire un jeu de données différent de celui de la démonstration — un petit tableau d'étudiants créé dans l'exercice lui-même, sans dépendre d'un autre carnet — et demander à l'agent de produire une analyse complète.\n",
"\n",
"**Objectif** : Créer un nouveau DataFrame à partir de données synthétiques et configurer un agent pour l'analyser.\n",
"\n",
"**Indices** :\n",
"- Créez un DataFrame avec `pd.DataFrame()` contenant des données d'étudiants (Nom, Age, Note, Filière)\n",
"- Utilisez `create_pandas_dataframe_agent()` avec le nouveau DataFrame\n",
"- Demandez à l'agent de calculer la moyenne par filière, d'identifier les outliers et de produire un résumé"
"- Demandez à l'agent de calculer la moyenne par filière, d'identifier les outliers et de produire un résumé\n"
]
},
{
Expand Down Expand Up @@ -984,7 +984,7 @@
"1. X. Wang, Y. Chen, L. Yuan, et al., *Executable Code Actions Elicit Better LLM Agents* (CodeAct), ICML 2024, PMLR 235:50208-50232, arXiv:2402.01030. Paradigme de l'action-par-code-exécutable : un LLM écrit et exécute lui-même du code pour raisonner et agir — mécanisme central du `create_pandas_dataframe_agent` (Étape 2).\n",
"2. S. Yao et al., *ReAct: Synergizing Reasoning and Acting in Language Models*, ICLR 2023, arXiv:2210.03629. Boucle Pensée→Action→Observation sous-jacente à l'itération de l'agent — détaillée au Lab 6.\n",
"3. Google Research, *DS-STAR: A State-of-the-Art Versatile Data Science Agent*, 2025. Agent data-science SOTA — référence détaillée au Lab 10.\n",
"4. H. Chase, *LangChain*, 2022 ; `langchain_experimental`. Implémentation de `create_pandas_dataframe_agent` / `PythonREPLTool` — référence bibliographique détaillée au Lab 8.\n"
"4. H. Chase, *LangChain*, 2022 ; `langchain_experimental`. Implémentation de `create_pandas_dataframe_agent` / `PythonAstREPLTool` (nom d'outil `python_repl_ast`) — référence bibliographique détaillée au Lab 8.\n"
]
}
],
Expand Down
Loading