Python pour le data scientist
Des bases du langage au machine learning
3 édition
Emmanuel Jakobowicz
Dunod
Avant-propos
11
Les fondamentaux du langage Python
1 Python, ses origines et son environnement
17
1. Histoire, origines et évolution : de la naissance à la version 3.1217
1.1 Les origines et l'évolution du langage18
1.2 La rencontre entre Python et la data science18
1.3 L'évolution actuelle19
1.4 Le futur de Python20
2. Python vs R vs le reste du monde20
2.1 R21
2.2 Outils de traitement de flux23
2.3 SAS24
2.4 Les autres langages25
3. Comment développer en Python ?25
4. Les outils pour coder en Python28
4.1 Python et PyPi28
4.2 Anaconda29
4.3 IPython32
4.4 Visual Studio Code, Spyder et PyCharm33
4.5 Jupytèr notebooks35
4.6 JupyterLab40
5. Les packages pour la data science42
5.1 Les packages pour la gestion des données et le calcul numérique42
5.2 Les packages pour la visualisation des données43
5.3 Les packages pour le machine learning et le deep learning44
5.4 Les packages pour le big data44
5.5 Autres packages pour la data science45
2 Python from scratch
47
1. Principes de base47
1.1 Un langage interprété, de haut niveau et orienté objet47
1.2 Python 2 ou Python 348
2. Les interpréteurs : Python et IPython49
2.1 Linterpréteur Python - une calculatrice évoluée49
2.2 Linterpréteur IPython - une ouverture vers plus de possibilités50
3. La base pour commencer à coder54
3.1 Les principes54
3.2 Un langage tout objet56
3.3 Les commentaires56
3.4 Les conventions de nommage57
3.5 Les règles de codage57
3.6 Les opérateurs logiques58
4. Les structures (tuples, listes, dictionnaires).58
4.1 Les tuples59
4.2 Les listes59
4.3 Les chaînes de caractères - des listes de caractères61
4.4 Les dictionnaires63
5. La programmation (conditions, boucles...)63
5.1 Les conditions64
5.2 Les boucles 66
6. Les fonctions68
6.1 Généralités68
6.2 Les arguments d'une fonction69
6.3 Les docstrings70
6.4 Les retours multiples71
6.5 Les fonctions lambda72
7. Les classes et les objets72
7.1 Qu'est-ce qu'une classe ?73
7.2 Comment définir une classe ?73
7.3 Aller plus loin sur les classes74
8. Les packages et les modules74
8.1 Un peu de vocabulaire74
8.2 Installer un package75
8.3 Charger un package ou un module dans votre code75
8.4 Créer son propre module/package76
9. Aller plus loin77
9.1 La gestion des exceptions77
9.2 Les expressions régulières79
9.3 Les décorateurs80
La préparation et la visualisation des données avec Python
3 Python et les données (NumPy et Pandas]
85
1. La donnée à l'ère de la data science85
1.1 Le type de données86
1.2 Le travail de préparation des données87
2. Les arrays de NumPy87
2.1 Le ndarray de NumPy88
2.2 Construire un array88
2.3 Les types de données dans des arrays89
2.4 Les propriétés d'un array90
2.5 Accéder aux éléments d'un array90
2.6 La manipulation des arrays avec NumPy91
2.7 Copies et vues d'arrays98
2.8 Quelques opérations d'algèbre linéaire99
2.9 Les arrays structurés100
2.1. Exporter et importer des arrays101
3. Les objets sériés et dataframe de Pandas102
3.1 Les objets Sériés de Pandas.....102
3.2 Les objets DataFrame de Pandas105
3.3 Copie et vue des objets de Pandas110
4 La préparation des données et les premières statistiques
113
1. Présentation des données113
1.1 Les locations Airbnb à Paris114
1.2 Les données des employés de la ville de Boston114
1.3 Les données des communes d'île-de-France115
1.4 Les données sur les clients d'un opérateur de télécommunications116
1.5 Les SMS pour la classification de messages indésirables116
1.6 La base de données des vêtements Fashion-MNIST117
1.7 Les données de l'indice CAC40 depuis 1987118
2. Les outils pour charger les données118
2.1 Importer des données structurées118
2.2 Le traitement des données externes (csv, SQL, xlsx, open data...)119
2.3 Charger et transformer des données non structurées (images, sons, json, xml...)129
3. Décrire et transformer des colonnes135
3.1 Décrire la structure de vos données135
3.2 Quelles transformations pour les colonnes de vos données ?137
3.3 Les changements de types137
3.4 Les jointures et concaténations140
3.5 La gestion des doublons de lignes143
3.6 La discrétisation144
3.7 Les tris146
3.8 Le traitement de données temporelles147
3.9 Le traitement des données manquantes151
3.10 Le traitement des colonnes avec des données qualitatives155
3.11 Les transformations numériques159
3.12 Echantillonnage des données160
3.13 La construction de tableaux croisés162
4. Extraire des statistiques descriptives163
4.1 Statistiques pour données quantitatives163
4.2 Statistiques pour données qualitatives166
5. Utilisation du groupby pour décrire des données167
5.1 Le principe167
5.2 Les opérations sur les objets groupby167
5.3 Apply : une méthode importante pour manipuler vos groupby168
5.4 Cas concret d'utilisation d'un groupby.169
6. Aller plus loin : accélération170
6.1 Parallélisation avec Dask et Pandas170
6.2 Accélération du code avec Numba171
5 Data visualisation avec Python
175
1. Construction de graphiques avec Matplotlib175
1.1 Utilisation de Matplotlib175
1.2 Afficher des graphiques176
1.3 Les paramètres globaux de Matplotlib et l'exportation de graphiques177
1.4 Utilisation de Matplotlib depuis Pandas179
1.5 Votre premier graphique avec Matplotlib180
1.6 Nuage de points avec plt.scatter183
1.7 Le graphique en bâtons avec plt.bar()184
1.8 La construction d'un pie chart186
1.9 Les barres d'erreurs avec plt.errorbarf()187
1.10 La construction d'histogrammes188
1.11 Personnaliser vos graphiques Matplotlib189
1.12 Créer un graphique animé195
2. Seaborn pour des représentations plus élaborées196
2.1 Utilisation de Seaborn196
2.2 Le box plot ou la boîte à moustaches197
2.3 Les violons199
2.4 Les histpIot() de Seaborn200
2.5 Les pairplot() de Seaborn ou la matrice de graphiques201
2.6 Les jointplot()202
3. Quelques bases de cartographie203
3.1 Installation et utilisation de Cartopy204
3.2 Les autres outils207
4. Les graphiques interactifs avec d'autres packages et outils209
4.1 Les packages utilisés209
4.2 Plotly pour la création de visualisation interactives210
4.3 Création d'une application web avec Dash ou Streamlit212
4.4 Construction d'une application web avec Streamlit215
Python, le machine learning et le big data
6 Différentes utilisations du machine learning avec Python
219
1. Le machine learning, qu'est-ce que c'est ?219
1.1 Les principes et les familles d'algorithmes219
1.2 Faire du machine learning221
2. Comment faire du machine learning avec Python223
2.1 Scikit-Learn223
2.2 TensorFlow224
2.3 Keras225
2.4 PyTorch225
2.5 MLflow225
3. Le processus de traitement en machine learning226
3.1 Le rôle du data scientist pour les traitements machine learning226
3.2 Avant les algorithmes : les données226
3.3 Quelques règles à respecter lorsqu'on utilise des algorithmes227
3.4 Le traitement avec Scikit-Learn229
4. Lapprentissage supervisé avec Scikit-Learn ..232
4.1 Les données et leur transformation232
4.2 Le choix et l'ajustement de l'algorithme239
4.3 Les indicateurs pour valider un modèle246
4.4 Lajustement des hyperparamètres d'un modèle254
4.5 La construction d'un pipeline de traitement257
4.6 Passer en production votre modèle d'apprentissage supervisé260
5. Lapprentissage non supervisé263
5.1 Le principe263
5.2 Implémentation d'une méthode de clustering avec Python263
5.3 Les méthodes de réduction de dimension269
6. L'analyse textuelle avec Python275
6.1 Les données textuelles en Python275
6.2 Le prétraitement des données276
6.3 La mise en place d'un premier modèle prédictif279
6.4 Aller plus loin282
7. Le deep learning283
7.1 Pourquoi le deep learning ?283
7.2 Installer votre environnement284
7.3 Principe d'un réseau de neurones et première utilisation284
7.4 Le deep learning et les réseaux de neurones à convolutions288
7.5 Aller plus loin : génération de features, transfer learning, RNN, GAN293
7 Python et le big data : tour d'horizon
301
1. Est-ce qu'on change tout quand on parle de big data ?301
2. Comment traiter de la donnée massive avec Python303
3. Récupérer des données avec Python304
3.1 Les approches classiques304
3.2 Se connecter aux fichiers HDFS en Python - utilisation de PyArrow304
4. Utilisation d'Apache Spark avec PySpark en Python306
4.1 Principes de Spark306
4.2 Installer une infrastructure Spark308
4.3 Le DataFrame de Spark SQL310
4.4 Le machine learning avec Spark315
Lexique de la data science
319
Mettre en place votre environnement
323
Bibliographie
327
Index
331