Le Machine learning avec Python
La bible des data scientists
Andreas C. Müller et Sarah Guido
First Interactive
Préfaceix
Qui devrait lire ce livre ?ix
Pourquoi nous avons écrit ce livrex
Naviguer dans le livrex
Conventions utilisées dans ce livrexi
Utiliser les exemples de codexii
1. Introduction1
Pourquoi l'apprentissage automatique ?2
Les problèmes que l'apprentissage automatique peut résoudre2
Comprendre votre but et comprendre vos données5
Pourquoi Python ?6
scikit-learn6
Installer scikit-learn7
Librairies et outils essentiels8
Jupyter Notebook8
NumPy9
SciPy9
matplotlib10
pandas11
mglearn12
Python 2 versus Python 313
Versions utilisées dans ce livre13
Une première application : classifier des espèces d'iris15
À la rencontre des données16
Mesurer la réussite : entraîner et tester les données19
Au commencement de tout : vérifier vos données20
Construire votre premier modèle : les K plus proches voisins22
Faire des prédictions24
Évaluer le modèle25
Résumé et perspectives26
2. Apprentissage supervisé29
Classification et régression29
Généralisation, surapprentissage et sous-apprentissage30
Relation entre complexité du modèle et taille du jeu de données33
Algorithmes pour l'apprentissage automatique supervisé33
Exemples de jeux de données34
Les k plus proches voisins38
Modèles linéaires48
Classifieurs bayésiens naïfs71
Arbres de décision73
Ensembles d'arbres de décision86
SVM à noyau95
Réseaux de neurones (deep learning)107
Estimer l'incertitude pour les classifieurs121
La fonction de décision122
Prédire les probabilités124
Classification multiclasse et incertitude127
Résumé et perspectives129
3. Apprentissage non supervisé et prétraitement133
Types d'apprentissages non supervisés133
Les défis de l'apprentissage non supervisé134
Prétraitement et recalibrage135
Différents types de prétraitement135
Appliquer des transformations aux données136
Recalibrer de la même manière le jeu d'apprentissage et le jeu de test139
Effet du prétraitement sur l'apprentissage supervisé141
Réduction de la dimension, extraction de caractéristiques et apprentissage de variétés142
Analyse en composantes principales (PCA)143
Factorisation en matrices non négatives (NMF)159
Apprentissage de variétés avec t-SNE167
Clustering171
Partitionnement en k-moyennes171
Clustering agglomératif185
DBSCAN189
Comparer et évaluer les algorithmes de clustering194
Résumons les méthodes de clustering209
Résumé et perspectives209
4. Représentation des données et ingénierie des caractéristiques213
Variables catégorielles214
Encodage one-hot (variables indicatrices)215
Les nombres peuvent encoder des catégories220
Binning, discrétisation, modèles linéaires et arbres222
Interactions et polynômes226
Transformations non linéaires univariées234
Sélection automatique de caractéristiques237
Statistiques univariées238
Sélection de caractéristiques basée sur le modèle240
Sélection itérative de caractéristiques242
Savoir utiliser l'expertise243
Résumé et perspectives252
5. Évaluation et amélioration du modèle253
Validation croisée254
Validation croisée dans scikit-learn255
Bénéfices de la validation croisée256
Validation croisée à k-plis stratifiée et autres stratégies257
Recherche sur grille263
Exemple simple de recherche sur grille263
Le danger du surapprentissage des paramètres et du jeu de validation264
Recherche sur grille avec validation croisée266
Métriques dévaluation et scoring278
Ne jamais oublier le but final278
Métriques dévaluation pour la classification binaire279
Métriques pour la classification multiclasse300
Métriques de régression303
Utiliser des métriques d'évaluation dans la sélection de modèles303
Résumé et perspectives305
6. Chaînage d'algorithmes et pipelines307
Sélection de paramètres avec prétraitement308
Construire des pipelines310
Utiliser des pipelines dans des recherches sur grille311
Interface générale de la classe Pipeline314
Créer facilement un pipeline avec make_pipeline315
Accéder aux attributs des étapes317
Accéder aux attributs d'un pipeline depuis GridSearchCV317
Étapes de prétraitement et paramètres du modèle319
Effectuer une recherche sur grille pour trouver quel modèle utiliser321
Résumé et perspectives322
7. Travailler avec des données textuelles325
Types de données représentés sous forme de chaînes de caractères325
Exemple d'application : analyse de sentiment dans des commentaires de films327
Représenter les données textuelles sous forme de sacs de mots330
Appliquer une représentation par sac de mots à un jeu de données jouet331
La représentation par sac de mots appliquée aux critiques de films333
Mots vides (stop words)337
Pondérer les données avec tf-idf338
Investiguer les coefficients du modèle341
Des sacs avec plusieurs mots (n-grammes)342
Tokenisation avancée, racinisation et lemmatisation347
Modèles de sujets et partitionnement de document350
L'allocation de Dirichlet latente (LDA)350
Résumé et perspectives357
8. Pour conclure359
Aborder un problème d'apprentissage automatique359
Est-ce qu'il y des humains dans la boucle ?360
Du prototype à la production361
Tester des systèmes de production362
Construire votre propre estimateur362
Pour aller plus loin363
Théorie363
Autres packages et ressources pour l'apprentissage automatique364
Ranking, systèmes de recommandation, et autres types d'apprentissage365
Inférence, programmation et modélisation probabiliste365
Réseaux de neurones366
Recalibrer les jeux de données367
Améliorer vos compétences368
Conclusion368
Index369