Date Notes du scientifique: par où commencer et est-ce nécessaire?



TL; DR est un article pour des questions / réponses sur la science des données et comment entrer et grandir dans la profession. Dans l'article, je vais analyser 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 compte personnel), je vais essayer de répondre à tout dans quelques jours.
Avec l'avènement du cycle de notes "date du sataniste", de nombreux messages et commentaires sont venus avec des questions sur comment commencer et où creuser, et aujourd'hui nous analyserons les principales compétences et questions qui se sont posées après les publications.



Tout ce qui est mentionné ici ne prétend pas être une vérité ultime et est l'opinion subjective de l'auteur. Nous allons passer en revue les principaux éléments qui semblent être les plus importants dans le processus.



Pourquoi exactement est-ce nécessaire



Pour que l'objectif soit mieux réalisable, afin qu'il ait au moins un aspect concret - vous voulez devenir DS ou chercheur scientifique dans Facebook / Apple / Amazon / Netflix / Google - voyez directement les exigences, les langues et les compétences nécessaires pour quel poste. Quel est le processus de recrutement? Comment gérez-vous une journée typique dans un tel rôle? À quoi ressemble le profil moyen de la personne qui y travaille?



Souvent, l'image générale 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 vague - il vaut donc la peine d'avoir au moins un plan approximatif de ce que vous voulez exactement.

Affinez la vue de votre objectif actuel
Même si cela change en cours de route, et qu'il est généralement normal de changer de plan au cours de la pièce, vous devriez avoir un objectif devant vous et être guidé par celui-ci, en évaluant et en repensant périodiquement.



Will ou est-ce toujours d'actualité



Au moment où vous atteignez un poste.



Imaginez qu'avant votre poste, vous deviez obtenir un doctorat, travailler pendant 2-3 ans dans l'industrie et généralement vous faire couper les cheveux en méditant dans un monastère - la Data Science ne sera-t-elle pas dans la même situation qu'autrefois avec les économistes et les avocats? Tout changera-t-il au-delà de la reconnaissance dans le domaine que vous souhaitez faire.



Y a-t-il de bonnes chances que tout le monde s'y précipite maintenant et que nous verrons une image quand il y aura une large couche de personnes qui essaient d'entrer dans la profession - et il n'y aura que peu de postes pour le début.



Il peut être utile de tenir compte des tendances actuelles lors du choix d'un chemin, non seulement de l'état actuel du marché du travail, mais aussi de votre idée de la façon dont il évolue et de son emplacement.



Par exemple, l'auteur n'avait pas prévu d'aller à la date des satanistes, mais pendant le doctorat, il a vu des projets parallèles qui ont fortement résonné avec DS en termes de compétences et après avoir obtenu son diplôme d'études supérieures, s'est naturellement déplacé vers mercredi, voyant une bonne position.



Si, au cours de la pièce, il s'avère qu'il sera nécessaire d'aller ailleurs - car il y a maintenant le mouvement même et toute l'action la plus intéressante se déroule, eh bien, nous y irons naturellement.



Répartition des compétences



Ce sont des catégories conditionnelles de compétences qui, à mon avis, sont essentielles à un travail complet et efficace en DS. Je soulignerai séparément l'anglais - apprenez tout ce que vous faites en CS. Viennent ensuite les catégories clés.



Programmation / Script



Quelles langues devez-vous absolument connaître? Python? Java? Scripting Shell? Lua? Sql? C ++?



Ce que vous devez être capable de faire exactement et pourquoi en termes de programmation - ici, la gamme de postes est très différente.



Par exemple, je dois souvent implémenter une logique complexe, des requêtes, des modèles, des analyses et généralement développer des systèmes interprétés, mais il n'y a presque jamais d'exigences pour la vitesse du code, sauf pour les plus générales et les plus raisonnables.



Par conséquent, mes compétences sont très différentes de celles qui écrivent la bibliothèque Tensorflow et envisagent d'optimiser le code pour une utilisation efficace du cache l1 et autres, alors voyez exactement ce dont vous avez besoin et évaluez le bon chemin pour apprendre.



Par exemple, pour python, les gens créent déjà une carte d' apprentissage des langues.



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



Comprendre les processus métier



Sans elle, nulle part: vous devez comprendre pourquoi vous êtes nécessaire dans ce processus, ce que vous faites et pourquoi. Cela peut souvent vous faire gagner beaucoup de temps, maximiser vos avantages et ne pas perdre de temps et de ressources en conneries.



Je pose généralement les questions suivantes:



  • Que fais-je exactement dans l'entreprise?
  • Pourquoi?
  • Qui l'utilisera et comment?
  • Quelles options ai-je?
  • Quelles sont les limites des paramètres?


Voici un peu plus de détails sur les paramètres: vous pouvez souvent changer 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 une solution tellement rapide, et le client en a besoin, car il paie pour le temps d'exécution du pipeline sur AWS.



Mathématiques



Ici, vous pensez et vous comprenez tout - sans connaissance des mathématiques de base, vous n'êtes rien de plus qu'un bébé singe avec une grenade (pardonnez Random Forest) - vous devez donc comprendre au moins les choses de base. Si je devais faire la liste la plus minimale, alors cela inclurait:



  • Algèbre linéaire - une énorme quantité de ressources est facile à rechercher sur Google, recherchez ce qui vous convient le mieux;
  • Analyse mathématique - (au moins dans le volume des deux premiers semestres);
  • La théorie des probabilités est omniprésente dans l'apprentissage automatique;
  • Combinatoire - elle est en fait complémentaire du théoricien;
  • Théorie des graphes - au moins BASIC;
  • Algorithmes - au moins le volume des deux premiers semestres (voir les recommandations de Cormen dans son livre);
  • Matlogic - au moins basique.


Analyse et visualisation pratiques des données



L'une des choses les plus importantes est de pouvoir ne pas avoir peur de se salir les mains dans les données et de mener une analyse complète de l'ensemble de données, du projet et de lancer une visualisation rapide des données.



L'analyse exploratoire des données devrait devenir quelque chose de naturel, comme toutes les autres transformations de données et la possibilité de lancer un simple pipeline à partir de tuzles unix (voir les articles précédents) ou d'écrire un ordinateur portable lisible et compréhensible.



Je mentionnerai séparément la visualisation: il vaut mieux voir une fois qu'entendre cent fois.



Afficher un graphique au gestionnaire est cent fois plus facile et plus compréhensible qu'un ensemble de nombres, donc matplotlib, seaborn et ggplot2 sont vos amis.



Compétences générales



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



Vous pouvez expliquer aux collègues, aux managers, aux patrons, aux clients et à tous ceux qui ont besoin de ce qui se passe ce qui se passe, sur quelles données vous opérez et quels types de résultats vous avez obtenus.



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



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



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



Entraînement



Il existe de nombreux endroits où vous pouvez apprendre tout cela. Je vais vous donner une courte liste - j'ai tout essayé et, pour être honnête, chaque article a ses avantages et ses inconvénients. Essayez de décider de ce qui fonctionne pour vous, mais je vous recommande vivement d'essayer plusieurs options et de ne pas vous en tenir à une.



  • 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 recyclage;
  • Projets - vous pouvez simplement sélectionner les tâches qui vous intéressent et les couper en les téléchargeant sur github;
  • Stages - il est difficile de suggérer quelque chose ici, il faut chercher ce qui est disponible et trouver des options appropriées.


Est-ce nécessaire?



En conclusion, j'ajouterai peut-être trois principes personnels que j'essaye de suivre moi-même.



  • Devrait être intéressant;
  • Pour apporter du plaisir intérieur (= au moins ne pas causer de souffrance);
  • « ».


Pourquoi exactement? Il est difficile d'imaginer que vous ferez quelque chose au jour le jour et que vous n'aimerez pas ou ne serez pas intéressé. Imaginez que vous êtes médecin et détestez communiquer avec les gens - bien sûr, cela peut fonctionner d'une manière ou d'une autre, mais vous serez constamment mal à l'aise avec le flux de patients qui veulent vous demander quelque chose. Cela ne fonctionne pas à long terme.



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



«Être à vous» est le sentiment même que vous vouliez faire cela. J'ai une petite histoire. Depuis l'enfance, j'aimais le rock (et le métal - SALMON!) Et combien de personnes voulaient apprendre à 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érangeait pas beaucoup d'artistes directement sur scène), et en tant qu'écolier, j'ai eu une guitare ... et il est devenu clair que je n'aimais pas vraiment rester assis pendant des heures. et jouer. Ça allait dur, tout le temps il me semblait qu'une sorte de poubelle sortait - je n'en tirais aucun plaisir et je me sentais seulement moche, stupide et complètement incapable. Je me suis littéralement forcé à m'asseoir pour les cours sous le bâton et en général ce n'était pas dans le fourrage du cheval.



En même temps, je pouvais rester assis tranquillement pendant des heures à développer une sorte de jouet, animer quelque chose sur un flash (ou autre chose) à l'aide d'un script, et j'étais extrêmement motivé pour compléter des éléments du jeu ou gérer la mécanique du 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 n'était pas à moi, et vraiment, j'aime écouter, pas jouer. Et mes yeux étaient en feu quand j'écrivais des jeux et du code (écoutant toutes sortes de metal à ce moment-là) et c'est ce que j'aimais alors, et j'aurais dû faire ça.



Avez-vous encore des questions?



Bien sûr, nous n'avons pas pu passer en revue tous les sujets et questions, alors écrivez vos commentaires et de manière personnelle - je suis toujours heureux d'avoir des questions.










All Articles