Tests für eine Stelle von Data Scientist

Ein Fähigkeitstest ist eine typische Methode, die Fähigkeit des Bewerbers zu messen. Vor allem ist ein solcher Test traditionell für Entwickler. Da ein Data Scientist Kenntnisse auf Programmierung haben muss, muss ein Bewerber oft einen Test machen. In diesem Eintrag möchte ich zu den Testen äußern, die ich gemacht habe.

NB: ich schreibe nur etwas Allgemeines.

Bericht

Der Typ eines Tests

  1. Eine bekannte oder künstliche Datenmenge wird gegeben.
  2. Die Aufgabe ist eine einfache Analyse und die Erstellung eines Vorhersagemodells.
  3. Die Programmiersprache
    • muss Python sein.
    • muss R sein.
    • ist nicht begrenzt.
  4. Die Zeitdauer ist oft 3-4 Stunden.

Datenmenge

Es ist schwierig für den Arbeitgeber, eine gute passende Datenmenge zu finden. Aber er darf sicherlich die wirklichen Daten nicht geben, die er oder sein Kollegen im Büro analysieren. Deshalb benutzen Arbeitgeber oft eine veröffentliche Repository, wie UCI Machine Learning Repository. Dort kann man mehrere Datenmenge zugreifen, die man sofort analysieren kann. Natürlich gibt es die Erklärung aller Felder. Deshalb kann man schnell durch die Repository eine Aufgabe erstellen.

Ein anderer Typ ist ein künstliche Datenmenge. Es ist normalerweise schwer zu ermitteln, ob die Datenmenge künstlich ist. Aber wenn man etwas Komisches findet, kann die Datenmenge künstlich sein.

Die künstliche Datenmenge, die ich gesehen habe, hat ein komisches Feld. In der Training-Daten sind die Werte des Feldes fast gleich wie die Werte der Zielvariable, aber trotzdem ist das Feld in der Test-Daten ganz anderes als die Zielvariable. In diesem Fall ist die Genauigkeit eines Modells für die Test-Daten deutlich niedriger als die Genauigkeit für die Training-Daten. Aber das ist kein Overfitting, sondern falsche Test-Daten. Vielleicht ist das Ziel des Test zu überprüfen, ob der Bewerber etwas Komisches finden kann.

Die zwei Aufgaben

Normalerweise wird nicht nur ein Vorhersagemodell verlangt, sondern auch eine deskriptive Analyse. Das war einmal für mich ein großes Problem. Das erzähle ich später.

Die Programmiersprache

Wer selbst als Data Scientist darstellt, muss natürlich Kenntnisse auf sowohl R als auch Python haben. Deshalb soll die Begrenzung der Sprache ganz egal sein für denjenigen, der als Data Scientist arbeiten will.

Das Problem ist, welche Programmiersprache man auswählen soll, wenn man eine Programmiersprache auswählen darf. Falls Sie keine Idee dafür haben, empfehle ich R.

Das liegt daran, dass R zu einer schnellen Analyse passt. Ich wollte nie mit LabelBinarizer oder etwas Ähnliches einen DataFrame in einer passenden Form für maschinelles Lernen in einer begrenzten Zeit konvertieren. Darüber hinaus stiehlt das Fehlen von dplyr und ggplot2 zweifellos viel Zeit.

Die Zeitdauer

Es gibt eine Ausnahme, aber normalerweise ist die Zeitdauer eines Tests ungefähr 3-4 Stunden. Die Zeitdauer ist genug, um ein Vorhersagemodell zu erstellen. Aber manche Bewerber finden die Dauer richtig kurz.

Die Falle deskriptiver Analyse

Vor zwei Jahren konnte ich einfach die Falle vermeiden. Aber je mehr man Data Science lernt, desto mehr findet man deskriptive Analyse sehr wichtig. Das liegt daran, dass man durch deskriptive Analyse viele Hinweise auf ein gutes Vorhersagemodell bekommen kann. Also durch deskriptive Analyse kann man die Daten besser verstehen.

Infolgedessen habe ich einmal einen Bericht ohne ein Vorhersagemodell vorgelegt. Damals hatte ich auch ein Problem mit dem Import der CSV-Datei. Darüber hinaus war die Zielvariable "skewed", das heißt, der Anteil des positiven Wertes ist sehr klein. Deshalb dachte ich auch, dass ich das Problem davon erklären musste. Danach musste ich natürlich einen Wert zur Bewertung eines Modells je nach der Aufgabe auswählen. Also benutze ich einfach den F1-Score oder suche einen guten Schwellwert durch eine ROC-Kurve. Natürlich habe ich viele Zeit für deskriptive Analyse benutzt, deshalb hatte ich keine Zeit, ein Vorhersagemodell zu erstellen.

Ich hatte einfach keinen Glück. Der Bericht, den ich vorgelegt habe, war deutlich schlecht. Falls ich der Arbeitgeber wäre, würde ich dem Bewerber keine weitere Möglichkeit geben. Nach diesem Ergebnis musste ich ein Maßnahme gegen einen solchen Test überlegen.

Die unangenehme Maßnahme

Das Problem ist, wie lange ich deskriptive Analyse machen sollte. Wie ich geschrieben habe, ist eine deskriptive Analyse oft eine der Aufgaben. Aber solche Analyse kommt normalerweise im Mittel des Bericht. Ein Bericht mit "§1 Ziel, §2 Vorhersagemodell, §3 deskriptive Analyse" geht nicht. Das liegt daran, dass man die Hinweise auf die Daten verwenden sollte, um ein gutes Modell zu erstellen. Kein Data Scientist denkt, dass man sofort ein Algorithmus verwenden sollte, ohne das Inhalt zu verstehen. Deshalb muss man deskriptive Analyse vor einem Vorhersagemodell machen.

Aber gleichzeitig muss man bedenken, dass man Zeit für die Erstellung eines Vorhersagemodells braucht. Vor allem dauert es ziemlich lang, die Daten in einer passenden Form zu konvertieren, wenn es viel diskrete Variablen gibt. Was wäre, wenn eine Variable 20 Werte nehmen kann. Dann ist es möglicherweise besser, einige davon auszuwählen, sodass die "Featurematrix" wenige Spalten hat und die Qualität eines Vorhersagemodell besser ist.

Auf jeden Fall ist die gegebene Zeit richtig begrenzt. Da man seine Verarbeitung rechtfertigen muss, kann man nicht viel Code schreiben. Vor allem sollte man ausführliche Analyse unbedingt vermeiden. Deshalb bin ich überzeugt davon, dass man den folgenden Satz im Kopf behalten.

Bei dem Test sollte man die Kreativität wegwerfen.

Ohne Witz. Als Data Scientist wollte ich die gegebenen Daten genau analysieren, um zu verstehen, was für etwas Unbekanntes in den Daten liegt. Aber solche Zeit hat kein Bewerber. Ohne Kreativität sollte man die Daten einfach analysieren. Man sollte ruhig die Zielvariable und andere Felder vergleichen und nur etwas Einfaches schreiben. Nach der Vergleichung von Felder (wie Korrelation) sollte man sofort anfangen, ein Vorhersagemodell zu erstellen. Auch wenn die Zielvariable skew ist, muss man F1-Score, ROC, resampling method, usw. nicht verwenden. Ohne das Problem zu sagen sollte man ruhig ein Vorhersagemodell herstellen. Dann kann man sicherlich innerhalb 3 Stunden einen kompletten Bericht fertig machen.

Der Bericht ohne Kreativität ist nicht interessant, aber damit kann man immerhin seine Kenntnisse auf Coding zeigen und vielleicht ist das genug. Falls der Arbeitgeber der Meinung ist, dass man in wenigen Stunden etwas Unbekanntes in den Daten finden muss, dann versteht er Data Science gar nicht, und es ist wahrscheinlich besser, solche Stelle zu vermeiden.

Ist ein solcher Test wirklich hilfreich für Arbeitgeber?

Ein Coding-Test ist sehr typisch für eine Rekrutierung. Das liegt daran, dass man einfach durch einen Test überprüfen kann, ob der Bewerber wirklich ein Code schreiben kann. Ja, ich stimme der Meinung zu, so lange die Aufgabe klar und eindeutig ist, wie "Fizz buzz".

Im Vergleich zu einen solchen Coding-Test ist ein Test für Data Science oft unklar wegen der deskriptiven Analyse.

Erstellen Sie bitte eine Vorhersagemodell für die Zielvariable!

Diese Aufgabe ist eindeutig. Nach der Import der Daten verarbeitet man die Daten, sodass man maschinelles Lernen für die Daten verwenden kann. Danach erstellt man mehrere Vorhersagemodelle und vergleicht sie durch CV-score. Zur Datenverarbeitung macht man einigermaßen deskriptive Analyse, aber solche Analyse ist minimal.

Schreiben Sie bitte auch etwas Interessantes für die Daten!

Aber diese Aufgabe ist vage. Daten sind niemals einseitig. Deshalb ist die Datenanalyse interessant und wertvoll. Je mehr man die Daten analysiert, desto mehr Ideen hat man. Aber wenn man seine Hypothesen mit den Daten überprüft, läuft ihm die Zeit davon.

Es ist nicht möglich, die Kreativität durch einen Test zu messen. Deshalb sollte die Aufgabe eines Tests eindeutig sein und der Arbeitgeber muss deutlich sagen, dass der Test nur ein Coding-Test ist. Sonst kann er nur denjenigen einstellen, der nur an solchen Test gewöhnt hat.

Fazit

Bei dem Test sollte man die Kreativität wegwerfen. Man sollte immer im Kopf behalten, dass der nur ein Coding-Test ist.

Share this page on        
Categories: #data-mining