Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
xadupre committed Mar 2, 2025
1 parent f9860e6 commit 6721a1b
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 19 deletions.
70 changes: 51 additions & 19 deletions _doc/articles/2025/2025-04-01-route2025.rst
Original file line number Diff line number Diff line change
Expand Up @@ -125,49 +125,81 @@ Journée 3 (3/3)
**Partie 1**

* retour sur la syntaxe du langage python, boucle, test, fonctions et classes,
:ref:`Tracer une pyramide bigarrée <nbl-practice-tds-base-pyramide_bigarree>`
* exceptions
* exercice : :ref:`Tracer une pyramide bigarrée <nbl-practice-tds-base-pyramide_bigarree>`
* :ref:`exceptions`
* :ref:`l-regex`, :ref:`Expressions régulières <nbl-practice-py-base-exercice_regex>`
* :mod:`pickle`, fichiers pickle (voir :ref:`chap_serialization`)
* :ref:`Tests unitaires <nbl-practice-py-base-tests_unitaires>`
* récupération des fichiers préparés pour la formation avec pandas
* utilisation de `:epkg:`skrub` pour avoir un premier aperçu ou
:epkg:`pandas-profiling`, :epkg:`orange3`
* utilisation de :epkg:`skrub` pour avoir un premier aperçu ou
:epkg:`pandas-profiling`, (voir aussi :epkg:`orange3`)
* première jointure

**Partie 2**

* gestion des dates
* rappel pandas: group by, jointure, inner, outer, left, right, pivot
* gestion des doublons avec :meth:`pandas.DataFrame.duplicated`
* une fois la base complète obtenue, analyse de nouveau
* mêmes opérations en SQL, :func:`pandas.read_sql`, :meth:`pandas.DataFrame.to_sql`
* identification des valeurs aberrantes, voir :meth:`pandas.DataFrame.quantile`
* valeurs manquantes, remplacement simple (moyenne),
corrélations (:class:`sklearn.impute.KNNImputer`), prédictions
* premières impressions

**Questions sur les données une fois la jointure effectuée**

* As-t-on associé tous les sinistres ?
* Calculer la durée entre la date d'un sinistre et le premier jour couvert par l'assurance.
Tracer sa distribution. Que remarque-t-on ?
* Peut-on garder tous les sinistres associés ? (il faut regarder la période couverte)
* On calcule le nombre de sinistres par individu, puis on fait la moyenne
par année. Est-ce que la proportion paraît constante ?
* On fait de même pour différentes catégories de la base ?
* Comment illustrer rapidement cela avec un graphique ?
* Comment faire des statistiques sur une année ?
Comment faire avec des assurances à cheval sur deux années ?

Journée 4 (4/3)
===============

**Partie 1**

* retour sur les graphes matplotlib, seaborn, plotly, :epkg:`skrub`
* cartographie, cartopy, folium encore
* retour sur les graphes :epkg:`matplotlib`, :epkg:`seaborn`, :epkg:`plotly`, :epkg:`skrub`
* cartographie, :epkg:`cartopy`, :epkg:`folium`
* corrélations, pairplots
* gestion des dates
* cubes de données avec pandas, passer un indice à droite, à gauche
* on reprend chaque colonne
* cubes de données avec pandas, passer un indice à droite (colonnes), à gauche (index)
* reprise de quelques traitement de la veille en SQL :func:`pandas.read_sql`, :meth:`pandas.DataFrame.to_sql`
* mêmes opérations avec :epkg:`SQLite`, :mod:`sqlite3`
* gestion des doublons avec :meth:`pandas.DataFrame.duplicated`
* identification des valeurs aberrantes, voir :meth:`pandas.DataFrame.quantile`
* :ref:`Tests unitaires <nbl-practice-py-base-tests_unitaires>`
* On reprend le code écrit jusqu'à présent. On veut écrire une fonction qui
effectue la jointure et extrait toutes les lignes aberrantes ou manquantes.
* Ecrire un test unitaire qui valide cette fonction.
Peut-on utiliser les données qu'on manipule depuis
le début de la séance ?

**Partie 2**

* notion d'itérateur en python
* application à pandas read_csv version itérateur pour manipuler des gros dataframes
* application à :func:`pandas.read_csv` version itérateur pour manipuler des gros dataframes
* utilisation de sqlite3 (extension sqlite3 vscode)
* découpage d'une base en deux, apprentissage, respecter le temps et les identifiants
* calcul du prix d'un contrat d'assurance pour un an en fonction de
variables choisies
variables choisies en fonction des données connues
* Obtient-on le même prix sur les deux bases ?
* Ecrire le test unitaire validant la fonction qui calcule le prix.
* Notion de package.

**Prétraitements simples**
Journée 5 (5/3)
===============

* introduction de :epkg:`scikit-learn`
* valeurs manquantes, remplacement simple (moyenne),
corrélations (:class:`sklearn.impute.KNNImputer`), prédictions
(:class:`sklearn.impute.IterativeImputer`),
(voir `sklearn.impute <https://scikit-learn.org/stable/api/sklearn.impute.html>`_)
* premières impressions
* exemples classique pour traiter, enrichir un jeux de données :
`skrub tutorial <https://skrub-data.org/stable/auto_examples/00_getting_started.html>`_,
voir aussi
`AggJoiner on a credit fraud dataset <https://skrub-data.org/stable/auto_examples/08_join_aggregation.html>`_
* :class:`sklearn.pipeline.Pipeline`, :class:`sklearn.compose.ColumnTransformer`,
:class:`sklearn.pipeline.FeatureUnion`
* Dates, Catégories : :epkg:`category_encoders`, :epkg:`skrub`,
:ref:`Prétraitement des catégories <nbl-practice-ml-pretraitement_cat>`
* Son : :epkg:`librosa`, voir :ref:`Prétraitement du son <nbl-practice-ml-pretraitement_son>`
Expand Down
3 changes: 3 additions & 0 deletions _doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@
"encoding": "https://fr.wikipedia.org/wiki/Codage_des_caract%C3%A8res",
"eval": "https://docs.python.org/3/library/functions.html?highlight=id#eval",
"Excel": "https://fr.wikipedia.org/wiki/Microsoft_Excel",
"folium": "https://python-visualization.github.io/folium/latest/",
"format": "https://pyformat.info/",
"format style": "https://pyformat.info/",
"garbage collector": "https://fr.wikipedia.org/wiki/Ramasse-miettes_(informatique)",
Expand Down Expand Up @@ -266,6 +267,7 @@
"Pillow": "https://pillow.readthedocs.io/en/stable/",
"pip": "https://pip.pypa.io/en/stable/",
"pipeline": "https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html",
"plotly": "https://plotly.com/python/",
"Predictable t-SNE": "https://sdpython.github.io/doc/mlinsights/dev/auto_examples/plot_predictable_tsne.html",
"printf-style String Formatting": "https://docs.python.org/3/library/stdtypes.html#old-string-formatting",
"programmation impérative": "https://fr.wikipedia.org/wiki/Programmation_imp%C3%A9rative",
Expand Down Expand Up @@ -293,6 +295,7 @@
"sklearn": "https://scikit-learn.org/stable/index.html",
"sklearn-onnx": "https://onnx.ai/sklearn-onnx/",
"skrub": "https://skrub-data.org/stable/",
"SQLite": "https://www.sqlite.org/",
"statsmodels": "http://www.statsmodels.org/stable/index.html",
"SVD": "https://fr.wikipedia.org/wiki/D%C3%A9composition_en_valeurs_singuli%C3%A8res",
"sys.modules": "https://docs.python.org/3/library/sys.html?highlight=modules#sys.modules",
Expand Down

0 comments on commit 6721a1b

Please sign in to comment.