Ce support présente à des personnes non Data Scientists, et sans connaissances particulières en mathématiques, la méthodologie du Machine Learning, ses concepts, ses principaux algorithmes et l’implémentation de ceux-ci en Python avec Scikit-learn. Il commence par une présentation du Machine Learning puis de la méthode CRISP où chaque phase est détaillée avec ses différentes étapes. Les premiers chapitres s’intéressent donc aux phases de Business Understanding (compréhension métier), Data...
Ce support présente à des personnes non Data Scientists, et sans connaissances particulières en mathématiques, la méthodologie du Machine Learning, ses concepts, ses principaux algorithmes et l’implémentation de ceux-ci en Python avec Scikit-learn.
Il commence par une présentation du Machine Learning puis de la méthode CRISP où chaque phase est détaillée avec ses différentes étapes. Les premiers chapitres s’intéressent donc aux phases de Business Understanding (compréhension métier), Data Understanding (ou compréhension des données) et de Data Preparation (préparation des données). Dans ces chapitres sont présentées des analyses statistiques de datasets, que cela soit sous forme numérique ou graphique ainsi que les principales techniques utilisées pour la préparation des données, avec leur rôle et des conseils sur leur utilisation.
Ensuite, plusieurs chapitres sont dédiés chacun à une tâche de Machine Learning : la classification, la régression, avec le cas particulier de la prédiction, ainsi que le clustering et plus globalement l’apprentissage non supervisé. Pour chaque tâche qui est présentée sont successivement détaillés les critères d’évaluation, les concepts derrière les principaux algorithmes puis leur implémentation avec Scikit-learn.
Pour illustrer les différents chapitres, les techniques et algorithmes présentés sont appliqués sur des datasets souvent utilisés : Iris (classification de fleurs), Boston (prévision de prix de vente d’appartements) et Titanic (prévision de la chance de survie des passagers du bateau). Le code Python est commenté et disponible en téléchargement (sous la forme de notebooks Jupyter) sur le site www.editions-eni.fr.
4. Organisation du livre et éléments en téléchargement
5. Datasets utilisés dans ce livre
5.1 Iris de Fisher, 1936
5.2 Titanic, 1994
5.3 Boston, 78
Le Machine Learning : vue d'ensemble
1. Un peu de vocabulaire
2. Les métiers de la data
3. La croissance du Machine Learning
4. Formes d'apprentissage et tâches de ML
4.1 Apprentissage supervisé
4.1.1 Classification
4.1.2 Classification : le cas des images
4.1.3 Régression
4.1.4 Prévision
4.2 Apprentissage non supervisé
4.2.1 Clustering
4.2.2 Réduction de dimensions
4.2.3 Système de recommandations
4.2.4 Associations
4.3 Apprentissage par renforcement
4.3.1 Comportements
4.3.2 Jeux et stratégies
4.4 Apprentissage semi-supervisé
4.5 Cas des IA génératives
4.6 Synthèse des différentes formes d'apprentissage et tâches
5. Méthodologie CRISP-DM
5.1 Vue d’ensemble
5.2 Business Understanding
5.3 Data Understanding
5.3.1 Carte d'identité du dataset
5.3.2 Description des champs
5.3.3 Statistiques descriptives
5.4 Data Preparation
5.5 Modeling
5.6 Évaluation
5.7 Deployment
La pile technologique en Python
1. Les outils de la Data Science
1.1 Les outils intégrés
1.2 L'auto ML
1.3 Les outils de développement
2. Langage Python
2.1 Présentation
2.2 Brève présentation de R
2.3 Python ou R ?
2.4 Python 2 vs Python 3
3. Jupyter
3.1 Caractéristiques de Jupyter
3.2 Avantages de Jupyter pour la Data Science
3.3 Installation et utilisation de Jupyter
4. Librairies de Machine Learning
4.1 NumPy
4.2 Pandas
4.3 Matplotlib
4.4 Scikit-learn
5. Bibliothèques de Deep Learning
Chargement et analyse des données
1. La phase de Data Understanding
2. Chargement des données
3. Création de la carte d'identité du dataset
4. Description des champs
4.1 Gestion des types
4.2 Détection des données manquantes
5. Statistiques descriptives sur les champs
5.1 Types de données
5.2 Analyse des données numériques
5.3 Graphiques sur les données numériques
5.3.1 Histogramme
5.3.2 Nuage de points
5.3.3 Boîtes à moustaches
5.4 Analyse sur les données catégorielles
5.5 Graphiques sur les données catégorielles
5.6 Autres données
5.7 Analyse croisée des données
5.7.1 Entre des variables numériques
5.7.2 Entre des variables numériques et une variable catégorielle
5.7.3 Entre des variables catégorielles
6. Préparer la phase suivante
Préparation des données
1. La phase de Data Preparation
2. Limiter les données
2.1 Supprimer des colonnes
2.2 Supprimer des enregistrements
3. Séparer les datasets
3.1 Proportion Entraînement/Test
3.2 Séparation aléatoire
3.3 Séparation stratifiée
4. Traiter les données manquantes
5. Préparer les attributs numériques
5.1 Validation des données
5.1.1 Validation sémantique des données
5.1.2 Validation statistique des données
5.2 Feature engineering
5.3 Discrétisation
5.3.1 Intervalles égaux
5.3.2 Répartition par quantile
5.3.3 Répartition manuelle
5.4 Normalisation
5.4.1 Normalisation min-max
5.4.2 Normalisation standard
5.4.3 Normalisation robuste
5.4.4 Comparaison
6. Préparer les variables catégorielles
6.1 Validation des données
6.2 Modification des catégories
6.2.1 Ordonner ou réordonner des catégories
6.2.2 Modifier la liste des catégories
6.3 Quantification
7. Les données particulières
7.1 Préparer les dates
7.1.1 Le format datetime64
7.1.2 Extraire des composantes
7.1.3 Gérer les écarts
7.2 Préparer les chaînes de caractères
7.2.1 Préparer les chaînes
7.2.2 Effectuer une recherche dans les chaînes
7.2.3 Extraire des sous-chaînes
7.2.4 Autres méthodes
8. Automatiser la préparation
8.1 Création de pipelines de traitement
8.2 Paramètres des opérations et code Pandas
8.3 Pipelines avec Scikit-learn
8.3.1 Création d'un Transformer
8.3.2 Utilisation des Transformer
8.3.3 Inconvénients de Scikit-learn
8.4 Autres possibilités
Modélisation et évaluation
1. Phase de modélisation
2. Création d'un ensemble de validation
3. Préparation des datasets
3.1 Dataset Iris
3.2 Dataset Titanic
3.3 Dataset Boston
4. Création des modèles
4.1 Processus itératif
4.2 Création d'un modèle en Scikit-learn
4.3 Évaluation d'un modèle
4.4 Validation croisée
4.5 Sauvegarde et chargement d'un modèle
5. Amélioration des modèles (fine-tuning)
5.1 Optimisation des hyperparamètres
5.2 Application en Scikit-learn
5.3 Sur- et sous-apprentissage
6. Méthodes ensemblistes
6.1 Bagging
6.2 Boosting
6.3 Stacking
Algorithmes de classification
1. La tâche de classification
1.1 Définition
1.2 Exemples de cas pratiques
1.3 Préparation spécifique des données
2. Évaluation des modèles
2.1 Matrices de confusion
2.1.1 Cas de la classification binaire
2.1.2 Cas de la classification multiclasse
2.2 Indicateurs dérivés de la matrice de confusion
2.2.1 Accuracy
2.2.2 Rappel et précision
2.2.3 F1-score
2.2.4 Sensibilité et spécificité
2.3 La courbe ROC et l'AUC
2.3.1 Prédiction et probabilité
2.3.2 Taux de vrais et faux positifs
2.3.3 Courbe ROC
2.3.4 Aire sous la courbe (AUC)
2.4 Choix des indicateurs d'évaluation
3. Les arbres de décision et algorithmes dérivés
3.1 Arbres de décision
3.1.1 Sortie de l'arbre
3.1.2 Choix du point de coupure
3.1.3 Critères d'arrêt
3.1.4 Exploitation de l'arbre
3.2 Random Forests
3.3 XGBoost (eXtreme Gradient Boosting)
4. K-Nearest Neighbors
5. Logistic Regression
5.1 Régression logistique binaire
5.2 Régression logistique polytomique
5.3 Application avec Scikit-learn
6. Naive Bayes
6.1 Principe général
6.2 Calcul des différentes probabilités
6.3 Application avec Scikit-learn
7. Support Vector Machine
7.1 Présentation générale
7.1.1 Marge et support vector
7.1.2 Kernels
7.1.3 Avantages
7.2 Application avec Scikit-learn
Algorithmes de régression
1. La tâche de régression
1.1 Définition
1.2 Exemples de cas pratiques
1.3 Préparation spécifique des données
2. Entraînement et évaluation des modèles
2.1 Notion d'erreurs
2.2 Indicateurs dérivés de la mesure d'erreurs
2.2.1 Erreur absolue moyenne
2.2.2 Erreur quadratique moyenne
2.2.3 Racine de l'erreur quadratique moyenne
2.2.4 Coefficient de détermination et variance expliquée
2.2.5 Autres indicateurs
2.3 Choix des indicateurs d'évaluation
3. Utilisation des algorithmes de classification
3.1 Principe général
3.2 Arbres de décision et algorithmes dérivés
3.2.1 Arbres de décision
3.2.2 Random Forest
3.2.3 XGBoost
3.3 K-plus proches voisins (KNN)
3.4 Support Vector Machine (SVM)
4. Régression linéaire et variantes
4.1 Régression linéaire
4.2 Application dans Scikit-learn
4.3 Problème de la colinéarité
4.4 Ridge Regression
4.5 Régression Lasso
5. Régression polynomiale
5.1 Principe
5.2 Régression polynomiale et Scikit-learn
6. Cas particulier de la prédiction
6.1 Prédiction et séries temporelles
6.2 Préparation des données
6.3 Application en Scikit-learn
6.4 Utilisation de modèles spécifiques
6.4.1 Limites de l'approche en régression linéaire
6.4.2 Algorithmes dédiés aux séries temporelles
Algorithmes d’apprentissage non supervisés
1. Les tâches en apprentissage non supervisé
2. Clustering
2.1 Définition
2.2 Exemples de cas pratiques
2.3 Algorithmes basés sur les distances
2.3.1 Principe de l'algorithme K-Means
2.3.2 Implémentation avec Scikit-learn
2.3.3 Variantes de l'algorithme K-Means
2.4 Algorithmes basés sur la densité
2.4.1 Principe général
2.4.2 Implémentation de DBSCAN en Scikit-learn
2.4.3 Variante de DBSCAN : OPTICS
3. Réduction des dimensions
3.1 Définition
3.2 Exemples de cas pratiques
3.3 Détection des axes principaux
3.4 Création de nouveaux axes
3.4.1 Principal Component Analysis (PCA)
3.4.2 Linear Discriminant Analysis (LDA)
4. Systèmes de recommandation
4.1 Définition
4.2 Principales approches
4.2.1 Modèles basés sur la popularité (popularity-based filtering)
4.2.2 Modèles basés sur le contenu (content-based filtering)
4.2.3 Modèles basés sur les autres utilisateurs (collaborative filtering)
4.2.4 Méthodes hybrides
5. Association
5.1 Définition
5.2 Évaluation des algorithmes
5.2.1 Le support
5.2.2 L'indice de confiance
5.2.3 Le lift
5.3 Algorithme « APriori »
5.3.1 Étape 1 : réalisation des comptages des ensembles
5.3.2 Étape 2 : création et test des règles
Évaluation et déploiement
1. Phase d'évaluation
1.1 Principe global
1.2 Évaluation métier des résultats
1.3 Revue du processus
1.4 Étapes suivantes
2. Phase de déploiement
2.1 Planification du déploiement
2.2 Monitoring et maintenance
2.3 Rapport final et documentation
3. Déploiement et MLOps
3.1 Retours sur le DevOps
3.2 Apparition du MLOps
3.3 Tâches couvertes par le MLOps
3.4 Critères de choix
Conclusion
1. Le Machine Learning, une compétence clé
2. Mener un projet jusqu'au bout
3. Au-delà de la méthodologie
4. Expérimentation et expérience
5. Pour aller plus loin
Index
Virginie MATHIVET
Virginie MATHIVET a fait une thèse de doctorat en Intelligence Artificielle, plus précisément sur les algorithmes génétiques et les réseaux de neurones. Après avoir enseigné l'intelligence artificielle, la robotique et des matières liées au développement pendant plus de 10 ans, elle monte un département Data dans une ESN (IA, Data Engineering, Big Data). En 2023 elle crée sa propre entreprise, Hemelopse, pour se concentrer sur le conseil stratégique en IA, tout en continuant la formation et le coaching de data scientists. Elle est également conférencière.