Ce livre 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 livre 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.
Organisation du livre et éléments en téléchargement
Datasets utilisés dans ce livre
1. Iris de Fisher, 1936
2. Titanic, 1994
3. Boston, 1978
Le Machine Learning : vue d'ensemble
Un peu de vocabulaire
Les métiers de la data
La croissance du Machine Learning
Formes d'apprentissage et tâches de ML
1. Apprentissage supervisé
a. Classification
b. Classification : le cas des images
c. Régression
d. Prévision
2. Apprentissage non supervisé
a. Clustering
b. Réduction de dimensions
c. Système de recommandations
d. Associations
3. Apprentissage par renforcement
a. Comportements
b. Jeux et stratégies
4. Apprentissage semi-supervisé
5. Cas des IA génératives
6. Synthèse des différentes formesd’apprentissage et tâches
Méthodologie CRISP-DM
1. Vue d’ensemble
2. Business Understanding
3. Data Understanding
a. Carte d’identité du dataset
b. Description des champs
c. Statistiques descriptives
4. Data Preparation
5. Modeling
6. Évaluation
7. Deployment
La pile technologique en Python
Les outils de la Data Science
1. Les outils intégrés
2. L’auto ML
3. Les outils de développement
Langage Python
1. Présentation
2. Brève présentation de R
3. Python ou R ?
4. Python 2 vs Python 3
Jupyter
1. Caractéristiques de Jupyter
2. Avantages de Jupyter pour la Data Science
3. Installation et utilisation de Jupyter
Librairies de Machine Learning
1. NumPy
2. Pandas
3. Matplotlib
4. Scikit-learn
Bibliothèques de Deep Learning
Chargement et analyse des données
La phase de Data Understanding
Chargement des données
Création de la carte d'identité du dataset
Description des champs
1. Gestion des types
2. Détection des données manquantes
Statistiques descriptives sur les champs
1. Types de données
2. Analyse des données numériques
3. Graphiques sur les données numériques
a. Histogramme
b. Nuage de points
c. Boîtes à moustaches
4. Analyse sur les données catégorielles
5. Graphiques sur les données catégorielles
6. Autres données
7. Analyse croisée des données
a. Entre des variables numériques
b. Entre des variables numériques et une variablecatégorielle
c. Entre des variables catégorielles
Préparer la phase suivante
Préparation des données
La phase de Data Preparation
Limiter les données
1. Supprimer des colonnes
2. Supprimer des enregistrements
Séparer les datasets
1. Proportion Entraînement/Test
2. Séparation aléatoire
3. Séparation stratifiée
Traiter les données manquantes
Préparer les attributs numériques
1. Validation des données
a. Validation sémantique des données
b. Validation statistique des données
2. Feature engineering
3. Discrétisation
a. Intervalles égaux
b. Répartition par quantile
c. Répartition manuelle
4. Normalisation
a. Normalisation min-max
b. Normalisation standard
c. Normalisation robuste
d. Comparaison
Préparer les variables catégorielles
1. Validation des données
2. Modification des catégories
a. Ordonner ou réordonner des catégories
b. Modifier la liste des catégories
3. Quantification
Les données particulières
1. Préparer les dates
a. Le format datetime64
b. Extraire des composantes
c. Gérer les écarts
2. Préparer les chaînes de caractères
a. Préparer les chaînes
b. Effectuer une recherche dans les chaînes
c. Extraire des sous-chaînes
d. Autres méthodes
Automatiser la préparation
1. Création de pipelines de traitement
2. Paramètres des opérations et codePandas
3. Pipelines avec Scikit-learn
a. Création d’un Transformer
b. Utilisation des Transformer
c. Inconvénients de Scikit-learn
4. Autres possibilités
Modélisation et évaluation
Phase de modélisation
Création d'un ensemble de validation
Préparation des datasets
1. Dataset Iris
2. Dataset Titanic
3. Dataset Boston
Création des modèles
1. Processus itératif
2. Création d’un modèle en Scikit-learn
3. Évaluation d’un modèle
4. Validation croisée
5. Sauvegarde et chargement d’un modèle
Amélioration des modèles (fine-tuning)
1. Optimisation des hyperparamètres
2. Application en Scikit-learn
3. Sur- et sous-apprentissage
Méthodes ensemblistes
1. Bagging
2. Boosting
3. Stacking
Algorithmes de classification
La tâche de classification
1. Définition
2. Exemples de cas pratiques
3. Préparation spécifique des données
Évaluation des modèles
1. Matrices de confusion
a. Cas de la classification binaire
b. Cas de la classification multiclasse
2. Indicateurs dérivés de la matricede confusion
a. Accuracy
b. Rappel et précision
c. F1-score
d. Sensibilité et spécificité
3. La courbe ROC et l’AUC
a. Prédiction et probabilité
b. Taux de vrais et faux positifs
c. Courbe ROC
d. Aire sous la courbe (AUC)
4. Choix des indicateurs d’évaluation
Les arbres de décision et algorithmes dérivés
1. Arbres de décision
a. Sortie de l’arbre
b. Choix du point de coupure
c. Critères d’arrêt
d. Exploitation de l’arbre
2. Random Forests
3. XGBoost (eXtreme Gradient Boosting)
K-Nearest Neighbors
Logistic Regression
1. Régression logistique binaire
2. Régression logistique polytomique
3. Application avec Scikit-learn
Naive Bayes
1. Principe général
2. Calcul des différentes probabilités
3. Application avec Scikit-learn
Support Vector Machine
1. Présentation générale
a. Marge et support vector
b. Kernels
c. Avantages
2. Application avec Scikit-learn
Algorithmes de régression
La tâche de régression
1. Définition
2. Exemples de cas pratiques
3. Préparation spécifique des données
Entraînement et évaluation des modèles
1. Notion d’erreurs
2. Indicateurs dérivés de la mesured’erreurs
a. Erreur absolue moyenne
b. Erreur quadratique moyenne
c. Racine de l’erreur quadratique moyenne
d. Coefficient de détermination et varianceexpliquée
e. Autres indicateurs
3. Choix des indicateurs d’évaluation
Utilisation des algorithmes de classification
1. Principe général
2. Arbres de décision et algorithmes dérivés
a. Arbres de décision
b. Random Forest
c. XGBoost
3. K-plus proches voisins (KNN)
4. Support Vector Machine (SVM)
Régression linéaire et variantes
1. Régression linéaire
2. Application dans Scikit-learn
3. Problème de la colinéarité
4. Ridge Regression
5. Régression Lasso
Régression polynomiale
1. Principe
2. Régression polynomiale et Scikit-learn
Cas particulier de la prédiction
1. Prédiction et séries temporelles
2. Préparation des données
3. Application en Scikit-learn
4. Utilisation de modèles spécifiques
a. Limites de l’approche en régression linéaire
b. Algorithmes dédiés aux sériestemporelles
Algorithmes d’apprentissage non supervisés
Les tâches en apprentissage non supervisé
Clustering
1. Définition
2. Exemples de cas pratiques
3. Algorithmes basés sur les distances
a. Principe de l’algorithme K-Means
b. Implémentation avec Scikit-learn
c. Variantes de l’algorithme K-Means
4. Algorithmes basés sur la densité
a. Principe général
b. Implémentation de DBSCAN en Scikit-learn
c. Variante de DBSCAN : OPTICS
Réduction des dimensions
1. Définition
2. Exemples de cas pratiques
3. Détection des axes principaux
4. Création de nouveaux axes
a. Principal Component Analysis (PCA)
b. Linear Discriminant Analysis (LDA)
Systèmes de recommandation
1. Définition
2. Principales approches
a. Modèles basés sur la popularité (popularity-basedfiltering)
b. Modèles basés sur le contenu (content-basedfiltering)
c. Modèles basés sur les autres utilisateurs(collaborative filtering)
d. Méthodes hybrides
Association
1. Définition
2. Évaluation des algorithmes
a. Le support
b. L’indice de confiance
c. Le lift
3. Algorithme « APriori »
a. Étape 1 : réalisation descomptages des ensembles
b. Étape 2 : création et testdes règles
Évaluation et déploiement
Phase d'évaluation
1. Principe global
2. Évaluation métier des résultats
3. Revue du processus
4. Étapes suivantes
Phase de déploiement
1. Planification du déploiement
2. Monitoring et maintenance
3. Rapport final et documentation
Déploiement et MLOps
1. Retours sur le DevOps
2. Apparition du MLOps
3. Tâches couvertes par le MLOps
4. Critères de choix
Conclusion
Le Machine Learning, une compétence clé
Mener un projet jusqu'au bout
Au-delà de la méthodologie
Expérimentation et expérience
Pour aller plus loin
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.