Notes Data Scientist : par où commencer et est-ce nécessaire ?

Notes Data Scientist : par où commencer et est-ce nécessaire ?

TL;DR est un article de questions/réponses sur la science des données et comment accéder à la profession et s'y développer. Dans l'article, j'analyserai les principes de base et la FAQ et je suis prêt à répondre à vos questions spécifiques - écrivez dans les commentaires (ou dans un message privé), j'essaierai de répondre à tout dans quelques jours.

Avec l'avènement de la série de notes «Satanist Date», de nombreux messages et commentaires étaient accompagnés de questions sur la façon de commencer et par où creuser, et aujourd'hui nous analyserons les principales compétences et questions qui ont surgi après les publications.

Tout ce qui est dit ici ne prétend pas être la vérité ultime et constitue l’opinion subjective de l’auteur. Nous examinerons les principales choses qui semblent les plus importantes dans le processus.

Pourquoi exactement est-ce nécessaire ?

Pour que l'objectif soit mieux réalisable, afin qu'il paraisse au moins quelque peu spécifique - vous souhaitez devenir DS ou chercheur scientifique chez Facebook/Apple/Amazon/Netflix/Google - examinez les exigences, les langues et les compétences nécessaires. spécifiquement pour quel poste. Quel est le processus de recrutement ? Comment se déroule une journée type dans un tel rôle ? Quel est le profil moyen d’une personne qui y travaille ?

Souvent, l'image globale est qu'une personne ne comprend pas vraiment ce qu'elle veut exactement et il n'est pas tout à fait clair comment se préparer à cette image peu claire - il vaut donc la peine d'avoir au moins un plan approximatif de ce que vous voulez exactement.

Concrétiser la vision actuelle des objectifs

Même si cela change en cours de route, et qu’il est généralement normal de changer de plan au cours du jeu, cela vaut la peine d’avoir un objectif et de se concentrer dessus, en l’évaluant et en le repensant périodiquement.

Est-ce que ce sera ou est-ce toujours d’actualité ?

Au moment où vous occupez un poste.

Imaginez qu'avant d'obtenir votre poste, vous deviez obtenir un doctorat, travailler pendant 2-3 ans dans l'industrie et généralement vous couper les cheveux tout en méditant dans un monastère - la situation avec la science des données ne sera-t-elle pas la même qu'elle l'était autrefois avec les économistes et des avocats ? Est-ce que tout changera au point de devenir méconnaissable dans le domaine que vous souhaitez poursuivre ?

N'y a-t-il pas de fortes chances que tout le monde s'y précipite maintenant et que nous voyions une image où il y a une large couche de personnes qui tentent d'accéder à la profession - et il n'y aura qu'une maigre position de départ.

Il peut être utile de prendre en compte les tendances actuelles lors du choix d'une voie, non seulement l'état actuel du marché du travail, mais également votre idée de la façon dont il évolue et de l'endroit où il se trouve.

Par exemple, l'auteur n'avait pas prévu de devenir sataniste, mais au cours de son doctorat, il a travaillé sur des projets tiers qui avaient de fortes compétences en commun avec DS, et à la fin de ses études supérieures, il s'est naturellement tourné vers l'environnement, voyant une bonne position.

Si, au cours de la pièce, il s'avère qu'il sera nécessaire de se déplacer ailleurs - parce qu'il y a maintenant le plus de mouvement et que toutes les actions les plus intéressantes se déroulent, alors nous nous y déplacerons naturellement.

Répartition des compétences

Ce sont des catégories conditionnelles de compétences qui me semblent essentielles pour un travail complet et efficace chez DS. Je vais souligner l'anglais séparément - apprenez tout ce que vous faites dans CS. Viennent ensuite les catégories clés.

Programmation/Script

Quelles langues êtes-vous sûr de connaître ? Python? Java? Des scripts shell ? Lua ? SQL ? C++ ?

Qu'est-ce que vous devez être capable de faire exactement et pourquoi en termes de programmation - l'éventail des postes ici est très variable.

Par exemple, je dois souvent implémenter une logique, des requêtes, des modèles, des analyses complexes et généralement développer des systèmes interprétés, mais il n'y a presque jamais d'exigences en matière de vitesse de code, à l'exception des plus générales et raisonnables.

Par conséquent, mes compétences sont très différentes de celles de ceux qui écrivent la bibliothèque Tensorflow et réfléchissent à l'optimisation du code pour une utilisation efficace du cache l1 et des éléments similaires, alors regardez ce dont vous avez exactement besoin et évaluez le bon chemin d'apprentissage.

Par exemple, pour Python, les gens composent déjà carte apprendre une langue.

Il existe sûrement déjà des conseils expérimentés et de bonnes sources pour vos besoins - vous devez décider d'une liste et commencer à y travailler.

Comprendre les processus métiers

Vous ne pouvez aller nulle part sans cela : vous devez comprendre pourquoi vous êtes nécessaire dans ce processus, ce que vous faites et pourquoi. C'est souvent ce qui peut vous faire gagner beaucoup de temps, maximiser vos bénéfices et ne pas perdre de temps et de ressources en conneries.

Habituellement, je me pose les questions suivantes :

  • Que dois-je faire exactement dans l’entreprise ?
  • Pourquoi?
  • Qui va l’utiliser et comment ?
  • Quelles sont mes options ?
  • Quelles sont les limites des paramètres ?

Voici un peu plus de détails sur les paramètres : vous pouvez souvent modifier considérablement le scénario de travail si vous savez que quelque chose peut être sacrifié : par exemple, l'interprétabilité ou vice versa, quelques pour cent ne joueront pas de rôle ici et nous avons un très rapide solution, et le client en a besoin, car il paie pour le temps d'exécution du pipeline dans AWS.

Mathématiques

Ici, vous pensez et comprenez tout vous-même - sans connaissance des mathématiques de base, vous n'êtes rien de plus que des singes avec une grenade (désolé Random Forest) - vous devez donc comprendre au moins les choses de base. Si je devais dresser une liste très minimale, elle comprendrait :

  • Algèbre linéaire - un grand nombre de ressources sont faciles à rechercher sur Google, recherchez ce qui vous convient le mieux ;
  • Analyse mathématique - (au moins au cours des deux premiers semestres) ;
  • La théorie des probabilités est omniprésente dans l’apprentissage automatique ;
  • Combinatoire - elle est en fait complémentaire à la théorie ;
  • Théorie des graphes - au moins BASIC ;
  • Algorithmes - au moins pour les deux premiers semestres (voir les recommandations de Cormen dans son livre) ;
  • Mathlogique - au moins basique.

Analyse et visualisation pratiques des données

L'une des choses les plus importantes est de ne pas avoir peur de se salir les mains avec les données, de procéder à une analyse complète de l'ensemble de données, du projet et de créer une visualisation rapide des données.

L'analyse exploratoire des données devrait simplement devenir quelque chose de naturel, comme toutes les autres transformations de données et la possibilité de créer un simple pipeline à partir de nœuds Unix (voir articles précédents) ou d'écrire un notebook lisible et compréhensible.

Je voudrais mentionner la visualisation : il vaut mieux voir une fois que d’entendre cent fois.

Montrer un graphique à un manager est cent fois plus simple et plus clair qu'un ensemble de chiffres, donc matplotlib, seaborn et ggplot2 sont vos amis.

Compétences générales

Il est tout aussi important d'être capable de communiquer vos idées, ainsi que vos résultats et préoccupations (etc.) aux autres - assurez-vous que vous pouvez énoncer clairement la tâche en termes techniques et commerciaux.

Vous pouvez expliquer à vos collègues, managers, supérieurs, clients et à toute autre personne qui en a besoin ce qui se passe, quelles données vous utilisez et quels résultats vous avez obtenus.

Vos graphiques et votre documentation doivent être lus sans vous. Autrement dit, vous n’avez pas besoin d’aller chez vous pour comprendre ce qui y est écrit.

Vous pouvez faire une présentation claire pour faire passer le message et/ou documenter le projet/votre travail.

Vous pouvez exprimer votre position de manière raisonnée et sans émotion, dire « oui/non » ou remettre en question/soutenir une décision.

formation

Il existe de nombreux endroits différents où vous pouvez apprendre tout cela. Je vais donner une courte liste - j'ai tout essayé et, pour être honnête, chaque élément a ses avantages et ses inconvénients. Essayez-le et décidez ce qui vous convient, mais je vous recommande fortement d'essayer plusieurs options et de ne pas rester bloqué sur une seule.

  • Cours en ligne : coursera, udacity, Edx, etc. ;
  • Nouvelles écoles : en ligne et hors ligne - SkillFactory, ShAD, MADE ;
  • Écoles classiques : programmes de master universitaires et cours de perfectionnement ;
  • Projets - vous pouvez simplement sélectionner les tâches qui vous intéressent et les découper, en les téléchargeant sur github ;
  • Stages - il est difficile de proposer quoi que ce soit ici, il faut chercher ce qui est disponible et trouver les options appropriées.

Est-ce nécessaire?

En conclusion, j’ajouterai probablement trois principes personnels que j’essaie moi-même de suivre.

  • Cela devrait être intéressant ;
  • Apporter du plaisir intérieur (= au moins ne pas causer de souffrance) ;
  • "Pour être à toi."

Pourquoi eux ? Il est difficile d'imaginer faire quelque chose tous les jours sans y prendre plaisir ou sans y être intéressé. Imaginez que vous êtes médecin et que vous détestez communiquer avec les gens - cela, bien sûr, peut fonctionner d'une manière ou d'une autre, mais vous serez constamment mal à l'aise face au flux de patients qui veulent vous demander quelque chose. Cela ne fonctionne pas à long terme.

Pourquoi ai-je spécifiquement mentionné le plaisir intérieur ? Il me semble que cela est nécessaire pour le développement ultérieur et, en principe, pour le processus d'apprentissage. J'apprécie vraiment quand je parviens à réaliser une fonctionnalité complexe et à construire un modèle ou à calculer un paramètre important. J'apprécie quand mon code est esthétiquement beau et bien écrit. Par conséquent, apprendre quelque chose de nouveau est intéressant et ne nécessite pas directement de motivation importante.

« Être à vous », c'est le même sentiment que c'est à peu près ce que vous vouliez faire. J'ai une petite histoire. Depuis mon enfance, je m'intéresse au rock (et au métal - SALMON !) et, comme tant d'autres, je voulais apprendre à en jouer et c'est tout. Il s'est avéré que je n'avais ni audition ni voix - cela ne me dérangeait pas du tout (et je dois dire que cela ne dérange pas beaucoup d'artistes sur scène), et quand j'étais encore à l'école, j'ai acheté une guitare... et il est devenu clair que je n'aime pas vraiment rester assis pendant des heures et jouer dessus. C'était dur, il me semblait toujours que des conneries sortaient - je n'en prenais aucun plaisir et je me sentais juste moche, stupide et complètement incapable. Je me suis littéralement forcé à m'asseoir pour les cours et en général, ce n'était pas une bonne nourriture pour le cheval.

En même temps, je pouvais rester tranquillement assis pendant des heures à développer un jouet, à utiliser un script pour animer quelque chose sur flash (ou autre chose) et j'étais extrêmement motivé pour terminer des éléments du jeu ou m'occuper des mécanismes de mouvement et/ou connecter des bibliothèques tierces, des plugins et tout le reste.

Et à un moment donné, j’ai réalisé que jouer de la guitare, ce n’était pas mon truc et que j’aime vraiment écouter, pas jouer. Et mes yeux brillaient quand j’écrivais des jeux et du code (j’écoutais toutes sortes de metal à ce moment-là) et c’est ce que j’aimais à l’époque, et c’est ce que j’aurais dû faire.

avez-vous d'autres questions?

Bien sûr, nous n'avons pas pu parcourir tous les sujets et toutes les questions, alors écrivez des commentaires et envoyez-moi un message privé - je suis toujours heureux d'avoir des questions.

Notes Data Scientist : par où commencer et est-ce nécessaire ?

Notes Data Scientist : par où commencer et est-ce nécessaire ?

Source: habr.com

Ajouter un commentaire