Recherche de site Web

La science des données à partir de zéro : critique de livre


Les programmeurs apprennent en mettant en œuvre des techniques à partir de zéro.

Il s’agit d’un type d’apprentissage peut-être plus lent que les autres types d’apprentissage, mais plus complet dans la mesure où toutes les micro-décisions impliquées deviennent intimes. L'implémentation est détenue de la tête à la queue.

Dans cet article, nous examinons de près le livre populaire de Joel Grus « Data Science from Scratch : First Principles with Python ».

J'ai récemment fini de lire la version de poche et je pense que cela pourrait être l'un de mes livres d'apprentissage automatique pour débutants préférés de l'année. Prenez-en une copie !

Aperçu du livre

Jetons un coup d’œil à ce livre.

L'auteur : Joël Grus

L'auteur de ce livre est Joel Grus, ingénieur logiciel chez Google.

Dans des postes précédents, il a été Data Scientist et Analyst dans des startups et ingénieur chez Google. Il a obtenu son doctorat à Caltech. Un très beau fond.

Apprenez-en davantage sur Joel sur son profil et son blog LinkedIn et sur Twitter.

Le public cible : les débutants

Le public cible du livre est constitué de programmeurs intermédiaires intéressés à se lancer dans la science des données et l’apprentissage automatique.

Python n'est pas un prérequis pour lire ce livre (il y a un cours intensif sur Python au chapitre 2), mais cela accélérerait les choses si vous étiez déjà un programmeur Python.

Le livre ne suppose aucune formation mathématique en apprentissage automatique (il y a un cours intensif dans les chapitres 4 à 7), mais encore une fois, des connaissances en statistiques, probabilités et algèbre accéléreraient les choses.

L'approche du livre : écrire du code (en Python)

Il s'agit d'un livre d'introduction à la science des données et à l'apprentissage automatique.

La majorité du texte se concentre sur la mise en œuvre d’algorithmes d’apprentissage automatique. Il y a une brève introduction à Python et la couverture de certains sujets de base en mathématiques, en visualisation de données et en collecte de données.

Cela vous fera passer du statut de programmeur débutant à celui d'être capable de mettre en œuvre des algorithmes d'apprentissage automatique pour résoudre divers problèmes de science des données.

Coder à partir de zéro

L'approche adoptée dans le livre consiste à décrire les concepts puis à les implémenter en Python à partir de zéro. Cela signifie sans utiliser de bibliothèques d'apprentissage automatique et de gestion de données (par exemple scikit-learn).

L'objectif déclaré de l'auteur de l'implémentation d'algorithmes à partir de zéro est :

…construire manuellement des outils et des algorithmes implémentés afin de mieux les comprendre.

Les bons exemples de code doivent d’abord être lisibles, puis efficients et efficaces. Ils sont écrits pour être compréhensibles en tant qu’aide pédagogique et non comme code de niveau production. Notez que la programmation que vous ferez à partir de zéro sera uniquement pédagogique et non opérationnelle.

J'ai beaucoup réfléchi à la création d'implémentations et d'exemples clairs, bien commentés et lisibles. Dans la plupart des cas, les outils que nous construirons seront éclairants mais peu pratiques.

Contenu du livre

Le livre compte 311 pages et contient 25 chapitres. Il s’agit d’un livre O’Reilly classique et constitue le facteur de forme idéal à ouvrir devant vous pendant que vous tapez sur le clavier en implémentant les exemples de code.

Dans cette section, nous examinons la table des matières :

un data scientist est quelqu'un qui extrait des informations à partir de données désordonnées

  • Chapitre 1 : Introduction (Qu'est-ce que la science des données ?)
  • Chapitre 2 : Un cours intensif sur Python (syntaxe, structures de données, flux de contrôle et autres fonctionnalités)
  • Chapitre 3 : Visualisation des données (diagrammes à barres, courbes et nuages de points avec matplotlib)
  • Chapitre 4 : Algèbre linéaire (vecteurs et matrices)
  • Chapitre 5 : Statistiques (tendance centrale et corrélations)
  • Chapitre 6 : Probabilité (Théorème de Bayes, Variables aléatoires, Normalité)
  • Chapitre 7 : Hypothèse et inférence (intervalles de confiance, valeurs P, inférence bayésienne)
  • Chapitre 8 : Descente de gradient (dégradés, marches, variation stochastique)
  • Chapitre 9 : Obtention de données (grattage HTML, API JSON)
  • Chapitre 10 : Travailler avec des données (visualisation de base, transformations de données)

l'apprentissage automatique… [fait référence] à la création et à l'utilisation de modèles appris à partir de données […] cela pourrait être appelé modélisation prédictive ou exploration de données

  • Chapitre 11 : Apprentissage automatique (ajustement, biais-variance, sélection de fonctionnalités)
  • Chapitre 12 : k-Voisins les plus proches (également malédiction de la dimensionnalité)
  • Chapitre 13 : Bayes naïfs
  • Chapitre 14 : Régression linéaire simple (également descente de gradient)
  • Chapitre 15 : Régression multiple (également bootstrap, régularisation)
  • Chapitre 16 : Régression logistique (également SVM)
  • Chapitre 17 : Arbres de décision (également forêt aléatoire)
  • Chapitre 18 : Réseaux de neurones (perceptron et back-prop)
  • Chapitre 19 : Clustering (k-Means)

Le processus de langage naturel (NLP) fait référence à des techniques informatiques impliquant le langage.

  • Chapitre 20 : Traitement du langage naturel (n-gram, grammaires, échantillonnage de Gibbs)
  • Chapitre 21 : Analyse du réseau (Centralité et PageRank)
  • Chapitre 22 : Systèmes de recommandation (basés sur les utilisateurs et les éléments)
  • Chapitre 23 : Bases de données et SQL (utilisation de base)
  • Chapitre 24 : MapReduce (divers exemples concrets)
  • Chapitre 25 : Allez-y et faites de la science des données (librairies que vous devriez utiliser)

Implémenter des choses « à partir de zéro » est idéal pour comprendre leur fonctionnement. Mais ce n’est généralement pas génial en termes de performances…, de facilité d’utilisation, de prototypage rapide ou de gestion des erreurs. En pratique, vous souhaiterez utiliser des bibliothèques bien conçues qui implémentent solidement les principes fondamentaux.

Opinions sur le livre

J'ai généralement aimé la table des matières, sauf que j'y apporterais quelques modifications.

J'abandonnerais certains des chapitres ultérieurs comme la PNL, l'analyse de réseau, etc. (chapitres 20 à 24) et renommerais le livre « Algorithmes d'apprentissage automatique à partir de zéro ». Ce serait un titre moins sexy mais plus honnête et précis.

La science des données consiste à formuler des questions, puis à collecter les données et à construire les modèles pour y répondre. Nous n’avons pas vraiment besoin d’un livre de science des données à partir de zéro, à moins qu’il ne s’agisse d’un ensemble d’études de cas et de la modélisation. Partir de zéro, en science des données, signifie en réalité la partie algorithmique.

Je ne suis pas contrarié, en fait, j'ai passé un bon moment à lire ce livre, mais je pourrais imaginer que quelqu'un s'attende à des processus systématiques pour formuler et résoudre des problèmes de données commerciales, en plus de la modélisation qui semble un peu trompeuse.

Je n'ai pas implémenté tous les algorithmes à partir de zéro. J'ai lu le livre en entier, étudié tous les exemples, mais je n'en ai implémenté que quelques-uns pour m'amuser.

J'ai trouvé le code facile à lire, juste assez commenté. Je pense que passer à Vanilla Python (sur NumPy) était une bonne décision. Il a abaissé la barre juste assez pour que tout ce dont vous avez besoin soit d'une syntaxe Python de base et c'est parti.

Ressources

J'ai rassemblé quelques ressources supplémentaires liées au livre si vous souhaitez approfondir.

  • Science des données à partir de zéro : premiers principes avec Python sur Amazon
  • GitHub Repo fournissant tout le code du livre (avec corrections de bugs et exemples de données)

Pensées finales

J'aime le livre. Je me suis amusé, je pense principalement parce que j'ai toujours aimé travailler sur des livres de programmation et parce que j'ai moi-même écrit un livre comme celui-ci (c'est-à-dire Clever Algorithms).

Si vous avez fait le tour du quartier et que vous êtes un passionné de scikit-learn ou de R en ce moment et que la distraction ne vous intéresse pas, ce livre n'est probablement pas pour vous. Mais n’oubliez pas que l’apprentissage ne s’arrête jamais et qu’il peut être amusant de revoir les choses pour débutants et de resserrer les vis.

Si vous connaissez Python (ou si vous êtes un développeur solide et souhaitez vous lancer dans Python) et que vous souhaitez vous familiariser avec les algorithmes d'apprentissage automatique en les implémentant, alors ce livre est fait pour vous.

Prenez-en une copie !

Avez-vous lu Data Science From Scratch ? Qu'en as-tu pensé ? Laissez un commentaire.

Articles connexes