Une fois que j'ai reçu une offre de Deliveroo, dans cette entreprise, j'étais censé devenir Data Science Manager. Alors que je me préparais à prendre mes fonctions, l'offre a été retirée. A cette époque, je n'avais pas d'airbag en cas de chômage prolongé. Je partagerai avec vous tout ce qui m'a finalement aidé à obtenir deux offres pour le poste de Data Scientist de Facebook à la fois. J'espère que cela aidera l'un de vous à sortir de la situation difficile dans laquelle je me trouvais il y a plusieurs mois.
1. L'organisation est la clé de tout
Je suis allé à des interviews chez Google (et DeepMind), Uber, Facebook, Amazon pour tout ce qui était en quelque sorte lié au poste de Data Scientist. La plupart du temps, on m'a posé des questions d'industries telles que
- Développement de logiciels
- Les statistiques appliquées
- Apprentissage automatique
- Traitement, gestion et visualisation des données
Personne ne s'attend à ce que vous soyez super pro pour toutes ces industries. Mais vous devez les comprendre suffisamment pour convaincre l'intervieweur de votre compétence et de votre droit d'occuper le poste proposé. La profondeur à laquelle vous devez comprendre le sujet dépend du travail lui-même, mais comme il s'agit d'un domaine très compétitif, toutes les connaissances vous seront utiles.
Je recommande d'utiliser Notion pour organiser la préparation de votre entretien. Cet outil est polyvalent, en plus il vous permet d'appliquer des techniques telles que la répétition espacée et le rappel actif. Ils aident à renforcer les résultats d'apprentissage et à découvrir des questions clés qui reviennent encore et encore lors d'un entretien avec un Data Scientist. Ali Abdaal a un excellent guidepour prendre des notes avec Notion. Aide à maximiser votre potentiel lors de l'entrevue.
Je répétais constamment mes notes chez Notion, surtout activement - juste avant l'entrevue. Cela m'a permis d'avoir confiance en mes capacités et que les sujets et les termes clés étaient dans ma «mémoire de travail», donc je n'ai pas à perdre un temps précieux à dire de manière significative «nuuuuuu» après quelques questions.
2. Développement de logiciels
Vous n'avez pas toujours besoin de répondre à des questions sur la complexité temporelle d'un algorithme. Mais pour tout travail de Data Scientist, vous devez écrire du code. La science des données, comme vous le savez, n'est pas une profession, mais plusieurs, cette industrie attire des talents dans divers domaines, y compris le développement de logiciels. En conséquence, vous devrez rivaliser avec des programmeurs qui comprennent les nuances de l'écriture de code efficace. Je recommanderais de passer 1 à 2 heures par jour avant l'entretien, à maîtriser et / ou à renforcer les connaissances et les compétences sur ces sujets:
- Tableaux.
- Tables de hachage.
- Listes liées.
- Méthode de deux pointeurs.
- Algorithmes de chaîne (les employeurs ADORENT ce sujet).
- Recherche binaire.
- Divisez et conquérez les algorithmes.
- Algorithmes de tri.
- Programmation dynamique.
- Récursivité.
N'étudiez pas les algorithmes de manière formelle. Cela ne sert à rien car l'intervieweur peut poser une question sur les nuances de certains algorithmes, et vous vous perdrez. Au lieu de cela, il est préférable de maîtriser les bases sur lesquelles chaque algorithme fonctionne. Explorez la complexité informatique et spatiale et comprenez pourquoi tout cela est important pour créer un code de qualité.
Les enquêteurs ont quelque chose à poser sur les algorithmes, il vaut donc la peine d'apprendre les éléments de base et les études de cas courantes pour faciliter la réponse aux entretiens plus tard.
Essayez de répondre à toutes les questions possibles, même si cela prend beaucoup de temps. Regardez ensuite le modèle de décision et essayez de déterminer la stratégie optimale. Ensuite, regardez les réponses et essayez de comprendre pourquoi il en est ainsi? Posez-vous des questions telles que "Pourquoi la complexité temporelle moyenne de Quicksort O (n²)?" ou «Pourquoi deux pointeurs et une boucle for ont plus de sens que trois boucles for»?
3. Statistiques appliquées
Les statistiques appliquées jouent un rôle important dans la science des données. L'importance dépendra du poste pour lequel vous postulez. Où les statistiques appliquées sont-elles réellement utilisées? Partout où il est nécessaire d'organiser, d'interpréter et d'extraire des informations à partir de données.
Lors des entretiens, je vous conseille d'étudier attentivement les sujets suivants:
- ( , , , ).
- (, , 5 10 ).
- ( A / B-, T-, , - . .).
- ( , ).
- ( / ).
Si vous pensez que c'est une énorme quantité d'informations à étudier, alors vous ne pensez pas. J'ai été étonné de voir combien vous pouvez demander pour une entrevue et combien vous pouvez trouver en ligne pour vous aider dans votre préparation. Deux ressources m'ont aidé à faire face:
- Introduction to Probability and Statistics est un cours gratuit qui couvre tout ce qui est décrit ci-dessus, y compris les questions et un examen d'auto-test.
- Apprentissage automatique: une perspective bayésienne et d'optimisation . Il s'agit davantage d'un cours d'apprentissage automatique que de statistiques appliquées. Mais les approches d'algèbre linéaire décrites ici aident à comprendre les nuances du concept d'analyse de régression.
Il vaut mieux ne pas l’apprendre par cœur. Vous devez résoudre autant de tâches que possible. Glassdoor est un excellent référentiel pour les questions de statistiques appliquées que vous rencontrez généralement lors d'entretiens. L'entrevue la plus difficile que j'ai eue était une entrevue avec G-Research. Mais j'ai vraiment aimé m'y préparer et Glassdoor m'a aidé à comprendre à quel point j'ai progressé dans la maîtrise de ce sujet.
4. Apprentissage automatique
Nous arrivons maintenant à la chose la plus importante: l'apprentissage automatique. Mais ce sujet est si vaste que vous pouvez simplement vous y perdre.
Vous trouverez ci-dessous quelques ressources qui vous donneront une base très solide pour vous lancer dans l'apprentissage automatique. Voici un ensemble de sujets loin d'être exhaustif, classés par sujet.
Métriques - classification
- Matrices de confusion, exactitude, précision, rappel, sensibilité
- Score F1
- TPR, TNR, FPR, FNR
- I II
- AUC-Roc
—
-, Over/Under-Fitting
Sampling
Test d'hypothèses
Ce sujet est davantage lié aux statistiques appliquées, mais il est extrêmement important , en particulier, dans les tests A / B.
Modèles de régression
Il existe une mine d'informations sur la régression linéaire. Vous devez vous familiariser avec d'autres modèles de régression:
- Réseaux de neurones profonds pour les problèmes de régression
- Régression forestière aléatoire
- Régression XGBoost
- ARIMA / SARIMA
- Régression linéaire bayésienne
- Régression du processus gaussien
Algorithmes de clustering
Modèles de classification
- Régression logistique (le plus important, bien corriger)
- Régression multiple
- XGBoost
- Machine de vecteur de soutien
C'est beaucoup, mais cela n'a pas l'air si effrayant si vous comprenez les statistiques appliquées. Je recommanderais d'apprendre les nuances d'au moins trois méthodes différentes de classification / régression / regroupement, car l'intervieweur peut toujours demander (et fait): «Quelles autres méthodes pourrions-nous utiliser, quels sont certains des avantages / inconvénients?» Ce n'est qu'une fraction des connaissances, mais si vous connaissez ces exemples importants, les entretiens se dérouleront beaucoup plus facilement.
5. Traitement et visualisation des données
"Parlez-nous des étapes du traitement et du nettoyage des données avant d'appliquer des algorithmes d'apprentissage automatique."
Nous recevons un ensemble spécifique de données. Tout d'abord, c'est prouver que vous pouvez accomplir l'AED. Il est préférable d'utiliser Pandas, c'est, s'il est utilisé correctement, l'outil le plus puissant de la boîte à outils d'analyse de données. La meilleure façon d'apprendre à utiliser Pandas pour traiter des données est de télécharger de très nombreux ensembles de données et de travailler avec eux.
Dans l'une des interviews, j'avais besoin de charger un ensemble de données, de le nettoyer, de rendre, de sélectionner, de créer et d'évaluer un modèle - le tout en une heure. C'était vraiment fou, nous étions très durs. Mais je m'entraînais à faire tout cela pendant quelques semaines, donc je savais quoi faire, même si je perdais le fil.
Organisation des données
Il y a trois choses importantes dans la vie: la mort, les impôts et l'obtention d'une demande de fusion d'ensembles de données. Pandas est presque parfait pour le travail, alors veuillez pratiquer, pratiquer, pratiquer.
Profilage des données
Cette tâche implique la compréhension des caractéristiques «méta» de l'ensemble de données, telles que la forme et la description des caractéristiques numériques, catégorielles et temporelles des données. Vous devriez toujours vous efforcer de répondre à une série de questions telles que «combien d'observations ai-je», «à quoi ressemble la distribution de chaque fonction», «que signifient ces fonctions». Ce type de profilage précoce peut vous aider à éliminer les fonctionnalités non pertinentes dès le départ, telles que les fonctionnalités catégorielles avec des milliers de niveaux (noms, identifiants uniques), et à réduire la quantité de travail pour vous et votre ordinateur sur la route (travaillez intelligemment, pas dur, ou quelque chose comme ça s'est réveillé).
Visualisation de données
Ici, vous vous demandez: "A quoi ressemble la distribution de mes fonctions?" Un petit conseil: si vous n'avez pas entendu parler des boîtes à moustaches dans la partie statistiques appliquées du didacticiel, le moment est venu, car vous devez apprendre à identifier visuellement les valeurs aberrantes. Les histogrammes et les graphiques de densité de noyau sont des outils extrêmement utiles lors de la visualisation des propriétés des distributions de chaque fonction.
Ensuite, nous pourrions demander «à quoi ressemble la relation entre mes fonctions», auquel cas Python a un package appelé seaborn qui contient des outils sympas et puissants comme pairplot et une belle carte thermique pour les graphiques de corrélation.
Gestion des valeurs nulles, des erreurs de syntaxe et des lignes / colonnes en double
Les valeurs manquantes sont inévitables, ce problème provient de nombreux facteurs différents, dont chacun affecte le décalage à sa manière. Vous devez apprendre à gérer au mieux les valeurs manquantes. Consultez ce guide pour savoir comment gérer les valeurs nulles .
Les erreurs de syntaxe se produisent généralement lorsqu'un ensemble de données contient des informations qui ont été saisies manuellement, par exemple via un formulaire. Cela peut nous conduire à la conclusion erronée que la fonction catégorielle a beaucoup plus de niveaux qu'elle n'en a réellement, car "Hot", "hOt", "hot / n" sont considérés comme des niveaux uniques. Consultez cette ressource sur la gestion des données de texte sale.
Enfin, personne ne veut des colonnes en double, et les lignes en double peuvent déformer la présentation, il vaut donc la peine de les traiter tôt.
Normalisation ou normalisation
En fonction de l'ensemble de données avec lequel vous travaillez et de la méthode d'apprentissage automatique que vous choisissez d'utiliser, il peut être utile de standardiser ou de normaliser les données afin que différentes échelles de différentes variables n'aient pas d'impact négatif sur les performances de votre modèle.
En général, ce n'est pas tant l'attitude de «se souvenir de tout» qui m'a aidé qu'à comprendre à quel point la formation m'a aidé. J'ai échoué à de nombreuses interviews avant de réaliser que tout ce qui précède n'est pas des concepts ésotériques que seuls quelques privilégiés peuvent maîtriser. Ce sont les outils que les Data Scientists utilisent pour créer des modèles sympas et obtenir des informations importantes à partir des données.
Sur ce sujet:
- Interview « J'avais peur des tâches routinières, mais en Data Science, tout est différent »;
- Cours pratique en ligne " Profession " Data Scientist .