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