@@ -118,3 +118,94 @@ Excel avec un graphe automatiquement depuis Python.
118
118
* :ref: `l-example-serialization `
119
119
* :ref: `l-example-plot-groupby `
120
120
* :ref: `Manipulation de données avec pandas <nbl-c_data-nb_pandas >`
121
+
122
+ Journée 3 (3/3)
123
+ ===============
124
+
125
+ **Partie 1 **
126
+
127
+ * retour sur la syntaxe du langage python, boucle, test, fonctions et classes,
128
+ * exercice : :ref: `Tracer une pyramide bigarrée <nbl-practice-tds-base-pyramide_bigarree >`
129
+ * :ref: `exceptions `
130
+ * :ref: `l-regex `, :ref: `Expressions régulières <nbl-practice-py-base-exercice_regex >`
131
+ * :mod: `pickle `, fichiers pickle (voir :ref: `chap_serialization `)
132
+ * récupération des fichiers préparés pour la formation avec pandas
133
+ * utilisation de :epkg: `skrub ` pour avoir un premier aperçu ou
134
+ :epkg: `pandas-profiling `, (voir aussi :epkg: `orange3 `)
135
+ * première jointure
136
+
137
+ **Partie 2 **
138
+
139
+ * gestion des dates
140
+ * rappel pandas: group by, jointure, inner, outer, left, right, pivot
141
+ * une fois la base complète obtenue, analyse de nouveau
142
+ * API `REST <https://en.wikipedia.org/wiki/REST >`_, exemple avec l'API de la
143
+ `Banque de France <https://webstat.banque-france.fr/fr/pages/guide-migration-api/ >`_
144
+ et le module `requests <https://requests.readthedocs.io/en/latest/ >`_
145
+
146
+ **Questions sur les données une fois la jointure effectuée **
147
+
148
+ * A-t-on associé tous les sinistres ?
149
+ * Calculer la durée entre la date d'un sinistre et le premier jour couvert par l'assurance.
150
+ Tracer sa distribution. Que remarque-t-on ?
151
+ * Peut-on garder tous les sinistres associés ? (il faut regarder la période couverte)
152
+ * On calcule le nombre de sinistres par individu, puis on fait la moyenne
153
+ par année. Est-ce que la proportion paraît constante ?
154
+ * On fait de même pour différentes catégories de la base ?
155
+ * Comment illustrer rapidement cela avec un graphique ?
156
+ * Comment faire des statistiques sur une année ?
157
+ Comment faire avec des assurances à cheval sur deux années ?
158
+
159
+ Journée 4 (4/3)
160
+ ===============
161
+
162
+ **Partie 1 **
163
+
164
+ * retour sur les graphes :epkg: `matplotlib `, :epkg: `seaborn `, :epkg: `plotly `, :epkg: `skrub `
165
+ * cartographie, :epkg: `cartopy `, :epkg: `folium `
166
+ * corrélations, pairplots
167
+ * cubes de données avec pandas, passer un indice à droite (colonnes), à gauche (index),
168
+ :ref: `Cube de données et pandas <nbl-c_data-nb_pandas_cube >`
169
+ * reprise de quelques traitement de la veille en SQL :func: `pandas.read_sql `, :meth: `pandas.DataFrame.to_sql `
170
+ * mêmes opérations avec :epkg: `SQLite `, :mod: `sqlite3 `
171
+ * gestion des doublons avec :meth: `pandas.DataFrame.duplicated `
172
+ * identification des valeurs aberrantes, voir :meth: `pandas.DataFrame.quantile `
173
+ * :ref: `Tests unitaires <nbl-practice-py-base-tests_unitaires >`
174
+ * On reprend le code écrit jusqu'à présent. On veut écrire une fonction qui
175
+ effectue la jointure et extrait toutes les lignes aberrantes ou manquantes.
176
+ * Ecrire un test unitaire qui valide cette fonction.
177
+ Peut-on utiliser les données qu'on manipule depuis
178
+ le début de la séance ?
179
+
180
+ **Partie 2 **
181
+
182
+ * notion d'itérateur en python
183
+ * application à :func: `pandas.read_csv ` version itérateur pour manipuler des gros dataframes
184
+ * utilisation de sqlite3 (extension sqlite3 vscode)
185
+ * découpage d'une base en deux, apprentissage, respecter le temps et les identifiants
186
+ * calcul du prix d'un contrat d'assurance pour un an en fonction de
187
+ variables choisies en fonction des données connues
188
+ * Obtient-on le même prix sur les deux bases ?
189
+ * Ecrire le test unitaire validant la fonction qui calcule le prix.
190
+ * Notion de package.
191
+
192
+ Journée 5 (5/3)
193
+ ===============
194
+
195
+ * introduction de :epkg: `scikit-learn `
196
+ * valeurs manquantes, remplacement simple (moyenne),
197
+ corrélations (:class: `sklearn.impute.KNNImputer `), prédictions
198
+ (:class: `sklearn.impute.IterativeImputer `),
199
+ (voir `sklearn.impute <https://scikit-learn.org/stable/api/sklearn.impute.html >`_)
200
+ * premières impressions
201
+ * exemples classique pour traiter, enrichir un jeux de données :
202
+ `skrub tutorial <https://skrub-data.org/stable/auto_examples/00_getting_started.html >`_,
203
+ voir aussi
204
+ `AggJoiner on a credit fraud dataset <https://skrub-data.org/stable/auto_examples/08_join_aggregation.html >`_
205
+ * :class: `sklearn.pipeline.Pipeline `, :class: `sklearn.compose.ColumnTransformer `,
206
+ :class: `sklearn.pipeline.FeatureUnion `
207
+ * Dates, Catégories : :epkg: `category_encoders `, :epkg: `skrub `,
208
+ :ref: `Prétraitement des catégories <nbl-practice-ml-pretraitement_cat >`
209
+ * Son : :epkg: `librosa `, voir :ref: `Prétraitement du son <nbl-practice-ml-pretraitement_son >`
210
+ * Image : :epkg: `scikit-image `, voir :ref: `Prétraitement d'une image <nbl-practice-ml-pretraitement_image >`
211
+ * Texte : :ref: `Prétraitement du texte <nbl-practice-ml-pretraitement_texte >`
0 commit comments