Chapitre d’ouvrage

2. Un projet de Machine Learning de bout en bout

Pages 35 à 82

Citer ce chapitre


  • Géron, A.
(2019). 2. Un projet de Machine Learning de bout en bout. Machine Learning avec Scikit-Learn : Mise en oeuvre et cas concrets (2e éd., p. 35-82). Dunod. https://stm.cairn.info/machine-learning-avec-scikit-learn--9782100790654-page-35?lang=fr.

  • Géron, Aurélien.
« 2. Un projet de Machine Learning de bout en bout ». Machine Learning avec Scikit-Learn Mise en oeuvre et cas concrets, Dunod, 2019. p.35-82. CAIRN.INFO, stm.cairn.info/machine-learning-avec-scikit-learn--9782100790654-page-35?lang=fr.

  • GÉRON, Aurélien,
2019. 2. Un projet de Machine Learning de bout en bout. In : Machine Learning avec Scikit-Learn Mise en oeuvre et cas concrets. Paris : Dunod. Hors collection, p.35-82. URL : https://stm.cairn.info/machine-learning-avec-scikit-learn--9782100790654-page-35?lang=fr.

Notes

  • [1]
    Cet exemple de projet est fictif, le but étant d’illustrer les principales étapes d’un projet d’apprentissage automatique, et non d’apprendre quoi que ce soit sur le marché de l’immobilier.
  • [2]
    Le jeu de données originel a été présenté par Pace, Kelley et Barry, dans l’article « Sparse Spatial Auto-regressions » de la revue Statistics and Probability Letters, 33, n° 3 (1997), 291-297.
  • [3]
    C’est en référence à la théorie de l’information de Claude Shannon (qu’il a développée aux Bell Labs pour améliorer les télécommunications) que l’on dénomme couramment signal un élément d’information servant à alimenter un système d’apprentissage automatique : en effet, on souhaite un rapport signal/bruit élevé.
  • [4]
    Rappelez-vous qu’un opérateur de transposition transforme un vecteur colonne en un vecteur ligne et inversement.
  • [5]
    Il est recommandé d’installer la dernière version de Python 3. Python 2.7+ pourrait fonctionner également mais, comme il est désormais obsolète, toutes les principales bibliothèques scientifiques ne le prennent plus en charge. Vous devez donc migrer vers Python 3 dès que possible.
  • [6]
    Je détaillerai les étapes d’installation via pip sous un shell bash sur un système Linux ou macOS. Il vous faudra peut-être adapter ces commandes à votre propre système. Sous Windows, je recommande plutôt d’installer Anaconda.
  • [7]
    Si vous voulez installer pip pour tous les utilisateurs de votre machine et pas seulement pour vousmême, vous devez supprimer l’option --user et l’installer en tant qu’administrateur (c.-à-d. en ajoutant sudo devant la ligne de commande sous Linux ou macOS).
  • [8]
    Il existe d’autres outils comme venv (très semblable à virtualenv et inclus dans la bibliothèque standard), virtualenvwrapper (fournissant des fonctionnalités venant compléter celles de virtualenv), pyenv (permettant de passer facilement d’une version Python à l’autre) et pipenv (superbe outil de packaging du même auteur que la célèbre bibliothèque requests, construit au-dessus de pip et virtualenv).
  • [9]
    Notez que Jupyter peut gérer des versions multiples de Python, et même beaucoup d’autres langages tels que R ou Octave.
  • [10]
    Il vous faudra peut-être également vérifier quelles obligations légales s’appliquent, par exemple pour certains champs privés qui ne doivent jamais être copiés vers des supports de stockage non sécurisés.
  • [11]
    Dans un projet réel, vous enregistreriez le code dans un fichier Python, mais pour l’instant vous pouvez vous contenter de le saisir dans votre notebook Jupyter.
  • [12]
    Une variable qualitative, parfois appelée variable catégorielle (de l’anglais categorical variable), ne peut prendre qu’un nombre fini de valeurs différentes, appelées modalités (en anglais categories).
  • [13]
    L’écart-type, que l’on note généralement σ (lettre grecque sigma), est la racine carrée de la variance, qui est la moyenne des carrés des écarts par rapport à la moyenne. Lorsqu’une variable a une distribution normale (encore appelée distribution gaussienne), caractérisée par une courbe en cloche, ce qui est un cas très fréquent, la règle des « 68-95-99,7 » s’applique : environ 68 % des valeurs se situent à moins d’un écart-type (σ) de la moyenne, 95 % à moins de 2σ et 99,7 % à moins de 3σ.
  • [14]
    Dans ce livre, lorsque l’exemple contient à la fois le code d’entrée et la sortie correspondante, comme c’est le cas ici, pour plus de lisibilité il est formaté à la façon de l’interpréteur Python : les lignes de code fournies en entrée sont préfixées par >>> (ou … pour les blocs indentés) et les sorties ne sont pas préfixées.
  • [15]
    Vous constaterez que beaucoup de personnes donnent à ce germe la valeur 42. Ce nombre n’a pas de propriété spéciale, si ce n’est d’être « la réponse à la grande question sur la vie, l’univers et le reste ».
  • [16]
    Les informations de localisation sont en fait assez peu précises, et par conséquent de nombreux districts auront exactement le même identificateur et se trouveront par conséquent dans le même jeu de données (test ou entraînement). Ceci introduit malheureusement un certain biais d’échantillonnage.
  • [17]
    Si ce dessin est en noir et blanc, comme c’est le cas pour l’édition papier, prenez un crayon rouge et coloriez toute la côte depuis la baie de San Francisco jusqu’à San Diego (comme vous pouvez vous y attendre). Vous pouvez aussi ajouter un peu de jaune autour de Sacramento.
  • [18]
    Source : Wikipédia. Image dans le domaine public.
  • [19]
    Pour en savoir davantage sur ses principes de conception, voir Lars Buitinck et al., « API Design for Machine Learning Software : Experiences from the Scikit-Learn Project », European Conference on Machine Learning and Principles and Practices of Knowledge Discovery in Databases (2013) : https://homl.info/11.
  • [20]
    Certains prédicteurs possèdent également des méthodes pour mesurer la fiabilité de leurs prédictions.
  • [21]
    Cette classe est disponible depuis la version 0.20 de Scikit-Learn. Si vous utilisez une version antérieure, mettez à niveau ou utilisez la méthode Series.factorize() de pandas.
  • [22]
    Avant Scikit-Learn 0.20, cette classe ne pouvait encoder que des variables qualitatives à valeurs entières, mais depuis 0.20 elle peut gérer d’autres types d’entrées, y compris des variables qualitatives de type texte.
  • [23]
    Pour plus d’informations, voir la documentation SciPy.
  • [24]
    Pour plus d’informations, voir le chapitre sur les réseaux de neurones récurrents de l’ouvrage Deep Learning avec Keras et TensorFlow, A. Géron, Dunod (2e édition, 2020).
  • [25]
    Tout comme pour les pipelines, le nom peut comporter n’importe quels caractères sauf deux caractères de soulignement consécutifs.
  • [26]
    En résumé, une API REST (ou API RESTful) est une API basée sur HTTP qui respecte certaines conventions, telles que l’utilisation de verbes HTTP standard pour lire, mettre à jour, créer ou supprimer des ressources (GET, POST, PUT et DELETE) et l’utilisation de JSON pour les entrées et les sorties.
  • [27]
    Voir l’ouvrage Deep Learning avec Keras et TensorFlow, A. Géron, Dunod (2e édition, 2020).
  • [28]
    Un captcha est un test qui permet de s’assurer qu’un utilisateur n’est pas un robot. Ces tests ont souvent constitué un moyen simple d’étiqueter des données d’entraînement.

Dans ce chapitre, vous allez suivre de bout en bout un exemple de projet, pour lequel nous supposerons qu’une compagnie immobilière vient de vous embaucher comme expert en analyse de données. Voici les principales étapes que vous allez parcourir :
Prendre du recul pour une vision d’ensemble
Récupérer les données.
Découvrir et visualiser les données pour mieux les comprendre.
Préparer les données pour les algorithmes d’apprentissage automatique.
Sélectionner un modèle et l’entraîner.
Régler avec précision votre modèle.
Présenter votre solution.
Lancer, surveiller et maintenir votre système.
Pour découvrir l’apprentissage automatique, il est préférable de s’entraîner sur des données du monde réel, et non pas simplement sur des jeux de données artificiels. Heureusement, vous pouvez choisir parmi des milliers de jeux de données librement accessibles (en anglais, open datasets), dans des domaines très variés. Voici quelques endroits où vous pouvez vous procurer de tels jeux de données :
Entrepôts de données en source libre bien connus :http://archive.ics.uci.edu/ml (entrepôt de Machine Learning de l’Université d’Irvine, Californie)https://www.kaggle.com/datasets (jeux de données Kaggle)https://registry.opendata.aws/ (jeux de données AWS d’Amazon)
Méta-portails (répertoriant des entrepôts de données en accès libre) :http://dataportals.orghttp://opendatamonitor.euhttp://quandl.com
Autres pages répertoriant de nombreux entrepôts de données libres bien connus …


Date de mise en ligne : 01/06/2022

Ce chapitre est en accès conditionnel

Acheter cet ouvrage

27,99 €

312 pages, format électronique (HTML et feuilletage, par chapitre)
Membre d'une institution cliente ?